// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: Execution.proto
// Protobuf Java Version: 4.29.3

package com.ib.client.protobuf;

public final class ExecutionProto {
  private ExecutionProto() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 29,
      /* patch= */ 3,
      /* suffix= */ "",
      ExecutionProto.class.getName());
  }
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ExecutionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:protobuf.Execution)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int32 orderId = 1;</code>
     * @return Whether the orderId field is set.
     */
    boolean hasOrderId();
    /**
     * <code>optional int32 orderId = 1;</code>
     * @return The orderId.
     */
    int getOrderId();

    /**
     * <code>optional string execId = 2;</code>
     * @return Whether the execId field is set.
     */
    boolean hasExecId();
    /**
     * <code>optional string execId = 2;</code>
     * @return The execId.
     */
    java.lang.String getExecId();
    /**
     * <code>optional string execId = 2;</code>
     * @return The bytes for execId.
     */
    com.google.protobuf.ByteString
        getExecIdBytes();

    /**
     * <code>optional string time = 3;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>optional string time = 3;</code>
     * @return The time.
     */
    java.lang.String getTime();
    /**
     * <code>optional string time = 3;</code>
     * @return The bytes for time.
     */
    com.google.protobuf.ByteString
        getTimeBytes();

    /**
     * <code>optional string acctNumber = 4;</code>
     * @return Whether the acctNumber field is set.
     */
    boolean hasAcctNumber();
    /**
     * <code>optional string acctNumber = 4;</code>
     * @return The acctNumber.
     */
    java.lang.String getAcctNumber();
    /**
     * <code>optional string acctNumber = 4;</code>
     * @return The bytes for acctNumber.
     */
    com.google.protobuf.ByteString
        getAcctNumberBytes();

    /**
     * <code>optional string exchange = 5;</code>
     * @return Whether the exchange field is set.
     */
    boolean hasExchange();
    /**
     * <code>optional string exchange = 5;</code>
     * @return The exchange.
     */
    java.lang.String getExchange();
    /**
     * <code>optional string exchange = 5;</code>
     * @return The bytes for exchange.
     */
    com.google.protobuf.ByteString
        getExchangeBytes();

    /**
     * <code>optional string side = 6;</code>
     * @return Whether the side field is set.
     */
    boolean hasSide();
    /**
     * <code>optional string side = 6;</code>
     * @return The side.
     */
    java.lang.String getSide();
    /**
     * <code>optional string side = 6;</code>
     * @return The bytes for side.
     */
    com.google.protobuf.ByteString
        getSideBytes();

    /**
     * <code>optional string shares = 7;</code>
     * @return Whether the shares field is set.
     */
    boolean hasShares();
    /**
     * <code>optional string shares = 7;</code>
     * @return The shares.
     */
    java.lang.String getShares();
    /**
     * <code>optional string shares = 7;</code>
     * @return The bytes for shares.
     */
    com.google.protobuf.ByteString
        getSharesBytes();

    /**
     * <code>optional double price = 8;</code>
     * @return Whether the price field is set.
     */
    boolean hasPrice();
    /**
     * <code>optional double price = 8;</code>
     * @return The price.
     */
    double getPrice();

    /**
     * <code>optional int64 permId = 9;</code>
     * @return Whether the permId field is set.
     */
    boolean hasPermId();
    /**
     * <code>optional int64 permId = 9;</code>
     * @return The permId.
     */
    long getPermId();

    /**
     * <code>optional int32 clientId = 10;</code>
     * @return Whether the clientId field is set.
     */
    boolean hasClientId();
    /**
     * <code>optional int32 clientId = 10;</code>
     * @return The clientId.
     */
    int getClientId();

    /**
     * <code>optional bool isLiquidation = 11;</code>
     * @return Whether the isLiquidation field is set.
     */
    boolean hasIsLiquidation();
    /**
     * <code>optional bool isLiquidation = 11;</code>
     * @return The isLiquidation.
     */
    boolean getIsLiquidation();

    /**
     * <code>optional string cumQty = 12;</code>
     * @return Whether the cumQty field is set.
     */
    boolean hasCumQty();
    /**
     * <code>optional string cumQty = 12;</code>
     * @return The cumQty.
     */
    java.lang.String getCumQty();
    /**
     * <code>optional string cumQty = 12;</code>
     * @return The bytes for cumQty.
     */
    com.google.protobuf.ByteString
        getCumQtyBytes();

    /**
     * <code>optional double avgPrice = 13;</code>
     * @return Whether the avgPrice field is set.
     */
    boolean hasAvgPrice();
    /**
     * <code>optional double avgPrice = 13;</code>
     * @return The avgPrice.
     */
    double getAvgPrice();

    /**
     * <code>optional string orderRef = 14;</code>
     * @return Whether the orderRef field is set.
     */
    boolean hasOrderRef();
    /**
     * <code>optional string orderRef = 14;</code>
     * @return The orderRef.
     */
    java.lang.String getOrderRef();
    /**
     * <code>optional string orderRef = 14;</code>
     * @return The bytes for orderRef.
     */
    com.google.protobuf.ByteString
        getOrderRefBytes();

    /**
     * <code>optional string evRule = 15;</code>
     * @return Whether the evRule field is set.
     */
    boolean hasEvRule();
    /**
     * <code>optional string evRule = 15;</code>
     * @return The evRule.
     */
    java.lang.String getEvRule();
    /**
     * <code>optional string evRule = 15;</code>
     * @return The bytes for evRule.
     */
    com.google.protobuf.ByteString
        getEvRuleBytes();

    /**
     * <code>optional double evMultiplier = 16;</code>
     * @return Whether the evMultiplier field is set.
     */
    boolean hasEvMultiplier();
    /**
     * <code>optional double evMultiplier = 16;</code>
     * @return The evMultiplier.
     */
    double getEvMultiplier();

    /**
     * <code>optional string modelCode = 17;</code>
     * @return Whether the modelCode field is set.
     */
    boolean hasModelCode();
    /**
     * <code>optional string modelCode = 17;</code>
     * @return The modelCode.
     */
    java.lang.String getModelCode();
    /**
     * <code>optional string modelCode = 17;</code>
     * @return The bytes for modelCode.
     */
    com.google.protobuf.ByteString
        getModelCodeBytes();

    /**
     * <code>optional int32 lastLiquidity = 18;</code>
     * @return Whether the lastLiquidity field is set.
     */
    boolean hasLastLiquidity();
    /**
     * <code>optional int32 lastLiquidity = 18;</code>
     * @return The lastLiquidity.
     */
    int getLastLiquidity();

    /**
     * <code>optional bool isPriceRevisionPending = 19;</code>
     * @return Whether the isPriceRevisionPending field is set.
     */
    boolean hasIsPriceRevisionPending();
    /**
     * <code>optional bool isPriceRevisionPending = 19;</code>
     * @return The isPriceRevisionPending.
     */
    boolean getIsPriceRevisionPending();

    /**
     * <code>optional string submitter = 20;</code>
     * @return Whether the submitter field is set.
     */
    boolean hasSubmitter();
    /**
     * <code>optional string submitter = 20;</code>
     * @return The submitter.
     */
    java.lang.String getSubmitter();
    /**
     * <code>optional string submitter = 20;</code>
     * @return The bytes for submitter.
     */
    com.google.protobuf.ByteString
        getSubmitterBytes();

    /**
     * <code>optional int32 optExerciseOrLapseType = 21;</code>
     * @return Whether the optExerciseOrLapseType field is set.
     */
    boolean hasOptExerciseOrLapseType();
    /**
     * <code>optional int32 optExerciseOrLapseType = 21;</code>
     * @return The optExerciseOrLapseType.
     */
    int getOptExerciseOrLapseType();
  }
  /**
   * Protobuf type {@code protobuf.Execution}
   */
  public static final class Execution extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:protobuf.Execution)
      ExecutionOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 29,
        /* patch= */ 3,
        /* suffix= */ "",
        Execution.class.getName());
    }
    // Use Execution.newBuilder() to construct.
    private Execution(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Execution() {
      execId_ = "";
      time_ = "";
      acctNumber_ = "";
      exchange_ = "";
      side_ = "";
      shares_ = "";
      cumQty_ = "";
      orderRef_ = "";
      evRule_ = "";
      modelCode_ = "";
      submitter_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.ib.client.protobuf.ExecutionProto.internal_static_protobuf_Execution_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ib.client.protobuf.ExecutionProto.internal_static_protobuf_Execution_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.ib.client.protobuf.ExecutionProto.Execution.class, com.ib.client.protobuf.ExecutionProto.Execution.Builder.class);
    }

    private int bitField0_;
    public static final int ORDERID_FIELD_NUMBER = 1;
    private int orderId_ = 0;
    /**
     * <code>optional int32 orderId = 1;</code>
     * @return Whether the orderId field is set.
     */
    @java.lang.Override
    public boolean hasOrderId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 orderId = 1;</code>
     * @return The orderId.
     */
    @java.lang.Override
    public int getOrderId() {
      return orderId_;
    }

    public static final int EXECID_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object execId_ = "";
    /**
     * <code>optional string execId = 2;</code>
     * @return Whether the execId field is set.
     */
    @java.lang.Override
    public boolean hasExecId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string execId = 2;</code>
     * @return The execId.
     */
    @java.lang.Override
    public java.lang.String getExecId() {
      java.lang.Object ref = execId_;
      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();
        execId_ = s;
        return s;
      }
    }
    /**
     * <code>optional string execId = 2;</code>
     * @return The bytes for execId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExecIdBytes() {
      java.lang.Object ref = execId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        execId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIME_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object time_ = "";
    /**
     * <code>optional string time = 3;</code>
     * @return Whether the time field is set.
     */
    @java.lang.Override
    public boolean hasTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string time = 3;</code>
     * @return The time.
     */
    @java.lang.Override
    public java.lang.String getTime() {
      java.lang.Object ref = time_;
      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();
        time_ = s;
        return s;
      }
    }
    /**
     * <code>optional string time = 3;</code>
     * @return The bytes for time.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimeBytes() {
      java.lang.Object ref = time_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        time_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACCTNUMBER_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object acctNumber_ = "";
    /**
     * <code>optional string acctNumber = 4;</code>
     * @return Whether the acctNumber field is set.
     */
    @java.lang.Override
    public boolean hasAcctNumber() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string acctNumber = 4;</code>
     * @return The acctNumber.
     */
    @java.lang.Override
    public java.lang.String getAcctNumber() {
      java.lang.Object ref = acctNumber_;
      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();
        acctNumber_ = s;
        return s;
      }
    }
    /**
     * <code>optional string acctNumber = 4;</code>
     * @return The bytes for acctNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAcctNumberBytes() {
      java.lang.Object ref = acctNumber_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        acctNumber_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXCHANGE_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private volatile java.lang.Object exchange_ = "";
    /**
     * <code>optional string exchange = 5;</code>
     * @return Whether the exchange field is set.
     */
    @java.lang.Override
    public boolean hasExchange() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string exchange = 5;</code>
     * @return The exchange.
     */
    @java.lang.Override
    public java.lang.String getExchange() {
      java.lang.Object ref = exchange_;
      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();
        exchange_ = s;
        return s;
      }
    }
    /**
     * <code>optional string exchange = 5;</code>
     * @return The bytes for exchange.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExchangeBytes() {
      java.lang.Object ref = exchange_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        exchange_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIDE_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object side_ = "";
    /**
     * <code>optional string side = 6;</code>
     * @return Whether the side field is set.
     */
    @java.lang.Override
    public boolean hasSide() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string side = 6;</code>
     * @return The side.
     */
    @java.lang.Override
    public java.lang.String getSide() {
      java.lang.Object ref = side_;
      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();
        side_ = s;
        return s;
      }
    }
    /**
     * <code>optional string side = 6;</code>
     * @return The bytes for side.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSideBytes() {
      java.lang.Object ref = side_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        side_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHARES_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object shares_ = "";
    /**
     * <code>optional string shares = 7;</code>
     * @return Whether the shares field is set.
     */
    @java.lang.Override
    public boolean hasShares() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional string shares = 7;</code>
     * @return The shares.
     */
    @java.lang.Override
    public java.lang.String getShares() {
      java.lang.Object ref = shares_;
      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();
        shares_ = s;
        return s;
      }
    }
    /**
     * <code>optional string shares = 7;</code>
     * @return The bytes for shares.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSharesBytes() {
      java.lang.Object ref = shares_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shares_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRICE_FIELD_NUMBER = 8;
    private double price_ = 0D;
    /**
     * <code>optional double price = 8;</code>
     * @return Whether the price field is set.
     */
    @java.lang.Override
    public boolean hasPrice() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional double price = 8;</code>
     * @return The price.
     */
    @java.lang.Override
    public double getPrice() {
      return price_;
    }

    public static final int PERMID_FIELD_NUMBER = 9;
    private long permId_ = 0L;
    /**
     * <code>optional int64 permId = 9;</code>
     * @return Whether the permId field is set.
     */
    @java.lang.Override
    public boolean hasPermId() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional int64 permId = 9;</code>
     * @return The permId.
     */
    @java.lang.Override
    public long getPermId() {
      return permId_;
    }

    public static final int CLIENTID_FIELD_NUMBER = 10;
    private int clientId_ = 0;
    /**
     * <code>optional int32 clientId = 10;</code>
     * @return Whether the clientId field is set.
     */
    @java.lang.Override
    public boolean hasClientId() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional int32 clientId = 10;</code>
     * @return The clientId.
     */
    @java.lang.Override
    public int getClientId() {
      return clientId_;
    }

    public static final int ISLIQUIDATION_FIELD_NUMBER = 11;
    private boolean isLiquidation_ = false;
    /**
     * <code>optional bool isLiquidation = 11;</code>
     * @return Whether the isLiquidation field is set.
     */
    @java.lang.Override
    public boolean hasIsLiquidation() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional bool isLiquidation = 11;</code>
     * @return The isLiquidation.
     */
    @java.lang.Override
    public boolean getIsLiquidation() {
      return isLiquidation_;
    }

    public static final int CUMQTY_FIELD_NUMBER = 12;
    @SuppressWarnings("serial")
    private volatile java.lang.Object cumQty_ = "";
    /**
     * <code>optional string cumQty = 12;</code>
     * @return Whether the cumQty field is set.
     */
    @java.lang.Override
    public boolean hasCumQty() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional string cumQty = 12;</code>
     * @return The cumQty.
     */
    @java.lang.Override
    public java.lang.String getCumQty() {
      java.lang.Object ref = cumQty_;
      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();
        cumQty_ = s;
        return s;
      }
    }
    /**
     * <code>optional string cumQty = 12;</code>
     * @return The bytes for cumQty.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCumQtyBytes() {
      java.lang.Object ref = cumQty_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cumQty_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AVGPRICE_FIELD_NUMBER = 13;
    private double avgPrice_ = 0D;
    /**
     * <code>optional double avgPrice = 13;</code>
     * @return Whether the avgPrice field is set.
     */
    @java.lang.Override
    public boolean hasAvgPrice() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional double avgPrice = 13;</code>
     * @return The avgPrice.
     */
    @java.lang.Override
    public double getAvgPrice() {
      return avgPrice_;
    }

    public static final int ORDERREF_FIELD_NUMBER = 14;
    @SuppressWarnings("serial")
    private volatile java.lang.Object orderRef_ = "";
    /**
     * <code>optional string orderRef = 14;</code>
     * @return Whether the orderRef field is set.
     */
    @java.lang.Override
    public boolean hasOrderRef() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional string orderRef = 14;</code>
     * @return The orderRef.
     */
    @java.lang.Override
    public java.lang.String getOrderRef() {
      java.lang.Object ref = orderRef_;
      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();
        orderRef_ = s;
        return s;
      }
    }
    /**
     * <code>optional string orderRef = 14;</code>
     * @return The bytes for orderRef.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOrderRefBytes() {
      java.lang.Object ref = orderRef_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        orderRef_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EVRULE_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private volatile java.lang.Object evRule_ = "";
    /**
     * <code>optional string evRule = 15;</code>
     * @return Whether the evRule field is set.
     */
    @java.lang.Override
    public boolean hasEvRule() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional string evRule = 15;</code>
     * @return The evRule.
     */
    @java.lang.Override
    public java.lang.String getEvRule() {
      java.lang.Object ref = evRule_;
      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();
        evRule_ = s;
        return s;
      }
    }
    /**
     * <code>optional string evRule = 15;</code>
     * @return The bytes for evRule.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEvRuleBytes() {
      java.lang.Object ref = evRule_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        evRule_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EVMULTIPLIER_FIELD_NUMBER = 16;
    private double evMultiplier_ = 0D;
    /**
     * <code>optional double evMultiplier = 16;</code>
     * @return Whether the evMultiplier field is set.
     */
    @java.lang.Override
    public boolean hasEvMultiplier() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional double evMultiplier = 16;</code>
     * @return The evMultiplier.
     */
    @java.lang.Override
    public double getEvMultiplier() {
      return evMultiplier_;
    }

    public static final int MODELCODE_FIELD_NUMBER = 17;
    @SuppressWarnings("serial")
    private volatile java.lang.Object modelCode_ = "";
    /**
     * <code>optional string modelCode = 17;</code>
     * @return Whether the modelCode field is set.
     */
    @java.lang.Override
    public boolean hasModelCode() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional string modelCode = 17;</code>
     * @return The modelCode.
     */
    @java.lang.Override
    public java.lang.String getModelCode() {
      java.lang.Object ref = modelCode_;
      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();
        modelCode_ = s;
        return s;
      }
    }
    /**
     * <code>optional string modelCode = 17;</code>
     * @return The bytes for modelCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelCodeBytes() {
      java.lang.Object ref = modelCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        modelCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LASTLIQUIDITY_FIELD_NUMBER = 18;
    private int lastLiquidity_ = 0;
    /**
     * <code>optional int32 lastLiquidity = 18;</code>
     * @return Whether the lastLiquidity field is set.
     */
    @java.lang.Override
    public boolean hasLastLiquidity() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional int32 lastLiquidity = 18;</code>
     * @return The lastLiquidity.
     */
    @java.lang.Override
    public int getLastLiquidity() {
      return lastLiquidity_;
    }

    public static final int ISPRICEREVISIONPENDING_FIELD_NUMBER = 19;
    private boolean isPriceRevisionPending_ = false;
    /**
     * <code>optional bool isPriceRevisionPending = 19;</code>
     * @return Whether the isPriceRevisionPending field is set.
     */
    @java.lang.Override
    public boolean hasIsPriceRevisionPending() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional bool isPriceRevisionPending = 19;</code>
     * @return The isPriceRevisionPending.
     */
    @java.lang.Override
    public boolean getIsPriceRevisionPending() {
      return isPriceRevisionPending_;
    }

    public static final int SUBMITTER_FIELD_NUMBER = 20;
    @SuppressWarnings("serial")
    private volatile java.lang.Object submitter_ = "";
    /**
     * <code>optional string submitter = 20;</code>
     * @return Whether the submitter field is set.
     */
    @java.lang.Override
    public boolean hasSubmitter() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional string submitter = 20;</code>
     * @return The submitter.
     */
    @java.lang.Override
    public java.lang.String getSubmitter() {
      java.lang.Object ref = submitter_;
      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();
        submitter_ = s;
        return s;
      }
    }
    /**
     * <code>optional string submitter = 20;</code>
     * @return The bytes for submitter.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSubmitterBytes() {
      java.lang.Object ref = submitter_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        submitter_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPTEXERCISEORLAPSETYPE_FIELD_NUMBER = 21;
    private int optExerciseOrLapseType_ = 0;
    /**
     * <code>optional int32 optExerciseOrLapseType = 21;</code>
     * @return Whether the optExerciseOrLapseType field is set.
     */
    @java.lang.Override
    public boolean hasOptExerciseOrLapseType() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional int32 optExerciseOrLapseType = 21;</code>
     * @return The optExerciseOrLapseType.
     */
    @java.lang.Override
    public int getOptExerciseOrLapseType() {
      return optExerciseOrLapseType_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(1, orderId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, execId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, time_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, acctNumber_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, exchange_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, side_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 7, shares_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeDouble(8, price_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt64(9, permId_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeInt32(10, clientId_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeBool(11, isLiquidation_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 12, cumQty_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeDouble(13, avgPrice_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 14, orderRef_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 15, evRule_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeDouble(16, evMultiplier_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 17, modelCode_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeInt32(18, lastLiquidity_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeBool(19, isPriceRevisionPending_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 20, submitter_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeInt32(21, optExerciseOrLapseType_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, orderId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, execId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, time_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, acctNumber_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, exchange_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, side_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(7, shares_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(8, price_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, permId_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, clientId_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, isLiquidation_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(12, cumQty_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(13, avgPrice_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(14, orderRef_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(15, evRule_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(16, evMultiplier_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(17, modelCode_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(18, lastLiquidity_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, isPriceRevisionPending_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(20, submitter_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(21, optExerciseOrLapseType_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.ib.client.protobuf.ExecutionProto.Execution)) {
        return super.equals(obj);
      }
      com.ib.client.protobuf.ExecutionProto.Execution other = (com.ib.client.protobuf.ExecutionProto.Execution) obj;

      if (hasOrderId() != other.hasOrderId()) return false;
      if (hasOrderId()) {
        if (getOrderId()
            != other.getOrderId()) return false;
      }
      if (hasExecId() != other.hasExecId()) return false;
      if (hasExecId()) {
        if (!getExecId()
            .equals(other.getExecId())) return false;
      }
      if (hasTime() != other.hasTime()) return false;
      if (hasTime()) {
        if (!getTime()
            .equals(other.getTime())) return false;
      }
      if (hasAcctNumber() != other.hasAcctNumber()) return false;
      if (hasAcctNumber()) {
        if (!getAcctNumber()
            .equals(other.getAcctNumber())) return false;
      }
      if (hasExchange() != other.hasExchange()) return false;
      if (hasExchange()) {
        if (!getExchange()
            .equals(other.getExchange())) return false;
      }
      if (hasSide() != other.hasSide()) return false;
      if (hasSide()) {
        if (!getSide()
            .equals(other.getSide())) return false;
      }
      if (hasShares() != other.hasShares()) return false;
      if (hasShares()) {
        if (!getShares()
            .equals(other.getShares())) return false;
      }
      if (hasPrice() != other.hasPrice()) return false;
      if (hasPrice()) {
        if (java.lang.Double.doubleToLongBits(getPrice())
            != java.lang.Double.doubleToLongBits(
                other.getPrice())) return false;
      }
      if (hasPermId() != other.hasPermId()) return false;
      if (hasPermId()) {
        if (getPermId()
            != other.getPermId()) return false;
      }
      if (hasClientId() != other.hasClientId()) return false;
      if (hasClientId()) {
        if (getClientId()
            != other.getClientId()) return false;
      }
      if (hasIsLiquidation() != other.hasIsLiquidation()) return false;
      if (hasIsLiquidation()) {
        if (getIsLiquidation()
            != other.getIsLiquidation()) return false;
      }
      if (hasCumQty() != other.hasCumQty()) return false;
      if (hasCumQty()) {
        if (!getCumQty()
            .equals(other.getCumQty())) return false;
      }
      if (hasAvgPrice() != other.hasAvgPrice()) return false;
      if (hasAvgPrice()) {
        if (java.lang.Double.doubleToLongBits(getAvgPrice())
            != java.lang.Double.doubleToLongBits(
                other.getAvgPrice())) return false;
      }
      if (hasOrderRef() != other.hasOrderRef()) return false;
      if (hasOrderRef()) {
        if (!getOrderRef()
            .equals(other.getOrderRef())) return false;
      }
      if (hasEvRule() != other.hasEvRule()) return false;
      if (hasEvRule()) {
        if (!getEvRule()
            .equals(other.getEvRule())) return false;
      }
      if (hasEvMultiplier() != other.hasEvMultiplier()) return false;
      if (hasEvMultiplier()) {
        if (java.lang.Double.doubleToLongBits(getEvMultiplier())
            != java.lang.Double.doubleToLongBits(
                other.getEvMultiplier())) return false;
      }
      if (hasModelCode() != other.hasModelCode()) return false;
      if (hasModelCode()) {
        if (!getModelCode()
            .equals(other.getModelCode())) return false;
      }
      if (hasLastLiquidity() != other.hasLastLiquidity()) return false;
      if (hasLastLiquidity()) {
        if (getLastLiquidity()
            != other.getLastLiquidity()) return false;
      }
      if (hasIsPriceRevisionPending() != other.hasIsPriceRevisionPending()) return false;
      if (hasIsPriceRevisionPending()) {
        if (getIsPriceRevisionPending()
            != other.getIsPriceRevisionPending()) return false;
      }
      if (hasSubmitter() != other.hasSubmitter()) return false;
      if (hasSubmitter()) {
        if (!getSubmitter()
            .equals(other.getSubmitter())) return false;
      }
      if (hasOptExerciseOrLapseType() != other.hasOptExerciseOrLapseType()) return false;
      if (hasOptExerciseOrLapseType()) {
        if (getOptExerciseOrLapseType()
            != other.getOptExerciseOrLapseType()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOrderId()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + getOrderId();
      }
      if (hasExecId()) {
        hash = (37 * hash) + EXECID_FIELD_NUMBER;
        hash = (53 * hash) + getExecId().hashCode();
      }
      if (hasTime()) {
        hash = (37 * hash) + TIME_FIELD_NUMBER;
        hash = (53 * hash) + getTime().hashCode();
      }
      if (hasAcctNumber()) {
        hash = (37 * hash) + ACCTNUMBER_FIELD_NUMBER;
        hash = (53 * hash) + getAcctNumber().hashCode();
      }
      if (hasExchange()) {
        hash = (37 * hash) + EXCHANGE_FIELD_NUMBER;
        hash = (53 * hash) + getExchange().hashCode();
      }
      if (hasSide()) {
        hash = (37 * hash) + SIDE_FIELD_NUMBER;
        hash = (53 * hash) + getSide().hashCode();
      }
      if (hasShares()) {
        hash = (37 * hash) + SHARES_FIELD_NUMBER;
        hash = (53 * hash) + getShares().hashCode();
      }
      if (hasPrice()) {
        hash = (37 * hash) + PRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPrice()));
      }
      if (hasPermId()) {
        hash = (37 * hash) + PERMID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPermId());
      }
      if (hasClientId()) {
        hash = (37 * hash) + CLIENTID_FIELD_NUMBER;
        hash = (53 * hash) + getClientId();
      }
      if (hasIsLiquidation()) {
        hash = (37 * hash) + ISLIQUIDATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsLiquidation());
      }
      if (hasCumQty()) {
        hash = (37 * hash) + CUMQTY_FIELD_NUMBER;
        hash = (53 * hash) + getCumQty().hashCode();
      }
      if (hasAvgPrice()) {
        hash = (37 * hash) + AVGPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAvgPrice()));
      }
      if (hasOrderRef()) {
        hash = (37 * hash) + ORDERREF_FIELD_NUMBER;
        hash = (53 * hash) + getOrderRef().hashCode();
      }
      if (hasEvRule()) {
        hash = (37 * hash) + EVRULE_FIELD_NUMBER;
        hash = (53 * hash) + getEvRule().hashCode();
      }
      if (hasEvMultiplier()) {
        hash = (37 * hash) + EVMULTIPLIER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getEvMultiplier()));
      }
      if (hasModelCode()) {
        hash = (37 * hash) + MODELCODE_FIELD_NUMBER;
        hash = (53 * hash) + getModelCode().hashCode();
      }
      if (hasLastLiquidity()) {
        hash = (37 * hash) + LASTLIQUIDITY_FIELD_NUMBER;
        hash = (53 * hash) + getLastLiquidity();
      }
      if (hasIsPriceRevisionPending()) {
        hash = (37 * hash) + ISPRICEREVISIONPENDING_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsPriceRevisionPending());
      }
      if (hasSubmitter()) {
        hash = (37 * hash) + SUBMITTER_FIELD_NUMBER;
        hash = (53 * hash) + getSubmitter().hashCode();
      }
      if (hasOptExerciseOrLapseType()) {
        hash = (37 * hash) + OPTEXERCISEORLAPSETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOptExerciseOrLapseType();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.ib.client.protobuf.ExecutionProto.Execution parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.ib.client.protobuf.ExecutionProto.Execution parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.ib.client.protobuf.ExecutionProto.Execution parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.ib.client.protobuf.ExecutionProto.Execution prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code protobuf.Execution}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:protobuf.Execution)
        com.ib.client.protobuf.ExecutionProto.ExecutionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.ib.client.protobuf.ExecutionProto.internal_static_protobuf_Execution_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ib.client.protobuf.ExecutionProto.internal_static_protobuf_Execution_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.ib.client.protobuf.ExecutionProto.Execution.class, com.ib.client.protobuf.ExecutionProto.Execution.Builder.class);
      }

      // Construct using com.ib.client.protobuf.ExecutionProto.Execution.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        orderId_ = 0;
        execId_ = "";
        time_ = "";
        acctNumber_ = "";
        exchange_ = "";
        side_ = "";
        shares_ = "";
        price_ = 0D;
        permId_ = 0L;
        clientId_ = 0;
        isLiquidation_ = false;
        cumQty_ = "";
        avgPrice_ = 0D;
        orderRef_ = "";
        evRule_ = "";
        evMultiplier_ = 0D;
        modelCode_ = "";
        lastLiquidity_ = 0;
        isPriceRevisionPending_ = false;
        submitter_ = "";
        optExerciseOrLapseType_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ib.client.protobuf.ExecutionProto.internal_static_protobuf_Execution_descriptor;
      }

      @java.lang.Override
      public com.ib.client.protobuf.ExecutionProto.Execution getDefaultInstanceForType() {
        return com.ib.client.protobuf.ExecutionProto.Execution.getDefaultInstance();
      }

      @java.lang.Override
      public com.ib.client.protobuf.ExecutionProto.Execution build() {
        com.ib.client.protobuf.ExecutionProto.Execution result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.ib.client.protobuf.ExecutionProto.Execution buildPartial() {
        com.ib.client.protobuf.ExecutionProto.Execution result = new com.ib.client.protobuf.ExecutionProto.Execution(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.ib.client.protobuf.ExecutionProto.Execution result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.orderId_ = orderId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.execId_ = execId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.time_ = time_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.acctNumber_ = acctNumber_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.exchange_ = exchange_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.side_ = side_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.shares_ = shares_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.price_ = price_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.permId_ = permId_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.clientId_ = clientId_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.isLiquidation_ = isLiquidation_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.cumQty_ = cumQty_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.avgPrice_ = avgPrice_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.orderRef_ = orderRef_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.evRule_ = evRule_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.evMultiplier_ = evMultiplier_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.modelCode_ = modelCode_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.lastLiquidity_ = lastLiquidity_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.isPriceRevisionPending_ = isPriceRevisionPending_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.submitter_ = submitter_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.optExerciseOrLapseType_ = optExerciseOrLapseType_;
          to_bitField0_ |= 0x00100000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ib.client.protobuf.ExecutionProto.Execution) {
          return mergeFrom((com.ib.client.protobuf.ExecutionProto.Execution)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.ib.client.protobuf.ExecutionProto.Execution other) {
        if (other == com.ib.client.protobuf.ExecutionProto.Execution.getDefaultInstance()) return this;
        if (other.hasOrderId()) {
          setOrderId(other.getOrderId());
        }
        if (other.hasExecId()) {
          execId_ = other.execId_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasTime()) {
          time_ = other.time_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        if (other.hasAcctNumber()) {
          acctNumber_ = other.acctNumber_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (other.hasExchange()) {
          exchange_ = other.exchange_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.hasSide()) {
          side_ = other.side_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.hasShares()) {
          shares_ = other.shares_;
          bitField0_ |= 0x00000040;
          onChanged();
        }
        if (other.hasPrice()) {
          setPrice(other.getPrice());
        }
        if (other.hasPermId()) {
          setPermId(other.getPermId());
        }
        if (other.hasClientId()) {
          setClientId(other.getClientId());
        }
        if (other.hasIsLiquidation()) {
          setIsLiquidation(other.getIsLiquidation());
        }
        if (other.hasCumQty()) {
          cumQty_ = other.cumQty_;
          bitField0_ |= 0x00000800;
          onChanged();
        }
        if (other.hasAvgPrice()) {
          setAvgPrice(other.getAvgPrice());
        }
        if (other.hasOrderRef()) {
          orderRef_ = other.orderRef_;
          bitField0_ |= 0x00002000;
          onChanged();
        }
        if (other.hasEvRule()) {
          evRule_ = other.evRule_;
          bitField0_ |= 0x00004000;
          onChanged();
        }
        if (other.hasEvMultiplier()) {
          setEvMultiplier(other.getEvMultiplier());
        }
        if (other.hasModelCode()) {
          modelCode_ = other.modelCode_;
          bitField0_ |= 0x00010000;
          onChanged();
        }
        if (other.hasLastLiquidity()) {
          setLastLiquidity(other.getLastLiquidity());
        }
        if (other.hasIsPriceRevisionPending()) {
          setIsPriceRevisionPending(other.getIsPriceRevisionPending());
        }
        if (other.hasSubmitter()) {
          submitter_ = other.submitter_;
          bitField0_ |= 0x00080000;
          onChanged();
        }
        if (other.hasOptExerciseOrLapseType()) {
          setOptExerciseOrLapseType(other.getOptExerciseOrLapseType());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                orderId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                execId_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                time_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                acctNumber_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                exchange_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                side_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                shares_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 65: {
                price_ = input.readDouble();
                bitField0_ |= 0x00000080;
                break;
              } // case 65
              case 72: {
                permId_ = input.readInt64();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                clientId_ = input.readInt32();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                isLiquidation_ = input.readBool();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 98: {
                cumQty_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 105: {
                avgPrice_ = input.readDouble();
                bitField0_ |= 0x00001000;
                break;
              } // case 105
              case 114: {
                orderRef_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 122: {
                evRule_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00004000;
                break;
              } // case 122
              case 129: {
                evMultiplier_ = input.readDouble();
                bitField0_ |= 0x00008000;
                break;
              } // case 129
              case 138: {
                modelCode_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00010000;
                break;
              } // case 138
              case 144: {
                lastLiquidity_ = input.readInt32();
                bitField0_ |= 0x00020000;
                break;
              } // case 144
              case 152: {
                isPriceRevisionPending_ = input.readBool();
                bitField0_ |= 0x00040000;
                break;
              } // case 152
              case 162: {
                submitter_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00080000;
                break;
              } // case 162
              case 168: {
                optExerciseOrLapseType_ = input.readInt32();
                bitField0_ |= 0x00100000;
                break;
              } // case 168
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int orderId_ ;
      /**
       * <code>optional int32 orderId = 1;</code>
       * @return Whether the orderId field is set.
       */
      @java.lang.Override
      public boolean hasOrderId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int32 orderId = 1;</code>
       * @return The orderId.
       */
      @java.lang.Override
      public int getOrderId() {
        return orderId_;
      }
      /**
       * <code>optional int32 orderId = 1;</code>
       * @param value The orderId to set.
       * @return This builder for chaining.
       */
      public Builder setOrderId(int value) {

        orderId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 orderId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        orderId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object execId_ = "";
      /**
       * <code>optional string execId = 2;</code>
       * @return Whether the execId field is set.
       */
      public boolean hasExecId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string execId = 2;</code>
       * @return The execId.
       */
      public java.lang.String getExecId() {
        java.lang.Object ref = execId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          execId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string execId = 2;</code>
       * @return The bytes for execId.
       */
      public com.google.protobuf.ByteString
          getExecIdBytes() {
        java.lang.Object ref = execId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          execId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string execId = 2;</code>
       * @param value The execId to set.
       * @return This builder for chaining.
       */
      public Builder setExecId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        execId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional string execId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearExecId() {
        execId_ = getDefaultInstance().getExecId();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>optional string execId = 2;</code>
       * @param value The bytes for execId to set.
       * @return This builder for chaining.
       */
      public Builder setExecIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        execId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object time_ = "";
      /**
       * <code>optional string time = 3;</code>
       * @return Whether the time field is set.
       */
      public boolean hasTime() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string time = 3;</code>
       * @return The time.
       */
      public java.lang.String getTime() {
        java.lang.Object ref = time_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          time_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string time = 3;</code>
       * @return The bytes for time.
       */
      public com.google.protobuf.ByteString
          getTimeBytes() {
        java.lang.Object ref = time_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          time_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string time = 3;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        time_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional string time = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        time_ = getDefaultInstance().getTime();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>optional string time = 3;</code>
       * @param value The bytes for time to set.
       * @return This builder for chaining.
       */
      public Builder setTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        time_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object acctNumber_ = "";
      /**
       * <code>optional string acctNumber = 4;</code>
       * @return Whether the acctNumber field is set.
       */
      public boolean hasAcctNumber() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string acctNumber = 4;</code>
       * @return The acctNumber.
       */
      public java.lang.String getAcctNumber() {
        java.lang.Object ref = acctNumber_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          acctNumber_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string acctNumber = 4;</code>
       * @return The bytes for acctNumber.
       */
      public com.google.protobuf.ByteString
          getAcctNumberBytes() {
        java.lang.Object ref = acctNumber_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          acctNumber_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string acctNumber = 4;</code>
       * @param value The acctNumber to set.
       * @return This builder for chaining.
       */
      public Builder setAcctNumber(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        acctNumber_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional string acctNumber = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAcctNumber() {
        acctNumber_ = getDefaultInstance().getAcctNumber();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>optional string acctNumber = 4;</code>
       * @param value The bytes for acctNumber to set.
       * @return This builder for chaining.
       */
      public Builder setAcctNumberBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        acctNumber_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private java.lang.Object exchange_ = "";
      /**
       * <code>optional string exchange = 5;</code>
       * @return Whether the exchange field is set.
       */
      public boolean hasExchange() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional string exchange = 5;</code>
       * @return The exchange.
       */
      public java.lang.String getExchange() {
        java.lang.Object ref = exchange_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          exchange_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string exchange = 5;</code>
       * @return The bytes for exchange.
       */
      public com.google.protobuf.ByteString
          getExchangeBytes() {
        java.lang.Object ref = exchange_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          exchange_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string exchange = 5;</code>
       * @param value The exchange to set.
       * @return This builder for chaining.
       */
      public Builder setExchange(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        exchange_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional string exchange = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearExchange() {
        exchange_ = getDefaultInstance().getExchange();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>optional string exchange = 5;</code>
       * @param value The bytes for exchange to set.
       * @return This builder for chaining.
       */
      public Builder setExchangeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        exchange_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

      private java.lang.Object side_ = "";
      /**
       * <code>optional string side = 6;</code>
       * @return Whether the side field is set.
       */
      public boolean hasSide() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string side = 6;</code>
       * @return The side.
       */
      public java.lang.String getSide() {
        java.lang.Object ref = side_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          side_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string side = 6;</code>
       * @return The bytes for side.
       */
      public com.google.protobuf.ByteString
          getSideBytes() {
        java.lang.Object ref = side_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          side_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string side = 6;</code>
       * @param value The side to set.
       * @return This builder for chaining.
       */
      public Builder setSide(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        side_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional string side = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearSide() {
        side_ = getDefaultInstance().getSide();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>optional string side = 6;</code>
       * @param value The bytes for side to set.
       * @return This builder for chaining.
       */
      public Builder setSideBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        side_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private java.lang.Object shares_ = "";
      /**
       * <code>optional string shares = 7;</code>
       * @return Whether the shares field is set.
       */
      public boolean hasShares() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional string shares = 7;</code>
       * @return The shares.
       */
      public java.lang.String getShares() {
        java.lang.Object ref = shares_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          shares_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string shares = 7;</code>
       * @return The bytes for shares.
       */
      public com.google.protobuf.ByteString
          getSharesBytes() {
        java.lang.Object ref = shares_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shares_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string shares = 7;</code>
       * @param value The shares to set.
       * @return This builder for chaining.
       */
      public Builder setShares(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        shares_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional string shares = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearShares() {
        shares_ = getDefaultInstance().getShares();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>optional string shares = 7;</code>
       * @param value The bytes for shares to set.
       * @return This builder for chaining.
       */
      public Builder setSharesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        shares_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }

      private double price_ ;
      /**
       * <code>optional double price = 8;</code>
       * @return Whether the price field is set.
       */
      @java.lang.Override
      public boolean hasPrice() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional double price = 8;</code>
       * @return The price.
       */
      @java.lang.Override
      public double getPrice() {
        return price_;
      }
      /**
       * <code>optional double price = 8;</code>
       * @param value The price to set.
       * @return This builder for chaining.
       */
      public Builder setPrice(double value) {

        price_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional double price = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrice() {
        bitField0_ = (bitField0_ & ~0x00000080);
        price_ = 0D;
        onChanged();
        return this;
      }

      private long permId_ ;
      /**
       * <code>optional int64 permId = 9;</code>
       * @return Whether the permId field is set.
       */
      @java.lang.Override
      public boolean hasPermId() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional int64 permId = 9;</code>
       * @return The permId.
       */
      @java.lang.Override
      public long getPermId() {
        return permId_;
      }
      /**
       * <code>optional int64 permId = 9;</code>
       * @param value The permId to set.
       * @return This builder for chaining.
       */
      public Builder setPermId(long value) {

        permId_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 permId = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearPermId() {
        bitField0_ = (bitField0_ & ~0x00000100);
        permId_ = 0L;
        onChanged();
        return this;
      }

      private int clientId_ ;
      /**
       * <code>optional int32 clientId = 10;</code>
       * @return Whether the clientId field is set.
       */
      @java.lang.Override
      public boolean hasClientId() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional int32 clientId = 10;</code>
       * @return The clientId.
       */
      @java.lang.Override
      public int getClientId() {
        return clientId_;
      }
      /**
       * <code>optional int32 clientId = 10;</code>
       * @param value The clientId to set.
       * @return This builder for chaining.
       */
      public Builder setClientId(int value) {

        clientId_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 clientId = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientId() {
        bitField0_ = (bitField0_ & ~0x00000200);
        clientId_ = 0;
        onChanged();
        return this;
      }

      private boolean isLiquidation_ ;
      /**
       * <code>optional bool isLiquidation = 11;</code>
       * @return Whether the isLiquidation field is set.
       */
      @java.lang.Override
      public boolean hasIsLiquidation() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional bool isLiquidation = 11;</code>
       * @return The isLiquidation.
       */
      @java.lang.Override
      public boolean getIsLiquidation() {
        return isLiquidation_;
      }
      /**
       * <code>optional bool isLiquidation = 11;</code>
       * @param value The isLiquidation to set.
       * @return This builder for chaining.
       */
      public Builder setIsLiquidation(boolean value) {

        isLiquidation_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool isLiquidation = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsLiquidation() {
        bitField0_ = (bitField0_ & ~0x00000400);
        isLiquidation_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object cumQty_ = "";
      /**
       * <code>optional string cumQty = 12;</code>
       * @return Whether the cumQty field is set.
       */
      public boolean hasCumQty() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional string cumQty = 12;</code>
       * @return The cumQty.
       */
      public java.lang.String getCumQty() {
        java.lang.Object ref = cumQty_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          cumQty_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string cumQty = 12;</code>
       * @return The bytes for cumQty.
       */
      public com.google.protobuf.ByteString
          getCumQtyBytes() {
        java.lang.Object ref = cumQty_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cumQty_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string cumQty = 12;</code>
       * @param value The cumQty to set.
       * @return This builder for chaining.
       */
      public Builder setCumQty(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        cumQty_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional string cumQty = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearCumQty() {
        cumQty_ = getDefaultInstance().getCumQty();
        bitField0_ = (bitField0_ & ~0x00000800);
        onChanged();
        return this;
      }
      /**
       * <code>optional string cumQty = 12;</code>
       * @param value The bytes for cumQty to set.
       * @return This builder for chaining.
       */
      public Builder setCumQtyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        cumQty_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }

      private double avgPrice_ ;
      /**
       * <code>optional double avgPrice = 13;</code>
       * @return Whether the avgPrice field is set.
       */
      @java.lang.Override
      public boolean hasAvgPrice() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional double avgPrice = 13;</code>
       * @return The avgPrice.
       */
      @java.lang.Override
      public double getAvgPrice() {
        return avgPrice_;
      }
      /**
       * <code>optional double avgPrice = 13;</code>
       * @param value The avgPrice to set.
       * @return This builder for chaining.
       */
      public Builder setAvgPrice(double value) {

        avgPrice_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double avgPrice = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearAvgPrice() {
        bitField0_ = (bitField0_ & ~0x00001000);
        avgPrice_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object orderRef_ = "";
      /**
       * <code>optional string orderRef = 14;</code>
       * @return Whether the orderRef field is set.
       */
      public boolean hasOrderRef() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional string orderRef = 14;</code>
       * @return The orderRef.
       */
      public java.lang.String getOrderRef() {
        java.lang.Object ref = orderRef_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          orderRef_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string orderRef = 14;</code>
       * @return The bytes for orderRef.
       */
      public com.google.protobuf.ByteString
          getOrderRefBytes() {
        java.lang.Object ref = orderRef_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          orderRef_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string orderRef = 14;</code>
       * @param value The orderRef to set.
       * @return This builder for chaining.
       */
      public Builder setOrderRef(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        orderRef_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string orderRef = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderRef() {
        orderRef_ = getDefaultInstance().getOrderRef();
        bitField0_ = (bitField0_ & ~0x00002000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string orderRef = 14;</code>
       * @param value The bytes for orderRef to set.
       * @return This builder for chaining.
       */
      public Builder setOrderRefBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        orderRef_ = value;
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }

      private java.lang.Object evRule_ = "";
      /**
       * <code>optional string evRule = 15;</code>
       * @return Whether the evRule field is set.
       */
      public boolean hasEvRule() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional string evRule = 15;</code>
       * @return The evRule.
       */
      public java.lang.String getEvRule() {
        java.lang.Object ref = evRule_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          evRule_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string evRule = 15;</code>
       * @return The bytes for evRule.
       */
      public com.google.protobuf.ByteString
          getEvRuleBytes() {
        java.lang.Object ref = evRule_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          evRule_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string evRule = 15;</code>
       * @param value The evRule to set.
       * @return This builder for chaining.
       */
      public Builder setEvRule(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        evRule_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string evRule = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearEvRule() {
        evRule_ = getDefaultInstance().getEvRule();
        bitField0_ = (bitField0_ & ~0x00004000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string evRule = 15;</code>
       * @param value The bytes for evRule to set.
       * @return This builder for chaining.
       */
      public Builder setEvRuleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        evRule_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }

      private double evMultiplier_ ;
      /**
       * <code>optional double evMultiplier = 16;</code>
       * @return Whether the evMultiplier field is set.
       */
      @java.lang.Override
      public boolean hasEvMultiplier() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional double evMultiplier = 16;</code>
       * @return The evMultiplier.
       */
      @java.lang.Override
      public double getEvMultiplier() {
        return evMultiplier_;
      }
      /**
       * <code>optional double evMultiplier = 16;</code>
       * @param value The evMultiplier to set.
       * @return This builder for chaining.
       */
      public Builder setEvMultiplier(double value) {

        evMultiplier_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double evMultiplier = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearEvMultiplier() {
        bitField0_ = (bitField0_ & ~0x00008000);
        evMultiplier_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object modelCode_ = "";
      /**
       * <code>optional string modelCode = 17;</code>
       * @return Whether the modelCode field is set.
       */
      public boolean hasModelCode() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <code>optional string modelCode = 17;</code>
       * @return The modelCode.
       */
      public java.lang.String getModelCode() {
        java.lang.Object ref = modelCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          modelCode_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string modelCode = 17;</code>
       * @return The bytes for modelCode.
       */
      public com.google.protobuf.ByteString
          getModelCodeBytes() {
        java.lang.Object ref = modelCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          modelCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string modelCode = 17;</code>
       * @param value The modelCode to set.
       * @return This builder for chaining.
       */
      public Builder setModelCode(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        modelCode_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string modelCode = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearModelCode() {
        modelCode_ = getDefaultInstance().getModelCode();
        bitField0_ = (bitField0_ & ~0x00010000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string modelCode = 17;</code>
       * @param value The bytes for modelCode to set.
       * @return This builder for chaining.
       */
      public Builder setModelCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        modelCode_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }

      private int lastLiquidity_ ;
      /**
       * <code>optional int32 lastLiquidity = 18;</code>
       * @return Whether the lastLiquidity field is set.
       */
      @java.lang.Override
      public boolean hasLastLiquidity() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <code>optional int32 lastLiquidity = 18;</code>
       * @return The lastLiquidity.
       */
      @java.lang.Override
      public int getLastLiquidity() {
        return lastLiquidity_;
      }
      /**
       * <code>optional int32 lastLiquidity = 18;</code>
       * @param value The lastLiquidity to set.
       * @return This builder for chaining.
       */
      public Builder setLastLiquidity(int value) {

        lastLiquidity_ = value;
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 lastLiquidity = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearLastLiquidity() {
        bitField0_ = (bitField0_ & ~0x00020000);
        lastLiquidity_ = 0;
        onChanged();
        return this;
      }

      private boolean isPriceRevisionPending_ ;
      /**
       * <code>optional bool isPriceRevisionPending = 19;</code>
       * @return Whether the isPriceRevisionPending field is set.
       */
      @java.lang.Override
      public boolean hasIsPriceRevisionPending() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <code>optional bool isPriceRevisionPending = 19;</code>
       * @return The isPriceRevisionPending.
       */
      @java.lang.Override
      public boolean getIsPriceRevisionPending() {
        return isPriceRevisionPending_;
      }
      /**
       * <code>optional bool isPriceRevisionPending = 19;</code>
       * @param value The isPriceRevisionPending to set.
       * @return This builder for chaining.
       */
      public Builder setIsPriceRevisionPending(boolean value) {

        isPriceRevisionPending_ = value;
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool isPriceRevisionPending = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsPriceRevisionPending() {
        bitField0_ = (bitField0_ & ~0x00040000);
        isPriceRevisionPending_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object submitter_ = "";
      /**
       * <code>optional string submitter = 20;</code>
       * @return Whether the submitter field is set.
       */
      public boolean hasSubmitter() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>optional string submitter = 20;</code>
       * @return The submitter.
       */
      public java.lang.String getSubmitter() {
        java.lang.Object ref = submitter_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          submitter_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string submitter = 20;</code>
       * @return The bytes for submitter.
       */
      public com.google.protobuf.ByteString
          getSubmitterBytes() {
        java.lang.Object ref = submitter_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          submitter_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string submitter = 20;</code>
       * @param value The submitter to set.
       * @return This builder for chaining.
       */
      public Builder setSubmitter(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        submitter_ = value;
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string submitter = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubmitter() {
        submitter_ = getDefaultInstance().getSubmitter();
        bitField0_ = (bitField0_ & ~0x00080000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string submitter = 20;</code>
       * @param value The bytes for submitter to set.
       * @return This builder for chaining.
       */
      public Builder setSubmitterBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        submitter_ = value;
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }

      private int optExerciseOrLapseType_ ;
      /**
       * <code>optional int32 optExerciseOrLapseType = 21;</code>
       * @return Whether the optExerciseOrLapseType field is set.
       */
      @java.lang.Override
      public boolean hasOptExerciseOrLapseType() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional int32 optExerciseOrLapseType = 21;</code>
       * @return The optExerciseOrLapseType.
       */
      @java.lang.Override
      public int getOptExerciseOrLapseType() {
        return optExerciseOrLapseType_;
      }
      /**
       * <code>optional int32 optExerciseOrLapseType = 21;</code>
       * @param value The optExerciseOrLapseType to set.
       * @return This builder for chaining.
       */
      public Builder setOptExerciseOrLapseType(int value) {

        optExerciseOrLapseType_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 optExerciseOrLapseType = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearOptExerciseOrLapseType() {
        bitField0_ = (bitField0_ & ~0x00100000);
        optExerciseOrLapseType_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:protobuf.Execution)
    }

    // @@protoc_insertion_point(class_scope:protobuf.Execution)
    private static final com.ib.client.protobuf.ExecutionProto.Execution DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.ib.client.protobuf.ExecutionProto.Execution();
    }

    public static com.ib.client.protobuf.ExecutionProto.Execution getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Execution>
        PARSER = new com.google.protobuf.AbstractParser<Execution>() {
      @java.lang.Override
      public Execution parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public com.ib.client.protobuf.ExecutionProto.Execution getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_protobuf_Execution_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_protobuf_Execution_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\017Execution.proto\022\010protobuf\"\257\006\n\tExecutio" +
      "n\022\024\n\007orderId\030\001 \001(\005H\000\210\001\001\022\023\n\006execId\030\002 \001(\tH" +
      "\001\210\001\001\022\021\n\004time\030\003 \001(\tH\002\210\001\001\022\027\n\nacctNumber\030\004 " +
      "\001(\tH\003\210\001\001\022\025\n\010exchange\030\005 \001(\tH\004\210\001\001\022\021\n\004side\030" +
      "\006 \001(\tH\005\210\001\001\022\023\n\006shares\030\007 \001(\tH\006\210\001\001\022\022\n\005price" +
      "\030\010 \001(\001H\007\210\001\001\022\023\n\006permId\030\t \001(\003H\010\210\001\001\022\025\n\010clie" +
      "ntId\030\n \001(\005H\t\210\001\001\022\032\n\risLiquidation\030\013 \001(\010H\n" +
      "\210\001\001\022\023\n\006cumQty\030\014 \001(\tH\013\210\001\001\022\025\n\010avgPrice\030\r \001" +
      "(\001H\014\210\001\001\022\025\n\010orderRef\030\016 \001(\tH\r\210\001\001\022\023\n\006evRule" +
      "\030\017 \001(\tH\016\210\001\001\022\031\n\014evMultiplier\030\020 \001(\001H\017\210\001\001\022\026" +
      "\n\tmodelCode\030\021 \001(\tH\020\210\001\001\022\032\n\rlastLiquidity\030" +
      "\022 \001(\005H\021\210\001\001\022#\n\026isPriceRevisionPending\030\023 \001" +
      "(\010H\022\210\001\001\022\026\n\tsubmitter\030\024 \001(\tH\023\210\001\001\022#\n\026optEx" +
      "erciseOrLapseType\030\025 \001(\005H\024\210\001\001B\n\n\010_orderId" +
      "B\t\n\007_execIdB\007\n\005_timeB\r\n\013_acctNumberB\013\n\t_" +
      "exchangeB\007\n\005_sideB\t\n\007_sharesB\010\n\006_priceB\t" +
      "\n\007_permIdB\013\n\t_clientIdB\020\n\016_isLiquidation" +
      "B\t\n\007_cumQtyB\013\n\t_avgPriceB\013\n\t_orderRefB\t\n" +
      "\007_evRuleB\017\n\r_evMultiplierB\014\n\n_modelCodeB" +
      "\020\n\016_lastLiquidityB\031\n\027_isPriceRevisionPen" +
      "dingB\014\n\n_submitterB\031\n\027_optExerciseOrLaps" +
      "eTypeB9\n\026com.ib.client.protobufB\016Executi" +
      "onProto\252\002\016IBApi.protobufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_protobuf_Execution_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_protobuf_Execution_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_protobuf_Execution_descriptor,
        new java.lang.String[] { "OrderId", "ExecId", "Time", "AcctNumber", "Exchange", "Side", "Shares", "Price", "PermId", "ClientId", "IsLiquidation", "CumQty", "AvgPrice", "OrderRef", "EvRule", "EvMultiplier", "ModelCode", "LastLiquidity", "IsPriceRevisionPending", "Submitter", "OptExerciseOrLapseType", });
    descriptor.resolveAllFeaturesImmutable();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
