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

package com.ib.client.protobuf;

public final class OrderProto {
  private OrderProto() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 29,
      /* patch= */ 3,
      /* suffix= */ "",
      OrderProto.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 OrderOrBuilder extends
      // @@protoc_insertion_point(interface_extends:protobuf.Order)
      com.google.protobuf.MessageOrBuilder {

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

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

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

    /**
     * <code>optional int32 parentId = 4;</code>
     * @return Whether the parentId field is set.
     */
    boolean hasParentId();
    /**
     * <code>optional int32 parentId = 4;</code>
     * @return The parentId.
     */
    int getParentId();

    /**
     * <pre>
     * primary attributes
     * </pre>
     *
     * <code>optional string action = 5;</code>
     * @return Whether the action field is set.
     */
    boolean hasAction();
    /**
     * <pre>
     * primary attributes
     * </pre>
     *
     * <code>optional string action = 5;</code>
     * @return The action.
     */
    java.lang.String getAction();
    /**
     * <pre>
     * primary attributes
     * </pre>
     *
     * <code>optional string action = 5;</code>
     * @return The bytes for action.
     */
    com.google.protobuf.ByteString
        getActionBytes();

    /**
     * <code>optional string totalQuantity = 6;</code>
     * @return Whether the totalQuantity field is set.
     */
    boolean hasTotalQuantity();
    /**
     * <code>optional string totalQuantity = 6;</code>
     * @return The totalQuantity.
     */
    java.lang.String getTotalQuantity();
    /**
     * <code>optional string totalQuantity = 6;</code>
     * @return The bytes for totalQuantity.
     */
    com.google.protobuf.ByteString
        getTotalQuantityBytes();

    /**
     * <code>optional int32 displaySize = 7;</code>
     * @return Whether the displaySize field is set.
     */
    boolean hasDisplaySize();
    /**
     * <code>optional int32 displaySize = 7;</code>
     * @return The displaySize.
     */
    int getDisplaySize();

    /**
     * <code>optional string orderType = 8;</code>
     * @return Whether the orderType field is set.
     */
    boolean hasOrderType();
    /**
     * <code>optional string orderType = 8;</code>
     * @return The orderType.
     */
    java.lang.String getOrderType();
    /**
     * <code>optional string orderType = 8;</code>
     * @return The bytes for orderType.
     */
    com.google.protobuf.ByteString
        getOrderTypeBytes();

    /**
     * <code>optional double lmtPrice = 9;</code>
     * @return Whether the lmtPrice field is set.
     */
    boolean hasLmtPrice();
    /**
     * <code>optional double lmtPrice = 9;</code>
     * @return The lmtPrice.
     */
    double getLmtPrice();

    /**
     * <code>optional double auxPrice = 10;</code>
     * @return Whether the auxPrice field is set.
     */
    boolean hasAuxPrice();
    /**
     * <code>optional double auxPrice = 10;</code>
     * @return The auxPrice.
     */
    double getAuxPrice();

    /**
     * <code>optional string tif = 11;</code>
     * @return Whether the tif field is set.
     */
    boolean hasTif();
    /**
     * <code>optional string tif = 11;</code>
     * @return The tif.
     */
    java.lang.String getTif();
    /**
     * <code>optional string tif = 11;</code>
     * @return The bytes for tif.
     */
    com.google.protobuf.ByteString
        getTifBytes();

    /**
     * <pre>
     * clearing info
     * </pre>
     *
     * <code>optional string account = 12;</code>
     * @return Whether the account field is set.
     */
    boolean hasAccount();
    /**
     * <pre>
     * clearing info
     * </pre>
     *
     * <code>optional string account = 12;</code>
     * @return The account.
     */
    java.lang.String getAccount();
    /**
     * <pre>
     * clearing info
     * </pre>
     *
     * <code>optional string account = 12;</code>
     * @return The bytes for account.
     */
    com.google.protobuf.ByteString
        getAccountBytes();

    /**
     * <code>optional string settlingFirm = 13;</code>
     * @return Whether the settlingFirm field is set.
     */
    boolean hasSettlingFirm();
    /**
     * <code>optional string settlingFirm = 13;</code>
     * @return The settlingFirm.
     */
    java.lang.String getSettlingFirm();
    /**
     * <code>optional string settlingFirm = 13;</code>
     * @return The bytes for settlingFirm.
     */
    com.google.protobuf.ByteString
        getSettlingFirmBytes();

    /**
     * <code>optional string clearingAccount = 14;</code>
     * @return Whether the clearingAccount field is set.
     */
    boolean hasClearingAccount();
    /**
     * <code>optional string clearingAccount = 14;</code>
     * @return The clearingAccount.
     */
    java.lang.String getClearingAccount();
    /**
     * <code>optional string clearingAccount = 14;</code>
     * @return The bytes for clearingAccount.
     */
    com.google.protobuf.ByteString
        getClearingAccountBytes();

    /**
     * <code>optional string clearingIntent = 15;</code>
     * @return Whether the clearingIntent field is set.
     */
    boolean hasClearingIntent();
    /**
     * <code>optional string clearingIntent = 15;</code>
     * @return The clearingIntent.
     */
    java.lang.String getClearingIntent();
    /**
     * <code>optional string clearingIntent = 15;</code>
     * @return The bytes for clearingIntent.
     */
    com.google.protobuf.ByteString
        getClearingIntentBytes();

    /**
     * <pre>
     * secondary attributes
     * </pre>
     *
     * <code>optional bool allOrNone = 16;</code>
     * @return Whether the allOrNone field is set.
     */
    boolean hasAllOrNone();
    /**
     * <pre>
     * secondary attributes
     * </pre>
     *
     * <code>optional bool allOrNone = 16;</code>
     * @return The allOrNone.
     */
    boolean getAllOrNone();

    /**
     * <code>optional bool blockOrder = 17;</code>
     * @return Whether the blockOrder field is set.
     */
    boolean hasBlockOrder();
    /**
     * <code>optional bool blockOrder = 17;</code>
     * @return The blockOrder.
     */
    boolean getBlockOrder();

    /**
     * <code>optional bool hidden = 18;</code>
     * @return Whether the hidden field is set.
     */
    boolean hasHidden();
    /**
     * <code>optional bool hidden = 18;</code>
     * @return The hidden.
     */
    boolean getHidden();

    /**
     * <code>optional bool outsideRth = 19;</code>
     * @return Whether the outsideRth field is set.
     */
    boolean hasOutsideRth();
    /**
     * <code>optional bool outsideRth = 19;</code>
     * @return The outsideRth.
     */
    boolean getOutsideRth();

    /**
     * <code>optional bool sweepToFill = 20;</code>
     * @return Whether the sweepToFill field is set.
     */
    boolean hasSweepToFill();
    /**
     * <code>optional bool sweepToFill = 20;</code>
     * @return The sweepToFill.
     */
    boolean getSweepToFill();

    /**
     * <code>optional double percentOffset = 21;</code>
     * @return Whether the percentOffset field is set.
     */
    boolean hasPercentOffset();
    /**
     * <code>optional double percentOffset = 21;</code>
     * @return The percentOffset.
     */
    double getPercentOffset();

    /**
     * <code>optional double trailingPercent = 22;</code>
     * @return Whether the trailingPercent field is set.
     */
    boolean hasTrailingPercent();
    /**
     * <code>optional double trailingPercent = 22;</code>
     * @return The trailingPercent.
     */
    double getTrailingPercent();

    /**
     * <code>optional double trailStopPrice = 23;</code>
     * @return Whether the trailStopPrice field is set.
     */
    boolean hasTrailStopPrice();
    /**
     * <code>optional double trailStopPrice = 23;</code>
     * @return The trailStopPrice.
     */
    double getTrailStopPrice();

    /**
     * <code>optional int32 minQty = 24;</code>
     * @return Whether the minQty field is set.
     */
    boolean hasMinQty();
    /**
     * <code>optional int32 minQty = 24;</code>
     * @return The minQty.
     */
    int getMinQty();

    /**
     * <code>optional string goodAfterTime = 25;</code>
     * @return Whether the goodAfterTime field is set.
     */
    boolean hasGoodAfterTime();
    /**
     * <code>optional string goodAfterTime = 25;</code>
     * @return The goodAfterTime.
     */
    java.lang.String getGoodAfterTime();
    /**
     * <code>optional string goodAfterTime = 25;</code>
     * @return The bytes for goodAfterTime.
     */
    com.google.protobuf.ByteString
        getGoodAfterTimeBytes();

    /**
     * <code>optional string goodTillDate = 26;</code>
     * @return Whether the goodTillDate field is set.
     */
    boolean hasGoodTillDate();
    /**
     * <code>optional string goodTillDate = 26;</code>
     * @return The goodTillDate.
     */
    java.lang.String getGoodTillDate();
    /**
     * <code>optional string goodTillDate = 26;</code>
     * @return The bytes for goodTillDate.
     */
    com.google.protobuf.ByteString
        getGoodTillDateBytes();

    /**
     * <code>optional string ocaGroup = 27;</code>
     * @return Whether the ocaGroup field is set.
     */
    boolean hasOcaGroup();
    /**
     * <code>optional string ocaGroup = 27;</code>
     * @return The ocaGroup.
     */
    java.lang.String getOcaGroup();
    /**
     * <code>optional string ocaGroup = 27;</code>
     * @return The bytes for ocaGroup.
     */
    com.google.protobuf.ByteString
        getOcaGroupBytes();

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

    /**
     * <code>optional string rule80A = 29;</code>
     * @return Whether the rule80A field is set.
     */
    boolean hasRule80A();
    /**
     * <code>optional string rule80A = 29;</code>
     * @return The rule80A.
     */
    java.lang.String getRule80A();
    /**
     * <code>optional string rule80A = 29;</code>
     * @return The bytes for rule80A.
     */
    com.google.protobuf.ByteString
        getRule80ABytes();

    /**
     * <code>optional int32 ocaType = 30;</code>
     * @return Whether the ocaType field is set.
     */
    boolean hasOcaType();
    /**
     * <code>optional int32 ocaType = 30;</code>
     * @return The ocaType.
     */
    int getOcaType();

    /**
     * <code>optional int32 triggerMethod = 31;</code>
     * @return Whether the triggerMethod field is set.
     */
    boolean hasTriggerMethod();
    /**
     * <code>optional int32 triggerMethod = 31;</code>
     * @return The triggerMethod.
     */
    int getTriggerMethod();

    /**
     * <pre>
     * extended order fields
     * </pre>
     *
     * <code>optional string activeStartTime = 32;</code>
     * @return Whether the activeStartTime field is set.
     */
    boolean hasActiveStartTime();
    /**
     * <pre>
     * extended order fields
     * </pre>
     *
     * <code>optional string activeStartTime = 32;</code>
     * @return The activeStartTime.
     */
    java.lang.String getActiveStartTime();
    /**
     * <pre>
     * extended order fields
     * </pre>
     *
     * <code>optional string activeStartTime = 32;</code>
     * @return The bytes for activeStartTime.
     */
    com.google.protobuf.ByteString
        getActiveStartTimeBytes();

    /**
     * <code>optional string activeStopTime = 33;</code>
     * @return Whether the activeStopTime field is set.
     */
    boolean hasActiveStopTime();
    /**
     * <code>optional string activeStopTime = 33;</code>
     * @return The activeStopTime.
     */
    java.lang.String getActiveStopTime();
    /**
     * <code>optional string activeStopTime = 33;</code>
     * @return The bytes for activeStopTime.
     */
    com.google.protobuf.ByteString
        getActiveStopTimeBytes();

    /**
     * <pre>
     * advisor allocation orders
     * </pre>
     *
     * <code>optional string faGroup = 34;</code>
     * @return Whether the faGroup field is set.
     */
    boolean hasFaGroup();
    /**
     * <pre>
     * advisor allocation orders
     * </pre>
     *
     * <code>optional string faGroup = 34;</code>
     * @return The faGroup.
     */
    java.lang.String getFaGroup();
    /**
     * <pre>
     * advisor allocation orders
     * </pre>
     *
     * <code>optional string faGroup = 34;</code>
     * @return The bytes for faGroup.
     */
    com.google.protobuf.ByteString
        getFaGroupBytes();

    /**
     * <code>optional string faMethod = 35;</code>
     * @return Whether the faMethod field is set.
     */
    boolean hasFaMethod();
    /**
     * <code>optional string faMethod = 35;</code>
     * @return The faMethod.
     */
    java.lang.String getFaMethod();
    /**
     * <code>optional string faMethod = 35;</code>
     * @return The bytes for faMethod.
     */
    com.google.protobuf.ByteString
        getFaMethodBytes();

    /**
     * <code>optional string faPercentage = 36;</code>
     * @return Whether the faPercentage field is set.
     */
    boolean hasFaPercentage();
    /**
     * <code>optional string faPercentage = 36;</code>
     * @return The faPercentage.
     */
    java.lang.String getFaPercentage();
    /**
     * <code>optional string faPercentage = 36;</code>
     * @return The bytes for faPercentage.
     */
    com.google.protobuf.ByteString
        getFaPercentageBytes();

    /**
     * <pre>
     * volatility orders
     * </pre>
     *
     * <code>optional double volatility = 37;</code>
     * @return Whether the volatility field is set.
     */
    boolean hasVolatility();
    /**
     * <pre>
     * volatility orders
     * </pre>
     *
     * <code>optional double volatility = 37;</code>
     * @return The volatility.
     */
    double getVolatility();

    /**
     * <code>optional int32 volatilityType = 38;</code>
     * @return Whether the volatilityType field is set.
     */
    boolean hasVolatilityType();
    /**
     * <code>optional int32 volatilityType = 38;</code>
     * @return The volatilityType.
     */
    int getVolatilityType();

    /**
     * <code>optional bool continuousUpdate = 39;</code>
     * @return Whether the continuousUpdate field is set.
     */
    boolean hasContinuousUpdate();
    /**
     * <code>optional bool continuousUpdate = 39;</code>
     * @return The continuousUpdate.
     */
    boolean getContinuousUpdate();

    /**
     * <code>optional int32 referencePriceType = 40;</code>
     * @return Whether the referencePriceType field is set.
     */
    boolean hasReferencePriceType();
    /**
     * <code>optional int32 referencePriceType = 40;</code>
     * @return The referencePriceType.
     */
    int getReferencePriceType();

    /**
     * <code>optional string deltaNeutralOrderType = 41;</code>
     * @return Whether the deltaNeutralOrderType field is set.
     */
    boolean hasDeltaNeutralOrderType();
    /**
     * <code>optional string deltaNeutralOrderType = 41;</code>
     * @return The deltaNeutralOrderType.
     */
    java.lang.String getDeltaNeutralOrderType();
    /**
     * <code>optional string deltaNeutralOrderType = 41;</code>
     * @return The bytes for deltaNeutralOrderType.
     */
    com.google.protobuf.ByteString
        getDeltaNeutralOrderTypeBytes();

    /**
     * <code>optional double deltaNeutralAuxPrice = 42;</code>
     * @return Whether the deltaNeutralAuxPrice field is set.
     */
    boolean hasDeltaNeutralAuxPrice();
    /**
     * <code>optional double deltaNeutralAuxPrice = 42;</code>
     * @return The deltaNeutralAuxPrice.
     */
    double getDeltaNeutralAuxPrice();

    /**
     * <code>optional int32 deltaNeutralConId = 43;</code>
     * @return Whether the deltaNeutralConId field is set.
     */
    boolean hasDeltaNeutralConId();
    /**
     * <code>optional int32 deltaNeutralConId = 43;</code>
     * @return The deltaNeutralConId.
     */
    int getDeltaNeutralConId();

    /**
     * <code>optional string deltaNeutralOpenClose = 44;</code>
     * @return Whether the deltaNeutralOpenClose field is set.
     */
    boolean hasDeltaNeutralOpenClose();
    /**
     * <code>optional string deltaNeutralOpenClose = 44;</code>
     * @return The deltaNeutralOpenClose.
     */
    java.lang.String getDeltaNeutralOpenClose();
    /**
     * <code>optional string deltaNeutralOpenClose = 44;</code>
     * @return The bytes for deltaNeutralOpenClose.
     */
    com.google.protobuf.ByteString
        getDeltaNeutralOpenCloseBytes();

    /**
     * <code>optional bool deltaNeutralShortSale = 45;</code>
     * @return Whether the deltaNeutralShortSale field is set.
     */
    boolean hasDeltaNeutralShortSale();
    /**
     * <code>optional bool deltaNeutralShortSale = 45;</code>
     * @return The deltaNeutralShortSale.
     */
    boolean getDeltaNeutralShortSale();

    /**
     * <code>optional int32 deltaNeutralShortSaleSlot = 46;</code>
     * @return Whether the deltaNeutralShortSaleSlot field is set.
     */
    boolean hasDeltaNeutralShortSaleSlot();
    /**
     * <code>optional int32 deltaNeutralShortSaleSlot = 46;</code>
     * @return The deltaNeutralShortSaleSlot.
     */
    int getDeltaNeutralShortSaleSlot();

    /**
     * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
     * @return Whether the deltaNeutralDesignatedLocation field is set.
     */
    boolean hasDeltaNeutralDesignatedLocation();
    /**
     * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
     * @return The deltaNeutralDesignatedLocation.
     */
    java.lang.String getDeltaNeutralDesignatedLocation();
    /**
     * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
     * @return The bytes for deltaNeutralDesignatedLocation.
     */
    com.google.protobuf.ByteString
        getDeltaNeutralDesignatedLocationBytes();

    /**
     * <pre>
     * scale orders
     * </pre>
     *
     * <code>optional int32 scaleInitLevelSize = 48;</code>
     * @return Whether the scaleInitLevelSize field is set.
     */
    boolean hasScaleInitLevelSize();
    /**
     * <pre>
     * scale orders
     * </pre>
     *
     * <code>optional int32 scaleInitLevelSize = 48;</code>
     * @return The scaleInitLevelSize.
     */
    int getScaleInitLevelSize();

    /**
     * <code>optional int32 scaleSubsLevelSize = 49;</code>
     * @return Whether the scaleSubsLevelSize field is set.
     */
    boolean hasScaleSubsLevelSize();
    /**
     * <code>optional int32 scaleSubsLevelSize = 49;</code>
     * @return The scaleSubsLevelSize.
     */
    int getScaleSubsLevelSize();

    /**
     * <code>optional double scalePriceIncrement = 50;</code>
     * @return Whether the scalePriceIncrement field is set.
     */
    boolean hasScalePriceIncrement();
    /**
     * <code>optional double scalePriceIncrement = 50;</code>
     * @return The scalePriceIncrement.
     */
    double getScalePriceIncrement();

    /**
     * <code>optional double scalePriceAdjustValue = 51;</code>
     * @return Whether the scalePriceAdjustValue field is set.
     */
    boolean hasScalePriceAdjustValue();
    /**
     * <code>optional double scalePriceAdjustValue = 51;</code>
     * @return The scalePriceAdjustValue.
     */
    double getScalePriceAdjustValue();

    /**
     * <code>optional int32 scalePriceAdjustInterval = 52;</code>
     * @return Whether the scalePriceAdjustInterval field is set.
     */
    boolean hasScalePriceAdjustInterval();
    /**
     * <code>optional int32 scalePriceAdjustInterval = 52;</code>
     * @return The scalePriceAdjustInterval.
     */
    int getScalePriceAdjustInterval();

    /**
     * <code>optional double scaleProfitOffset = 53;</code>
     * @return Whether the scaleProfitOffset field is set.
     */
    boolean hasScaleProfitOffset();
    /**
     * <code>optional double scaleProfitOffset = 53;</code>
     * @return The scaleProfitOffset.
     */
    double getScaleProfitOffset();

    /**
     * <code>optional bool scaleAutoReset = 54;</code>
     * @return Whether the scaleAutoReset field is set.
     */
    boolean hasScaleAutoReset();
    /**
     * <code>optional bool scaleAutoReset = 54;</code>
     * @return The scaleAutoReset.
     */
    boolean getScaleAutoReset();

    /**
     * <code>optional int32 scaleInitPosition = 55;</code>
     * @return Whether the scaleInitPosition field is set.
     */
    boolean hasScaleInitPosition();
    /**
     * <code>optional int32 scaleInitPosition = 55;</code>
     * @return The scaleInitPosition.
     */
    int getScaleInitPosition();

    /**
     * <code>optional int32 scaleInitFillQty = 56;</code>
     * @return Whether the scaleInitFillQty field is set.
     */
    boolean hasScaleInitFillQty();
    /**
     * <code>optional int32 scaleInitFillQty = 56;</code>
     * @return The scaleInitFillQty.
     */
    int getScaleInitFillQty();

    /**
     * <code>optional bool scaleRandomPercent = 57;</code>
     * @return Whether the scaleRandomPercent field is set.
     */
    boolean hasScaleRandomPercent();
    /**
     * <code>optional bool scaleRandomPercent = 57;</code>
     * @return The scaleRandomPercent.
     */
    boolean getScaleRandomPercent();

    /**
     * <code>optional string scaleTable = 58;</code>
     * @return Whether the scaleTable field is set.
     */
    boolean hasScaleTable();
    /**
     * <code>optional string scaleTable = 58;</code>
     * @return The scaleTable.
     */
    java.lang.String getScaleTable();
    /**
     * <code>optional string scaleTable = 58;</code>
     * @return The bytes for scaleTable.
     */
    com.google.protobuf.ByteString
        getScaleTableBytes();

    /**
     * <pre>
     * hedge orders
     * </pre>
     *
     * <code>optional string hedgeType = 59;</code>
     * @return Whether the hedgeType field is set.
     */
    boolean hasHedgeType();
    /**
     * <pre>
     * hedge orders
     * </pre>
     *
     * <code>optional string hedgeType = 59;</code>
     * @return The hedgeType.
     */
    java.lang.String getHedgeType();
    /**
     * <pre>
     * hedge orders
     * </pre>
     *
     * <code>optional string hedgeType = 59;</code>
     * @return The bytes for hedgeType.
     */
    com.google.protobuf.ByteString
        getHedgeTypeBytes();

    /**
     * <code>optional string hedgeParam = 60;</code>
     * @return Whether the hedgeParam field is set.
     */
    boolean hasHedgeParam();
    /**
     * <code>optional string hedgeParam = 60;</code>
     * @return The hedgeParam.
     */
    java.lang.String getHedgeParam();
    /**
     * <code>optional string hedgeParam = 60;</code>
     * @return The bytes for hedgeParam.
     */
    com.google.protobuf.ByteString
        getHedgeParamBytes();

    /**
     * <pre>
     * algo orders
     * </pre>
     *
     * <code>optional string algoStrategy = 61;</code>
     * @return Whether the algoStrategy field is set.
     */
    boolean hasAlgoStrategy();
    /**
     * <pre>
     * algo orders
     * </pre>
     *
     * <code>optional string algoStrategy = 61;</code>
     * @return The algoStrategy.
     */
    java.lang.String getAlgoStrategy();
    /**
     * <pre>
     * algo orders
     * </pre>
     *
     * <code>optional string algoStrategy = 61;</code>
     * @return The bytes for algoStrategy.
     */
    com.google.protobuf.ByteString
        getAlgoStrategyBytes();

    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    int getAlgoParamsCount();
    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    boolean containsAlgoParams(
        java.lang.String key);
    /**
     * Use {@link #getAlgoParamsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getAlgoParams();
    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getAlgoParamsMap();
    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    /* nullable */
java.lang.String getAlgoParamsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    java.lang.String getAlgoParamsOrThrow(
        java.lang.String key);

    /**
     * <code>optional string algoId = 63;</code>
     * @return Whether the algoId field is set.
     */
    boolean hasAlgoId();
    /**
     * <code>optional string algoId = 63;</code>
     * @return The algoId.
     */
    java.lang.String getAlgoId();
    /**
     * <code>optional string algoId = 63;</code>
     * @return The bytes for algoId.
     */
    com.google.protobuf.ByteString
        getAlgoIdBytes();

    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    int getSmartComboRoutingParamsCount();
    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    boolean containsSmartComboRoutingParams(
        java.lang.String key);
    /**
     * Use {@link #getSmartComboRoutingParamsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getSmartComboRoutingParams();
    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getSmartComboRoutingParamsMap();
    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    /* nullable */
java.lang.String getSmartComboRoutingParamsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    java.lang.String getSmartComboRoutingParamsOrThrow(
        java.lang.String key);

    /**
     * <pre>
     * processing control
     * </pre>
     *
     * <code>optional bool whatIf = 65;</code>
     * @return Whether the whatIf field is set.
     */
    boolean hasWhatIf();
    /**
     * <pre>
     * processing control
     * </pre>
     *
     * <code>optional bool whatIf = 65;</code>
     * @return The whatIf.
     */
    boolean getWhatIf();

    /**
     * <code>optional bool transmit = 66;</code>
     * @return Whether the transmit field is set.
     */
    boolean hasTransmit();
    /**
     * <code>optional bool transmit = 66;</code>
     * @return The transmit.
     */
    boolean getTransmit();

    /**
     * <code>optional bool overridePercentageConstraints = 67;</code>
     * @return Whether the overridePercentageConstraints field is set.
     */
    boolean hasOverridePercentageConstraints();
    /**
     * <code>optional bool overridePercentageConstraints = 67;</code>
     * @return The overridePercentageConstraints.
     */
    boolean getOverridePercentageConstraints();

    /**
     * <pre>
     * Institutional orders only
     * </pre>
     *
     * <code>optional string openClose = 68;</code>
     * @return Whether the openClose field is set.
     */
    boolean hasOpenClose();
    /**
     * <pre>
     * Institutional orders only
     * </pre>
     *
     * <code>optional string openClose = 68;</code>
     * @return The openClose.
     */
    java.lang.String getOpenClose();
    /**
     * <pre>
     * Institutional orders only
     * </pre>
     *
     * <code>optional string openClose = 68;</code>
     * @return The bytes for openClose.
     */
    com.google.protobuf.ByteString
        getOpenCloseBytes();

    /**
     * <code>optional int32 origin = 69;</code>
     * @return Whether the origin field is set.
     */
    boolean hasOrigin();
    /**
     * <code>optional int32 origin = 69;</code>
     * @return The origin.
     */
    int getOrigin();

    /**
     * <code>optional int32 shortSaleSlot = 70;</code>
     * @return Whether the shortSaleSlot field is set.
     */
    boolean hasShortSaleSlot();
    /**
     * <code>optional int32 shortSaleSlot = 70;</code>
     * @return The shortSaleSlot.
     */
    int getShortSaleSlot();

    /**
     * <code>optional string designatedLocation = 71;</code>
     * @return Whether the designatedLocation field is set.
     */
    boolean hasDesignatedLocation();
    /**
     * <code>optional string designatedLocation = 71;</code>
     * @return The designatedLocation.
     */
    java.lang.String getDesignatedLocation();
    /**
     * <code>optional string designatedLocation = 71;</code>
     * @return The bytes for designatedLocation.
     */
    com.google.protobuf.ByteString
        getDesignatedLocationBytes();

    /**
     * <code>optional int32 exemptCode = 72;</code>
     * @return Whether the exemptCode field is set.
     */
    boolean hasExemptCode();
    /**
     * <code>optional int32 exemptCode = 72;</code>
     * @return The exemptCode.
     */
    int getExemptCode();

    /**
     * <code>optional string deltaNeutralSettlingFirm = 73;</code>
     * @return Whether the deltaNeutralSettlingFirm field is set.
     */
    boolean hasDeltaNeutralSettlingFirm();
    /**
     * <code>optional string deltaNeutralSettlingFirm = 73;</code>
     * @return The deltaNeutralSettlingFirm.
     */
    java.lang.String getDeltaNeutralSettlingFirm();
    /**
     * <code>optional string deltaNeutralSettlingFirm = 73;</code>
     * @return The bytes for deltaNeutralSettlingFirm.
     */
    com.google.protobuf.ByteString
        getDeltaNeutralSettlingFirmBytes();

    /**
     * <code>optional string deltaNeutralClearingAccount = 74;</code>
     * @return Whether the deltaNeutralClearingAccount field is set.
     */
    boolean hasDeltaNeutralClearingAccount();
    /**
     * <code>optional string deltaNeutralClearingAccount = 74;</code>
     * @return The deltaNeutralClearingAccount.
     */
    java.lang.String getDeltaNeutralClearingAccount();
    /**
     * <code>optional string deltaNeutralClearingAccount = 74;</code>
     * @return The bytes for deltaNeutralClearingAccount.
     */
    com.google.protobuf.ByteString
        getDeltaNeutralClearingAccountBytes();

    /**
     * <code>optional string deltaNeutralClearingIntent = 75;</code>
     * @return Whether the deltaNeutralClearingIntent field is set.
     */
    boolean hasDeltaNeutralClearingIntent();
    /**
     * <code>optional string deltaNeutralClearingIntent = 75;</code>
     * @return The deltaNeutralClearingIntent.
     */
    java.lang.String getDeltaNeutralClearingIntent();
    /**
     * <code>optional string deltaNeutralClearingIntent = 75;</code>
     * @return The bytes for deltaNeutralClearingIntent.
     */
    com.google.protobuf.ByteString
        getDeltaNeutralClearingIntentBytes();

    /**
     * <pre>
     * SMART routing only
     * </pre>
     *
     * <code>optional double discretionaryAmt = 76;</code>
     * @return Whether the discretionaryAmt field is set.
     */
    boolean hasDiscretionaryAmt();
    /**
     * <pre>
     * SMART routing only
     * </pre>
     *
     * <code>optional double discretionaryAmt = 76;</code>
     * @return The discretionaryAmt.
     */
    double getDiscretionaryAmt();

    /**
     * <code>optional bool optOutSmartRouting = 77;</code>
     * @return Whether the optOutSmartRouting field is set.
     */
    boolean hasOptOutSmartRouting();
    /**
     * <code>optional bool optOutSmartRouting = 77;</code>
     * @return The optOutSmartRouting.
     */
    boolean getOptOutSmartRouting();

    /**
     * <pre>
     * BOX ORDERS ONLY
     * </pre>
     *
     * <code>optional double startingPrice = 78;</code>
     * @return Whether the startingPrice field is set.
     */
    boolean hasStartingPrice();
    /**
     * <pre>
     * BOX ORDERS ONLY
     * </pre>
     *
     * <code>optional double startingPrice = 78;</code>
     * @return The startingPrice.
     */
    double getStartingPrice();

    /**
     * <code>optional double stockRefPrice = 79;</code>
     * @return Whether the stockRefPrice field is set.
     */
    boolean hasStockRefPrice();
    /**
     * <code>optional double stockRefPrice = 79;</code>
     * @return The stockRefPrice.
     */
    double getStockRefPrice();

    /**
     * <code>optional double delta = 80;</code>
     * @return Whether the delta field is set.
     */
    boolean hasDelta();
    /**
     * <code>optional double delta = 80;</code>
     * @return The delta.
     */
    double getDelta();

    /**
     * <pre>
     * pegged to stock or VOL orders
     * </pre>
     *
     * <code>optional double stockRangeLower = 81;</code>
     * @return Whether the stockRangeLower field is set.
     */
    boolean hasStockRangeLower();
    /**
     * <pre>
     * pegged to stock or VOL orders
     * </pre>
     *
     * <code>optional double stockRangeLower = 81;</code>
     * @return The stockRangeLower.
     */
    double getStockRangeLower();

    /**
     * <code>optional double stockRangeUpper = 82;</code>
     * @return Whether the stockRangeUpper field is set.
     */
    boolean hasStockRangeUpper();
    /**
     * <code>optional double stockRangeUpper = 82;</code>
     * @return The stockRangeUpper.
     */
    double getStockRangeUpper();

    /**
     * <pre>
     * Not Held
     * </pre>
     *
     * <code>optional bool notHeld = 83;</code>
     * @return Whether the notHeld field is set.
     */
    boolean hasNotHeld();
    /**
     * <pre>
     * Not Held
     * </pre>
     *
     * <code>optional bool notHeld = 83;</code>
     * @return The notHeld.
     */
    boolean getNotHeld();

    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    int getOrderMiscOptionsCount();
    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    boolean containsOrderMiscOptions(
        java.lang.String key);
    /**
     * Use {@link #getOrderMiscOptionsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getOrderMiscOptions();
    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getOrderMiscOptionsMap();
    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    /* nullable */
java.lang.String getOrderMiscOptionsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    java.lang.String getOrderMiscOptionsOrThrow(
        java.lang.String key);

    /**
     * <pre>
     * order algo id
     * </pre>
     *
     * <code>optional bool solicited = 85;</code>
     * @return Whether the solicited field is set.
     */
    boolean hasSolicited();
    /**
     * <pre>
     * order algo id
     * </pre>
     *
     * <code>optional bool solicited = 85;</code>
     * @return The solicited.
     */
    boolean getSolicited();

    /**
     * <code>optional bool randomizeSize = 86;</code>
     * @return Whether the randomizeSize field is set.
     */
    boolean hasRandomizeSize();
    /**
     * <code>optional bool randomizeSize = 86;</code>
     * @return The randomizeSize.
     */
    boolean getRandomizeSize();

    /**
     * <code>optional bool randomizePrice = 87;</code>
     * @return Whether the randomizePrice field is set.
     */
    boolean hasRandomizePrice();
    /**
     * <code>optional bool randomizePrice = 87;</code>
     * @return The randomizePrice.
     */
    boolean getRandomizePrice();

    /**
     * <pre>
     * PEG2BENCH fields
     * </pre>
     *
     * <code>optional int32 referenceContractId = 88;</code>
     * @return Whether the referenceContractId field is set.
     */
    boolean hasReferenceContractId();
    /**
     * <pre>
     * PEG2BENCH fields
     * </pre>
     *
     * <code>optional int32 referenceContractId = 88;</code>
     * @return The referenceContractId.
     */
    int getReferenceContractId();

    /**
     * <code>optional double peggedChangeAmount = 89;</code>
     * @return Whether the peggedChangeAmount field is set.
     */
    boolean hasPeggedChangeAmount();
    /**
     * <code>optional double peggedChangeAmount = 89;</code>
     * @return The peggedChangeAmount.
     */
    double getPeggedChangeAmount();

    /**
     * <code>optional bool isPeggedChangeAmountDecrease = 90;</code>
     * @return Whether the isPeggedChangeAmountDecrease field is set.
     */
    boolean hasIsPeggedChangeAmountDecrease();
    /**
     * <code>optional bool isPeggedChangeAmountDecrease = 90;</code>
     * @return The isPeggedChangeAmountDecrease.
     */
    boolean getIsPeggedChangeAmountDecrease();

    /**
     * <code>optional double referenceChangeAmount = 91;</code>
     * @return Whether the referenceChangeAmount field is set.
     */
    boolean hasReferenceChangeAmount();
    /**
     * <code>optional double referenceChangeAmount = 91;</code>
     * @return The referenceChangeAmount.
     */
    double getReferenceChangeAmount();

    /**
     * <code>optional string referenceExchangeId = 92;</code>
     * @return Whether the referenceExchangeId field is set.
     */
    boolean hasReferenceExchangeId();
    /**
     * <code>optional string referenceExchangeId = 92;</code>
     * @return The referenceExchangeId.
     */
    java.lang.String getReferenceExchangeId();
    /**
     * <code>optional string referenceExchangeId = 92;</code>
     * @return The bytes for referenceExchangeId.
     */
    com.google.protobuf.ByteString
        getReferenceExchangeIdBytes();

    /**
     * <code>optional string adjustedOrderType = 93;</code>
     * @return Whether the adjustedOrderType field is set.
     */
    boolean hasAdjustedOrderType();
    /**
     * <code>optional string adjustedOrderType = 93;</code>
     * @return The adjustedOrderType.
     */
    java.lang.String getAdjustedOrderType();
    /**
     * <code>optional string adjustedOrderType = 93;</code>
     * @return The bytes for adjustedOrderType.
     */
    com.google.protobuf.ByteString
        getAdjustedOrderTypeBytes();

    /**
     * <code>optional double triggerPrice = 94;</code>
     * @return Whether the triggerPrice field is set.
     */
    boolean hasTriggerPrice();
    /**
     * <code>optional double triggerPrice = 94;</code>
     * @return The triggerPrice.
     */
    double getTriggerPrice();

    /**
     * <code>optional double adjustedStopPrice = 95;</code>
     * @return Whether the adjustedStopPrice field is set.
     */
    boolean hasAdjustedStopPrice();
    /**
     * <code>optional double adjustedStopPrice = 95;</code>
     * @return The adjustedStopPrice.
     */
    double getAdjustedStopPrice();

    /**
     * <code>optional double adjustedStopLimitPrice = 96;</code>
     * @return Whether the adjustedStopLimitPrice field is set.
     */
    boolean hasAdjustedStopLimitPrice();
    /**
     * <code>optional double adjustedStopLimitPrice = 96;</code>
     * @return The adjustedStopLimitPrice.
     */
    double getAdjustedStopLimitPrice();

    /**
     * <code>optional double adjustedTrailingAmount = 97;</code>
     * @return Whether the adjustedTrailingAmount field is set.
     */
    boolean hasAdjustedTrailingAmount();
    /**
     * <code>optional double adjustedTrailingAmount = 97;</code>
     * @return The adjustedTrailingAmount.
     */
    double getAdjustedTrailingAmount();

    /**
     * <code>optional int32 adjustableTrailingUnit = 98;</code>
     * @return Whether the adjustableTrailingUnit field is set.
     */
    boolean hasAdjustableTrailingUnit();
    /**
     * <code>optional int32 adjustableTrailingUnit = 98;</code>
     * @return The adjustableTrailingUnit.
     */
    int getAdjustableTrailingUnit();

    /**
     * <code>optional double lmtPriceOffset = 99;</code>
     * @return Whether the lmtPriceOffset field is set.
     */
    boolean hasLmtPriceOffset();
    /**
     * <code>optional double lmtPriceOffset = 99;</code>
     * @return The lmtPriceOffset.
     */
    double getLmtPriceOffset();

    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    java.util.List<com.ib.client.protobuf.OrderConditionProto.OrderCondition> 
        getConditionsList();
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    com.ib.client.protobuf.OrderConditionProto.OrderCondition getConditions(int index);
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    int getConditionsCount();
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    java.util.List<? extends com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder> 
        getConditionsOrBuilderList();
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder getConditionsOrBuilder(
        int index);

    /**
     * <code>optional bool conditionsCancelOrder = 101;</code>
     * @return Whether the conditionsCancelOrder field is set.
     */
    boolean hasConditionsCancelOrder();
    /**
     * <code>optional bool conditionsCancelOrder = 101;</code>
     * @return The conditionsCancelOrder.
     */
    boolean getConditionsCancelOrder();

    /**
     * <code>optional bool conditionsIgnoreRth = 102;</code>
     * @return Whether the conditionsIgnoreRth field is set.
     */
    boolean hasConditionsIgnoreRth();
    /**
     * <code>optional bool conditionsIgnoreRth = 102;</code>
     * @return The conditionsIgnoreRth.
     */
    boolean getConditionsIgnoreRth();

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

    /**
     * <code>optional string extOperator = 104;</code>
     * @return Whether the extOperator field is set.
     */
    boolean hasExtOperator();
    /**
     * <code>optional string extOperator = 104;</code>
     * @return The extOperator.
     */
    java.lang.String getExtOperator();
    /**
     * <code>optional string extOperator = 104;</code>
     * @return The bytes for extOperator.
     */
    com.google.protobuf.ByteString
        getExtOperatorBytes();

    /**
     * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
     * @return Whether the softDollarTier field is set.
     */
    boolean hasSoftDollarTier();
    /**
     * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
     * @return The softDollarTier.
     */
    com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier getSoftDollarTier();
    /**
     * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
     */
    com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTierOrBuilder getSoftDollarTierOrBuilder();

    /**
     * <pre>
     * native cash quantity
     * </pre>
     *
     * <code>optional double cashQty = 106;</code>
     * @return Whether the cashQty field is set.
     */
    boolean hasCashQty();
    /**
     * <pre>
     * native cash quantity
     * </pre>
     *
     * <code>optional double cashQty = 106;</code>
     * @return The cashQty.
     */
    double getCashQty();

    /**
     * <code>optional string mifid2DecisionMaker = 107;</code>
     * @return Whether the mifid2DecisionMaker field is set.
     */
    boolean hasMifid2DecisionMaker();
    /**
     * <code>optional string mifid2DecisionMaker = 107;</code>
     * @return The mifid2DecisionMaker.
     */
    java.lang.String getMifid2DecisionMaker();
    /**
     * <code>optional string mifid2DecisionMaker = 107;</code>
     * @return The bytes for mifid2DecisionMaker.
     */
    com.google.protobuf.ByteString
        getMifid2DecisionMakerBytes();

    /**
     * <code>optional string mifid2DecisionAlgo = 108;</code>
     * @return Whether the mifid2DecisionAlgo field is set.
     */
    boolean hasMifid2DecisionAlgo();
    /**
     * <code>optional string mifid2DecisionAlgo = 108;</code>
     * @return The mifid2DecisionAlgo.
     */
    java.lang.String getMifid2DecisionAlgo();
    /**
     * <code>optional string mifid2DecisionAlgo = 108;</code>
     * @return The bytes for mifid2DecisionAlgo.
     */
    com.google.protobuf.ByteString
        getMifid2DecisionAlgoBytes();

    /**
     * <code>optional string mifid2ExecutionTrader = 109;</code>
     * @return Whether the mifid2ExecutionTrader field is set.
     */
    boolean hasMifid2ExecutionTrader();
    /**
     * <code>optional string mifid2ExecutionTrader = 109;</code>
     * @return The mifid2ExecutionTrader.
     */
    java.lang.String getMifid2ExecutionTrader();
    /**
     * <code>optional string mifid2ExecutionTrader = 109;</code>
     * @return The bytes for mifid2ExecutionTrader.
     */
    com.google.protobuf.ByteString
        getMifid2ExecutionTraderBytes();

    /**
     * <code>optional string mifid2ExecutionAlgo = 110;</code>
     * @return Whether the mifid2ExecutionAlgo field is set.
     */
    boolean hasMifid2ExecutionAlgo();
    /**
     * <code>optional string mifid2ExecutionAlgo = 110;</code>
     * @return The mifid2ExecutionAlgo.
     */
    java.lang.String getMifid2ExecutionAlgo();
    /**
     * <code>optional string mifid2ExecutionAlgo = 110;</code>
     * @return The bytes for mifid2ExecutionAlgo.
     */
    com.google.protobuf.ByteString
        getMifid2ExecutionAlgoBytes();

    /**
     * <pre>
     * don't use auto price for hedge
     * </pre>
     *
     * <code>optional bool dontUseAutoPriceForHedge = 111;</code>
     * @return Whether the dontUseAutoPriceForHedge field is set.
     */
    boolean hasDontUseAutoPriceForHedge();
    /**
     * <pre>
     * don't use auto price for hedge
     * </pre>
     *
     * <code>optional bool dontUseAutoPriceForHedge = 111;</code>
     * @return The dontUseAutoPriceForHedge.
     */
    boolean getDontUseAutoPriceForHedge();

    /**
     * <code>optional bool isOmsContainer = 112;</code>
     * @return Whether the isOmsContainer field is set.
     */
    boolean hasIsOmsContainer();
    /**
     * <code>optional bool isOmsContainer = 112;</code>
     * @return The isOmsContainer.
     */
    boolean getIsOmsContainer();

    /**
     * <code>optional bool discretionaryUpToLimitPrice = 113;</code>
     * @return Whether the discretionaryUpToLimitPrice field is set.
     */
    boolean hasDiscretionaryUpToLimitPrice();
    /**
     * <code>optional bool discretionaryUpToLimitPrice = 113;</code>
     * @return The discretionaryUpToLimitPrice.
     */
    boolean getDiscretionaryUpToLimitPrice();

    /**
     * <code>optional string autoCancelDate = 114;</code>
     * @return Whether the autoCancelDate field is set.
     */
    boolean hasAutoCancelDate();
    /**
     * <code>optional string autoCancelDate = 114;</code>
     * @return The autoCancelDate.
     */
    java.lang.String getAutoCancelDate();
    /**
     * <code>optional string autoCancelDate = 114;</code>
     * @return The bytes for autoCancelDate.
     */
    com.google.protobuf.ByteString
        getAutoCancelDateBytes();

    /**
     * <code>optional string filledQuantity = 115;</code>
     * @return Whether the filledQuantity field is set.
     */
    boolean hasFilledQuantity();
    /**
     * <code>optional string filledQuantity = 115;</code>
     * @return The filledQuantity.
     */
    java.lang.String getFilledQuantity();
    /**
     * <code>optional string filledQuantity = 115;</code>
     * @return The bytes for filledQuantity.
     */
    com.google.protobuf.ByteString
        getFilledQuantityBytes();

    /**
     * <code>optional int32 refFuturesConId = 116;</code>
     * @return Whether the refFuturesConId field is set.
     */
    boolean hasRefFuturesConId();
    /**
     * <code>optional int32 refFuturesConId = 116;</code>
     * @return The refFuturesConId.
     */
    int getRefFuturesConId();

    /**
     * <code>optional bool autoCancelParent = 117;</code>
     * @return Whether the autoCancelParent field is set.
     */
    boolean hasAutoCancelParent();
    /**
     * <code>optional bool autoCancelParent = 117;</code>
     * @return The autoCancelParent.
     */
    boolean getAutoCancelParent();

    /**
     * <code>optional string shareholder = 118;</code>
     * @return Whether the shareholder field is set.
     */
    boolean hasShareholder();
    /**
     * <code>optional string shareholder = 118;</code>
     * @return The shareholder.
     */
    java.lang.String getShareholder();
    /**
     * <code>optional string shareholder = 118;</code>
     * @return The bytes for shareholder.
     */
    com.google.protobuf.ByteString
        getShareholderBytes();

    /**
     * <code>optional bool imbalanceOnly = 119;</code>
     * @return Whether the imbalanceOnly field is set.
     */
    boolean hasImbalanceOnly();
    /**
     * <code>optional bool imbalanceOnly = 119;</code>
     * @return The imbalanceOnly.
     */
    boolean getImbalanceOnly();

    /**
     * <code>optional bool routeMarketableToBbo = 120;</code>
     * @return Whether the routeMarketableToBbo field is set.
     */
    boolean hasRouteMarketableToBbo();
    /**
     * <code>optional bool routeMarketableToBbo = 120;</code>
     * @return The routeMarketableToBbo.
     */
    boolean getRouteMarketableToBbo();

    /**
     * <code>optional int64 parentPermId = 121;</code>
     * @return Whether the parentPermId field is set.
     */
    boolean hasParentPermId();
    /**
     * <code>optional int64 parentPermId = 121;</code>
     * @return The parentPermId.
     */
    long getParentPermId();

    /**
     * <code>optional int32 usePriceMgmtAlgo = 122;</code>
     * @return Whether the usePriceMgmtAlgo field is set.
     */
    boolean hasUsePriceMgmtAlgo();
    /**
     * <code>optional int32 usePriceMgmtAlgo = 122;</code>
     * @return The usePriceMgmtAlgo.
     */
    int getUsePriceMgmtAlgo();

    /**
     * <code>optional int32 duration = 123;</code>
     * @return Whether the duration field is set.
     */
    boolean hasDuration();
    /**
     * <code>optional int32 duration = 123;</code>
     * @return The duration.
     */
    int getDuration();

    /**
     * <code>optional int32 postToAts = 124;</code>
     * @return Whether the postToAts field is set.
     */
    boolean hasPostToAts();
    /**
     * <code>optional int32 postToAts = 124;</code>
     * @return The postToAts.
     */
    int getPostToAts();

    /**
     * <code>optional string advancedErrorOverride = 125;</code>
     * @return Whether the advancedErrorOverride field is set.
     */
    boolean hasAdvancedErrorOverride();
    /**
     * <code>optional string advancedErrorOverride = 125;</code>
     * @return The advancedErrorOverride.
     */
    java.lang.String getAdvancedErrorOverride();
    /**
     * <code>optional string advancedErrorOverride = 125;</code>
     * @return The bytes for advancedErrorOverride.
     */
    com.google.protobuf.ByteString
        getAdvancedErrorOverrideBytes();

    /**
     * <code>optional string manualOrderTime = 126;</code>
     * @return Whether the manualOrderTime field is set.
     */
    boolean hasManualOrderTime();
    /**
     * <code>optional string manualOrderTime = 126;</code>
     * @return The manualOrderTime.
     */
    java.lang.String getManualOrderTime();
    /**
     * <code>optional string manualOrderTime = 126;</code>
     * @return The bytes for manualOrderTime.
     */
    com.google.protobuf.ByteString
        getManualOrderTimeBytes();

    /**
     * <code>optional int32 minTradeQty = 127;</code>
     * @return Whether the minTradeQty field is set.
     */
    boolean hasMinTradeQty();
    /**
     * <code>optional int32 minTradeQty = 127;</code>
     * @return The minTradeQty.
     */
    int getMinTradeQty();

    /**
     * <code>optional int32 minCompeteSize = 128;</code>
     * @return Whether the minCompeteSize field is set.
     */
    boolean hasMinCompeteSize();
    /**
     * <code>optional int32 minCompeteSize = 128;</code>
     * @return The minCompeteSize.
     */
    int getMinCompeteSize();

    /**
     * <code>optional double competeAgainstBestOffset = 129;</code>
     * @return Whether the competeAgainstBestOffset field is set.
     */
    boolean hasCompeteAgainstBestOffset();
    /**
     * <code>optional double competeAgainstBestOffset = 129;</code>
     * @return The competeAgainstBestOffset.
     */
    double getCompeteAgainstBestOffset();

    /**
     * <code>optional double midOffsetAtWhole = 130;</code>
     * @return Whether the midOffsetAtWhole field is set.
     */
    boolean hasMidOffsetAtWhole();
    /**
     * <code>optional double midOffsetAtWhole = 130;</code>
     * @return The midOffsetAtWhole.
     */
    double getMidOffsetAtWhole();

    /**
     * <code>optional double midOffsetAtHalf = 131;</code>
     * @return Whether the midOffsetAtHalf field is set.
     */
    boolean hasMidOffsetAtHalf();
    /**
     * <code>optional double midOffsetAtHalf = 131;</code>
     * @return The midOffsetAtHalf.
     */
    double getMidOffsetAtHalf();

    /**
     * <code>optional string customerAccount = 132;</code>
     * @return Whether the customerAccount field is set.
     */
    boolean hasCustomerAccount();
    /**
     * <code>optional string customerAccount = 132;</code>
     * @return The customerAccount.
     */
    java.lang.String getCustomerAccount();
    /**
     * <code>optional string customerAccount = 132;</code>
     * @return The bytes for customerAccount.
     */
    com.google.protobuf.ByteString
        getCustomerAccountBytes();

    /**
     * <code>optional bool professionalCustomer = 133;</code>
     * @return Whether the professionalCustomer field is set.
     */
    boolean hasProfessionalCustomer();
    /**
     * <code>optional bool professionalCustomer = 133;</code>
     * @return The professionalCustomer.
     */
    boolean getProfessionalCustomer();

    /**
     * <code>optional string bondAccruedInterest = 134;</code>
     * @return Whether the bondAccruedInterest field is set.
     */
    boolean hasBondAccruedInterest();
    /**
     * <code>optional string bondAccruedInterest = 134;</code>
     * @return The bondAccruedInterest.
     */
    java.lang.String getBondAccruedInterest();
    /**
     * <code>optional string bondAccruedInterest = 134;</code>
     * @return The bytes for bondAccruedInterest.
     */
    com.google.protobuf.ByteString
        getBondAccruedInterestBytes();

    /**
     * <code>optional bool includeOvernight = 135;</code>
     * @return Whether the includeOvernight field is set.
     */
    boolean hasIncludeOvernight();
    /**
     * <code>optional bool includeOvernight = 135;</code>
     * @return The includeOvernight.
     */
    boolean getIncludeOvernight();

    /**
     * <code>optional int32 manualOrderIndicator = 136;</code>
     * @return Whether the manualOrderIndicator field is set.
     */
    boolean hasManualOrderIndicator();
    /**
     * <code>optional int32 manualOrderIndicator = 136;</code>
     * @return The manualOrderIndicator.
     */
    int getManualOrderIndicator();

    /**
     * <code>optional string submitter = 137;</code>
     * @return Whether the submitter field is set.
     */
    boolean hasSubmitter();
    /**
     * <code>optional string submitter = 137;</code>
     * @return The submitter.
     */
    java.lang.String getSubmitter();
    /**
     * <code>optional string submitter = 137;</code>
     * @return The bytes for submitter.
     */
    com.google.protobuf.ByteString
        getSubmitterBytes();
  }
  /**
   * Protobuf type {@code protobuf.Order}
   */
  public static final class Order extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:protobuf.Order)
      OrderOrBuilder {
  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= */ "",
        Order.class.getName());
    }
    // Use Order.newBuilder() to construct.
    private Order(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
    }
    private Order() {
      action_ = "";
      totalQuantity_ = "";
      orderType_ = "";
      tif_ = "";
      account_ = "";
      settlingFirm_ = "";
      clearingAccount_ = "";
      clearingIntent_ = "";
      goodAfterTime_ = "";
      goodTillDate_ = "";
      ocaGroup_ = "";
      orderRef_ = "";
      rule80A_ = "";
      activeStartTime_ = "";
      activeStopTime_ = "";
      faGroup_ = "";
      faMethod_ = "";
      faPercentage_ = "";
      deltaNeutralOrderType_ = "";
      deltaNeutralOpenClose_ = "";
      deltaNeutralDesignatedLocation_ = "";
      scaleTable_ = "";
      hedgeType_ = "";
      hedgeParam_ = "";
      algoStrategy_ = "";
      algoId_ = "";
      openClose_ = "";
      designatedLocation_ = "";
      deltaNeutralSettlingFirm_ = "";
      deltaNeutralClearingAccount_ = "";
      deltaNeutralClearingIntent_ = "";
      referenceExchangeId_ = "";
      adjustedOrderType_ = "";
      conditions_ = java.util.Collections.emptyList();
      modelCode_ = "";
      extOperator_ = "";
      mifid2DecisionMaker_ = "";
      mifid2DecisionAlgo_ = "";
      mifid2ExecutionTrader_ = "";
      mifid2ExecutionAlgo_ = "";
      autoCancelDate_ = "";
      filledQuantity_ = "";
      shareholder_ = "";
      advancedErrorOverride_ = "";
      manualOrderTime_ = "";
      customerAccount_ = "";
      bondAccruedInterest_ = "";
      submitter_ = "";
    }

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

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
        int number) {
      switch (number) {
        case 62:
          return internalGetAlgoParams();
        case 64:
          return internalGetSmartComboRoutingParams();
        case 84:
          return internalGetOrderMiscOptions();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ib.client.protobuf.OrderProto.internal_static_protobuf_Order_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.ib.client.protobuf.OrderProto.Order.class, com.ib.client.protobuf.OrderProto.Order.Builder.class);
    }

    private int bitField0_;
    private int bitField1_;
    private int bitField2_;
    private int bitField3_;
    private int bitField4_;
    public static final int CLIENTID_FIELD_NUMBER = 1;
    private int clientId_ = 0;
    /**
     * <pre>
     * order ids
     * </pre>
     *
     * <code>optional int32 clientId = 1;</code>
     * @return Whether the clientId field is set.
     */
    @java.lang.Override
    public boolean hasClientId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <pre>
     * order ids
     * </pre>
     *
     * <code>optional int32 clientId = 1;</code>
     * @return The clientId.
     */
    @java.lang.Override
    public int getClientId() {
      return clientId_;
    }

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

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

    public static final int PARENTID_FIELD_NUMBER = 4;
    private int parentId_ = 0;
    /**
     * <code>optional int32 parentId = 4;</code>
     * @return Whether the parentId field is set.
     */
    @java.lang.Override
    public boolean hasParentId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int32 parentId = 4;</code>
     * @return The parentId.
     */
    @java.lang.Override
    public int getParentId() {
      return parentId_;
    }

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

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

    public static final int DISPLAYSIZE_FIELD_NUMBER = 7;
    private int displaySize_ = 0;
    /**
     * <code>optional int32 displaySize = 7;</code>
     * @return Whether the displaySize field is set.
     */
    @java.lang.Override
    public boolean hasDisplaySize() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int32 displaySize = 7;</code>
     * @return The displaySize.
     */
    @java.lang.Override
    public int getDisplaySize() {
      return displaySize_;
    }

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

    public static final int LMTPRICE_FIELD_NUMBER = 9;
    private double lmtPrice_ = 0D;
    /**
     * <code>optional double lmtPrice = 9;</code>
     * @return Whether the lmtPrice field is set.
     */
    @java.lang.Override
    public boolean hasLmtPrice() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional double lmtPrice = 9;</code>
     * @return The lmtPrice.
     */
    @java.lang.Override
    public double getLmtPrice() {
      return lmtPrice_;
    }

    public static final int AUXPRICE_FIELD_NUMBER = 10;
    private double auxPrice_ = 0D;
    /**
     * <code>optional double auxPrice = 10;</code>
     * @return Whether the auxPrice field is set.
     */
    @java.lang.Override
    public boolean hasAuxPrice() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional double auxPrice = 10;</code>
     * @return The auxPrice.
     */
    @java.lang.Override
    public double getAuxPrice() {
      return auxPrice_;
    }

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

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

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

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

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

    public static final int ALLORNONE_FIELD_NUMBER = 16;
    private boolean allOrNone_ = false;
    /**
     * <pre>
     * secondary attributes
     * </pre>
     *
     * <code>optional bool allOrNone = 16;</code>
     * @return Whether the allOrNone field is set.
     */
    @java.lang.Override
    public boolean hasAllOrNone() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * secondary attributes
     * </pre>
     *
     * <code>optional bool allOrNone = 16;</code>
     * @return The allOrNone.
     */
    @java.lang.Override
    public boolean getAllOrNone() {
      return allOrNone_;
    }

    public static final int BLOCKORDER_FIELD_NUMBER = 17;
    private boolean blockOrder_ = false;
    /**
     * <code>optional bool blockOrder = 17;</code>
     * @return Whether the blockOrder field is set.
     */
    @java.lang.Override
    public boolean hasBlockOrder() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional bool blockOrder = 17;</code>
     * @return The blockOrder.
     */
    @java.lang.Override
    public boolean getBlockOrder() {
      return blockOrder_;
    }

    public static final int HIDDEN_FIELD_NUMBER = 18;
    private boolean hidden_ = false;
    /**
     * <code>optional bool hidden = 18;</code>
     * @return Whether the hidden field is set.
     */
    @java.lang.Override
    public boolean hasHidden() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional bool hidden = 18;</code>
     * @return The hidden.
     */
    @java.lang.Override
    public boolean getHidden() {
      return hidden_;
    }

    public static final int OUTSIDERTH_FIELD_NUMBER = 19;
    private boolean outsideRth_ = false;
    /**
     * <code>optional bool outsideRth = 19;</code>
     * @return Whether the outsideRth field is set.
     */
    @java.lang.Override
    public boolean hasOutsideRth() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional bool outsideRth = 19;</code>
     * @return The outsideRth.
     */
    @java.lang.Override
    public boolean getOutsideRth() {
      return outsideRth_;
    }

    public static final int SWEEPTOFILL_FIELD_NUMBER = 20;
    private boolean sweepToFill_ = false;
    /**
     * <code>optional bool sweepToFill = 20;</code>
     * @return Whether the sweepToFill field is set.
     */
    @java.lang.Override
    public boolean hasSweepToFill() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional bool sweepToFill = 20;</code>
     * @return The sweepToFill.
     */
    @java.lang.Override
    public boolean getSweepToFill() {
      return sweepToFill_;
    }

    public static final int PERCENTOFFSET_FIELD_NUMBER = 21;
    private double percentOffset_ = 0D;
    /**
     * <code>optional double percentOffset = 21;</code>
     * @return Whether the percentOffset field is set.
     */
    @java.lang.Override
    public boolean hasPercentOffset() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional double percentOffset = 21;</code>
     * @return The percentOffset.
     */
    @java.lang.Override
    public double getPercentOffset() {
      return percentOffset_;
    }

    public static final int TRAILINGPERCENT_FIELD_NUMBER = 22;
    private double trailingPercent_ = 0D;
    /**
     * <code>optional double trailingPercent = 22;</code>
     * @return Whether the trailingPercent field is set.
     */
    @java.lang.Override
    public boolean hasTrailingPercent() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>optional double trailingPercent = 22;</code>
     * @return The trailingPercent.
     */
    @java.lang.Override
    public double getTrailingPercent() {
      return trailingPercent_;
    }

    public static final int TRAILSTOPPRICE_FIELD_NUMBER = 23;
    private double trailStopPrice_ = 0D;
    /**
     * <code>optional double trailStopPrice = 23;</code>
     * @return Whether the trailStopPrice field is set.
     */
    @java.lang.Override
    public boolean hasTrailStopPrice() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <code>optional double trailStopPrice = 23;</code>
     * @return The trailStopPrice.
     */
    @java.lang.Override
    public double getTrailStopPrice() {
      return trailStopPrice_;
    }

    public static final int MINQTY_FIELD_NUMBER = 24;
    private int minQty_ = 0;
    /**
     * <code>optional int32 minQty = 24;</code>
     * @return Whether the minQty field is set.
     */
    @java.lang.Override
    public boolean hasMinQty() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <code>optional int32 minQty = 24;</code>
     * @return The minQty.
     */
    @java.lang.Override
    public int getMinQty() {
      return minQty_;
    }

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

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

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

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

    public static final int OCATYPE_FIELD_NUMBER = 30;
    private int ocaType_ = 0;
    /**
     * <code>optional int32 ocaType = 30;</code>
     * @return Whether the ocaType field is set.
     */
    @java.lang.Override
    public boolean hasOcaType() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * <code>optional int32 ocaType = 30;</code>
     * @return The ocaType.
     */
    @java.lang.Override
    public int getOcaType() {
      return ocaType_;
    }

    public static final int TRIGGERMETHOD_FIELD_NUMBER = 31;
    private int triggerMethod_ = 0;
    /**
     * <code>optional int32 triggerMethod = 31;</code>
     * @return Whether the triggerMethod field is set.
     */
    @java.lang.Override
    public boolean hasTriggerMethod() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * <code>optional int32 triggerMethod = 31;</code>
     * @return The triggerMethod.
     */
    @java.lang.Override
    public int getTriggerMethod() {
      return triggerMethod_;
    }

    public static final int ACTIVESTARTTIME_FIELD_NUMBER = 32;
    @SuppressWarnings("serial")
    private volatile java.lang.Object activeStartTime_ = "";
    /**
     * <pre>
     * extended order fields
     * </pre>
     *
     * <code>optional string activeStartTime = 32;</code>
     * @return Whether the activeStartTime field is set.
     */
    @java.lang.Override
    public boolean hasActiveStartTime() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * <pre>
     * extended order fields
     * </pre>
     *
     * <code>optional string activeStartTime = 32;</code>
     * @return The activeStartTime.
     */
    @java.lang.Override
    public java.lang.String getActiveStartTime() {
      java.lang.Object ref = activeStartTime_;
      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();
        activeStartTime_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * extended order fields
     * </pre>
     *
     * <code>optional string activeStartTime = 32;</code>
     * @return The bytes for activeStartTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getActiveStartTimeBytes() {
      java.lang.Object ref = activeStartTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        activeStartTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACTIVESTOPTIME_FIELD_NUMBER = 33;
    @SuppressWarnings("serial")
    private volatile java.lang.Object activeStopTime_ = "";
    /**
     * <code>optional string activeStopTime = 33;</code>
     * @return Whether the activeStopTime field is set.
     */
    @java.lang.Override
    public boolean hasActiveStopTime() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string activeStopTime = 33;</code>
     * @return The activeStopTime.
     */
    @java.lang.Override
    public java.lang.String getActiveStopTime() {
      java.lang.Object ref = activeStopTime_;
      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();
        activeStopTime_ = s;
        return s;
      }
    }
    /**
     * <code>optional string activeStopTime = 33;</code>
     * @return The bytes for activeStopTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getActiveStopTimeBytes() {
      java.lang.Object ref = activeStopTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        activeStopTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FAGROUP_FIELD_NUMBER = 34;
    @SuppressWarnings("serial")
    private volatile java.lang.Object faGroup_ = "";
    /**
     * <pre>
     * advisor allocation orders
     * </pre>
     *
     * <code>optional string faGroup = 34;</code>
     * @return Whether the faGroup field is set.
     */
    @java.lang.Override
    public boolean hasFaGroup() {
      return ((bitField1_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * advisor allocation orders
     * </pre>
     *
     * <code>optional string faGroup = 34;</code>
     * @return The faGroup.
     */
    @java.lang.Override
    public java.lang.String getFaGroup() {
      java.lang.Object ref = faGroup_;
      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();
        faGroup_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * advisor allocation orders
     * </pre>
     *
     * <code>optional string faGroup = 34;</code>
     * @return The bytes for faGroup.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFaGroupBytes() {
      java.lang.Object ref = faGroup_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        faGroup_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FAMETHOD_FIELD_NUMBER = 35;
    @SuppressWarnings("serial")
    private volatile java.lang.Object faMethod_ = "";
    /**
     * <code>optional string faMethod = 35;</code>
     * @return Whether the faMethod field is set.
     */
    @java.lang.Override
    public boolean hasFaMethod() {
      return ((bitField1_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string faMethod = 35;</code>
     * @return The faMethod.
     */
    @java.lang.Override
    public java.lang.String getFaMethod() {
      java.lang.Object ref = faMethod_;
      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();
        faMethod_ = s;
        return s;
      }
    }
    /**
     * <code>optional string faMethod = 35;</code>
     * @return The bytes for faMethod.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFaMethodBytes() {
      java.lang.Object ref = faMethod_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        faMethod_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FAPERCENTAGE_FIELD_NUMBER = 36;
    @SuppressWarnings("serial")
    private volatile java.lang.Object faPercentage_ = "";
    /**
     * <code>optional string faPercentage = 36;</code>
     * @return Whether the faPercentage field is set.
     */
    @java.lang.Override
    public boolean hasFaPercentage() {
      return ((bitField1_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string faPercentage = 36;</code>
     * @return The faPercentage.
     */
    @java.lang.Override
    public java.lang.String getFaPercentage() {
      java.lang.Object ref = faPercentage_;
      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();
        faPercentage_ = s;
        return s;
      }
    }
    /**
     * <code>optional string faPercentage = 36;</code>
     * @return The bytes for faPercentage.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFaPercentageBytes() {
      java.lang.Object ref = faPercentage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        faPercentage_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLATILITY_FIELD_NUMBER = 37;
    private double volatility_ = 0D;
    /**
     * <pre>
     * volatility orders
     * </pre>
     *
     * <code>optional double volatility = 37;</code>
     * @return Whether the volatility field is set.
     */
    @java.lang.Override
    public boolean hasVolatility() {
      return ((bitField1_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * volatility orders
     * </pre>
     *
     * <code>optional double volatility = 37;</code>
     * @return The volatility.
     */
    @java.lang.Override
    public double getVolatility() {
      return volatility_;
    }

    public static final int VOLATILITYTYPE_FIELD_NUMBER = 38;
    private int volatilityType_ = 0;
    /**
     * <code>optional int32 volatilityType = 38;</code>
     * @return Whether the volatilityType field is set.
     */
    @java.lang.Override
    public boolean hasVolatilityType() {
      return ((bitField1_ & 0x00000020) != 0);
    }
    /**
     * <code>optional int32 volatilityType = 38;</code>
     * @return The volatilityType.
     */
    @java.lang.Override
    public int getVolatilityType() {
      return volatilityType_;
    }

    public static final int CONTINUOUSUPDATE_FIELD_NUMBER = 39;
    private boolean continuousUpdate_ = false;
    /**
     * <code>optional bool continuousUpdate = 39;</code>
     * @return Whether the continuousUpdate field is set.
     */
    @java.lang.Override
    public boolean hasContinuousUpdate() {
      return ((bitField1_ & 0x00000040) != 0);
    }
    /**
     * <code>optional bool continuousUpdate = 39;</code>
     * @return The continuousUpdate.
     */
    @java.lang.Override
    public boolean getContinuousUpdate() {
      return continuousUpdate_;
    }

    public static final int REFERENCEPRICETYPE_FIELD_NUMBER = 40;
    private int referencePriceType_ = 0;
    /**
     * <code>optional int32 referencePriceType = 40;</code>
     * @return Whether the referencePriceType field is set.
     */
    @java.lang.Override
    public boolean hasReferencePriceType() {
      return ((bitField1_ & 0x00000080) != 0);
    }
    /**
     * <code>optional int32 referencePriceType = 40;</code>
     * @return The referencePriceType.
     */
    @java.lang.Override
    public int getReferencePriceType() {
      return referencePriceType_;
    }

    public static final int DELTANEUTRALORDERTYPE_FIELD_NUMBER = 41;
    @SuppressWarnings("serial")
    private volatile java.lang.Object deltaNeutralOrderType_ = "";
    /**
     * <code>optional string deltaNeutralOrderType = 41;</code>
     * @return Whether the deltaNeutralOrderType field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralOrderType() {
      return ((bitField1_ & 0x00000100) != 0);
    }
    /**
     * <code>optional string deltaNeutralOrderType = 41;</code>
     * @return The deltaNeutralOrderType.
     */
    @java.lang.Override
    public java.lang.String getDeltaNeutralOrderType() {
      java.lang.Object ref = deltaNeutralOrderType_;
      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();
        deltaNeutralOrderType_ = s;
        return s;
      }
    }
    /**
     * <code>optional string deltaNeutralOrderType = 41;</code>
     * @return The bytes for deltaNeutralOrderType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeltaNeutralOrderTypeBytes() {
      java.lang.Object ref = deltaNeutralOrderType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deltaNeutralOrderType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DELTANEUTRALAUXPRICE_FIELD_NUMBER = 42;
    private double deltaNeutralAuxPrice_ = 0D;
    /**
     * <code>optional double deltaNeutralAuxPrice = 42;</code>
     * @return Whether the deltaNeutralAuxPrice field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralAuxPrice() {
      return ((bitField1_ & 0x00000200) != 0);
    }
    /**
     * <code>optional double deltaNeutralAuxPrice = 42;</code>
     * @return The deltaNeutralAuxPrice.
     */
    @java.lang.Override
    public double getDeltaNeutralAuxPrice() {
      return deltaNeutralAuxPrice_;
    }

    public static final int DELTANEUTRALCONID_FIELD_NUMBER = 43;
    private int deltaNeutralConId_ = 0;
    /**
     * <code>optional int32 deltaNeutralConId = 43;</code>
     * @return Whether the deltaNeutralConId field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralConId() {
      return ((bitField1_ & 0x00000400) != 0);
    }
    /**
     * <code>optional int32 deltaNeutralConId = 43;</code>
     * @return The deltaNeutralConId.
     */
    @java.lang.Override
    public int getDeltaNeutralConId() {
      return deltaNeutralConId_;
    }

    public static final int DELTANEUTRALOPENCLOSE_FIELD_NUMBER = 44;
    @SuppressWarnings("serial")
    private volatile java.lang.Object deltaNeutralOpenClose_ = "";
    /**
     * <code>optional string deltaNeutralOpenClose = 44;</code>
     * @return Whether the deltaNeutralOpenClose field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralOpenClose() {
      return ((bitField1_ & 0x00000800) != 0);
    }
    /**
     * <code>optional string deltaNeutralOpenClose = 44;</code>
     * @return The deltaNeutralOpenClose.
     */
    @java.lang.Override
    public java.lang.String getDeltaNeutralOpenClose() {
      java.lang.Object ref = deltaNeutralOpenClose_;
      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();
        deltaNeutralOpenClose_ = s;
        return s;
      }
    }
    /**
     * <code>optional string deltaNeutralOpenClose = 44;</code>
     * @return The bytes for deltaNeutralOpenClose.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeltaNeutralOpenCloseBytes() {
      java.lang.Object ref = deltaNeutralOpenClose_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deltaNeutralOpenClose_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DELTANEUTRALSHORTSALE_FIELD_NUMBER = 45;
    private boolean deltaNeutralShortSale_ = false;
    /**
     * <code>optional bool deltaNeutralShortSale = 45;</code>
     * @return Whether the deltaNeutralShortSale field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralShortSale() {
      return ((bitField1_ & 0x00001000) != 0);
    }
    /**
     * <code>optional bool deltaNeutralShortSale = 45;</code>
     * @return The deltaNeutralShortSale.
     */
    @java.lang.Override
    public boolean getDeltaNeutralShortSale() {
      return deltaNeutralShortSale_;
    }

    public static final int DELTANEUTRALSHORTSALESLOT_FIELD_NUMBER = 46;
    private int deltaNeutralShortSaleSlot_ = 0;
    /**
     * <code>optional int32 deltaNeutralShortSaleSlot = 46;</code>
     * @return Whether the deltaNeutralShortSaleSlot field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralShortSaleSlot() {
      return ((bitField1_ & 0x00002000) != 0);
    }
    /**
     * <code>optional int32 deltaNeutralShortSaleSlot = 46;</code>
     * @return The deltaNeutralShortSaleSlot.
     */
    @java.lang.Override
    public int getDeltaNeutralShortSaleSlot() {
      return deltaNeutralShortSaleSlot_;
    }

    public static final int DELTANEUTRALDESIGNATEDLOCATION_FIELD_NUMBER = 47;
    @SuppressWarnings("serial")
    private volatile java.lang.Object deltaNeutralDesignatedLocation_ = "";
    /**
     * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
     * @return Whether the deltaNeutralDesignatedLocation field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralDesignatedLocation() {
      return ((bitField1_ & 0x00004000) != 0);
    }
    /**
     * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
     * @return The deltaNeutralDesignatedLocation.
     */
    @java.lang.Override
    public java.lang.String getDeltaNeutralDesignatedLocation() {
      java.lang.Object ref = deltaNeutralDesignatedLocation_;
      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();
        deltaNeutralDesignatedLocation_ = s;
        return s;
      }
    }
    /**
     * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
     * @return The bytes for deltaNeutralDesignatedLocation.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeltaNeutralDesignatedLocationBytes() {
      java.lang.Object ref = deltaNeutralDesignatedLocation_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deltaNeutralDesignatedLocation_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCALEINITLEVELSIZE_FIELD_NUMBER = 48;
    private int scaleInitLevelSize_ = 0;
    /**
     * <pre>
     * scale orders
     * </pre>
     *
     * <code>optional int32 scaleInitLevelSize = 48;</code>
     * @return Whether the scaleInitLevelSize field is set.
     */
    @java.lang.Override
    public boolean hasScaleInitLevelSize() {
      return ((bitField1_ & 0x00008000) != 0);
    }
    /**
     * <pre>
     * scale orders
     * </pre>
     *
     * <code>optional int32 scaleInitLevelSize = 48;</code>
     * @return The scaleInitLevelSize.
     */
    @java.lang.Override
    public int getScaleInitLevelSize() {
      return scaleInitLevelSize_;
    }

    public static final int SCALESUBSLEVELSIZE_FIELD_NUMBER = 49;
    private int scaleSubsLevelSize_ = 0;
    /**
     * <code>optional int32 scaleSubsLevelSize = 49;</code>
     * @return Whether the scaleSubsLevelSize field is set.
     */
    @java.lang.Override
    public boolean hasScaleSubsLevelSize() {
      return ((bitField1_ & 0x00010000) != 0);
    }
    /**
     * <code>optional int32 scaleSubsLevelSize = 49;</code>
     * @return The scaleSubsLevelSize.
     */
    @java.lang.Override
    public int getScaleSubsLevelSize() {
      return scaleSubsLevelSize_;
    }

    public static final int SCALEPRICEINCREMENT_FIELD_NUMBER = 50;
    private double scalePriceIncrement_ = 0D;
    /**
     * <code>optional double scalePriceIncrement = 50;</code>
     * @return Whether the scalePriceIncrement field is set.
     */
    @java.lang.Override
    public boolean hasScalePriceIncrement() {
      return ((bitField1_ & 0x00020000) != 0);
    }
    /**
     * <code>optional double scalePriceIncrement = 50;</code>
     * @return The scalePriceIncrement.
     */
    @java.lang.Override
    public double getScalePriceIncrement() {
      return scalePriceIncrement_;
    }

    public static final int SCALEPRICEADJUSTVALUE_FIELD_NUMBER = 51;
    private double scalePriceAdjustValue_ = 0D;
    /**
     * <code>optional double scalePriceAdjustValue = 51;</code>
     * @return Whether the scalePriceAdjustValue field is set.
     */
    @java.lang.Override
    public boolean hasScalePriceAdjustValue() {
      return ((bitField1_ & 0x00040000) != 0);
    }
    /**
     * <code>optional double scalePriceAdjustValue = 51;</code>
     * @return The scalePriceAdjustValue.
     */
    @java.lang.Override
    public double getScalePriceAdjustValue() {
      return scalePriceAdjustValue_;
    }

    public static final int SCALEPRICEADJUSTINTERVAL_FIELD_NUMBER = 52;
    private int scalePriceAdjustInterval_ = 0;
    /**
     * <code>optional int32 scalePriceAdjustInterval = 52;</code>
     * @return Whether the scalePriceAdjustInterval field is set.
     */
    @java.lang.Override
    public boolean hasScalePriceAdjustInterval() {
      return ((bitField1_ & 0x00080000) != 0);
    }
    /**
     * <code>optional int32 scalePriceAdjustInterval = 52;</code>
     * @return The scalePriceAdjustInterval.
     */
    @java.lang.Override
    public int getScalePriceAdjustInterval() {
      return scalePriceAdjustInterval_;
    }

    public static final int SCALEPROFITOFFSET_FIELD_NUMBER = 53;
    private double scaleProfitOffset_ = 0D;
    /**
     * <code>optional double scaleProfitOffset = 53;</code>
     * @return Whether the scaleProfitOffset field is set.
     */
    @java.lang.Override
    public boolean hasScaleProfitOffset() {
      return ((bitField1_ & 0x00100000) != 0);
    }
    /**
     * <code>optional double scaleProfitOffset = 53;</code>
     * @return The scaleProfitOffset.
     */
    @java.lang.Override
    public double getScaleProfitOffset() {
      return scaleProfitOffset_;
    }

    public static final int SCALEAUTORESET_FIELD_NUMBER = 54;
    private boolean scaleAutoReset_ = false;
    /**
     * <code>optional bool scaleAutoReset = 54;</code>
     * @return Whether the scaleAutoReset field is set.
     */
    @java.lang.Override
    public boolean hasScaleAutoReset() {
      return ((bitField1_ & 0x00200000) != 0);
    }
    /**
     * <code>optional bool scaleAutoReset = 54;</code>
     * @return The scaleAutoReset.
     */
    @java.lang.Override
    public boolean getScaleAutoReset() {
      return scaleAutoReset_;
    }

    public static final int SCALEINITPOSITION_FIELD_NUMBER = 55;
    private int scaleInitPosition_ = 0;
    /**
     * <code>optional int32 scaleInitPosition = 55;</code>
     * @return Whether the scaleInitPosition field is set.
     */
    @java.lang.Override
    public boolean hasScaleInitPosition() {
      return ((bitField1_ & 0x00400000) != 0);
    }
    /**
     * <code>optional int32 scaleInitPosition = 55;</code>
     * @return The scaleInitPosition.
     */
    @java.lang.Override
    public int getScaleInitPosition() {
      return scaleInitPosition_;
    }

    public static final int SCALEINITFILLQTY_FIELD_NUMBER = 56;
    private int scaleInitFillQty_ = 0;
    /**
     * <code>optional int32 scaleInitFillQty = 56;</code>
     * @return Whether the scaleInitFillQty field is set.
     */
    @java.lang.Override
    public boolean hasScaleInitFillQty() {
      return ((bitField1_ & 0x00800000) != 0);
    }
    /**
     * <code>optional int32 scaleInitFillQty = 56;</code>
     * @return The scaleInitFillQty.
     */
    @java.lang.Override
    public int getScaleInitFillQty() {
      return scaleInitFillQty_;
    }

    public static final int SCALERANDOMPERCENT_FIELD_NUMBER = 57;
    private boolean scaleRandomPercent_ = false;
    /**
     * <code>optional bool scaleRandomPercent = 57;</code>
     * @return Whether the scaleRandomPercent field is set.
     */
    @java.lang.Override
    public boolean hasScaleRandomPercent() {
      return ((bitField1_ & 0x01000000) != 0);
    }
    /**
     * <code>optional bool scaleRandomPercent = 57;</code>
     * @return The scaleRandomPercent.
     */
    @java.lang.Override
    public boolean getScaleRandomPercent() {
      return scaleRandomPercent_;
    }

    public static final int SCALETABLE_FIELD_NUMBER = 58;
    @SuppressWarnings("serial")
    private volatile java.lang.Object scaleTable_ = "";
    /**
     * <code>optional string scaleTable = 58;</code>
     * @return Whether the scaleTable field is set.
     */
    @java.lang.Override
    public boolean hasScaleTable() {
      return ((bitField1_ & 0x02000000) != 0);
    }
    /**
     * <code>optional string scaleTable = 58;</code>
     * @return The scaleTable.
     */
    @java.lang.Override
    public java.lang.String getScaleTable() {
      java.lang.Object ref = scaleTable_;
      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();
        scaleTable_ = s;
        return s;
      }
    }
    /**
     * <code>optional string scaleTable = 58;</code>
     * @return The bytes for scaleTable.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getScaleTableBytes() {
      java.lang.Object ref = scaleTable_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        scaleTable_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEDGETYPE_FIELD_NUMBER = 59;
    @SuppressWarnings("serial")
    private volatile java.lang.Object hedgeType_ = "";
    /**
     * <pre>
     * hedge orders
     * </pre>
     *
     * <code>optional string hedgeType = 59;</code>
     * @return Whether the hedgeType field is set.
     */
    @java.lang.Override
    public boolean hasHedgeType() {
      return ((bitField1_ & 0x04000000) != 0);
    }
    /**
     * <pre>
     * hedge orders
     * </pre>
     *
     * <code>optional string hedgeType = 59;</code>
     * @return The hedgeType.
     */
    @java.lang.Override
    public java.lang.String getHedgeType() {
      java.lang.Object ref = hedgeType_;
      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();
        hedgeType_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * hedge orders
     * </pre>
     *
     * <code>optional string hedgeType = 59;</code>
     * @return The bytes for hedgeType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHedgeTypeBytes() {
      java.lang.Object ref = hedgeType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hedgeType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEDGEPARAM_FIELD_NUMBER = 60;
    @SuppressWarnings("serial")
    private volatile java.lang.Object hedgeParam_ = "";
    /**
     * <code>optional string hedgeParam = 60;</code>
     * @return Whether the hedgeParam field is set.
     */
    @java.lang.Override
    public boolean hasHedgeParam() {
      return ((bitField1_ & 0x08000000) != 0);
    }
    /**
     * <code>optional string hedgeParam = 60;</code>
     * @return The hedgeParam.
     */
    @java.lang.Override
    public java.lang.String getHedgeParam() {
      java.lang.Object ref = hedgeParam_;
      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();
        hedgeParam_ = s;
        return s;
      }
    }
    /**
     * <code>optional string hedgeParam = 60;</code>
     * @return The bytes for hedgeParam.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHedgeParamBytes() {
      java.lang.Object ref = hedgeParam_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hedgeParam_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALGOSTRATEGY_FIELD_NUMBER = 61;
    @SuppressWarnings("serial")
    private volatile java.lang.Object algoStrategy_ = "";
    /**
     * <pre>
     * algo orders
     * </pre>
     *
     * <code>optional string algoStrategy = 61;</code>
     * @return Whether the algoStrategy field is set.
     */
    @java.lang.Override
    public boolean hasAlgoStrategy() {
      return ((bitField1_ & 0x10000000) != 0);
    }
    /**
     * <pre>
     * algo orders
     * </pre>
     *
     * <code>optional string algoStrategy = 61;</code>
     * @return The algoStrategy.
     */
    @java.lang.Override
    public java.lang.String getAlgoStrategy() {
      java.lang.Object ref = algoStrategy_;
      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();
        algoStrategy_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * algo orders
     * </pre>
     *
     * <code>optional string algoStrategy = 61;</code>
     * @return The bytes for algoStrategy.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlgoStrategyBytes() {
      java.lang.Object ref = algoStrategy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        algoStrategy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ALGOPARAMS_FIELD_NUMBER = 62;
    private static final class AlgoParamsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.ib.client.protobuf.OrderProto.internal_static_protobuf_Order_AlgoParamsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> algoParams_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetAlgoParams() {
      if (algoParams_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AlgoParamsDefaultEntryHolder.defaultEntry);
      }
      return algoParams_;
    }
    public int getAlgoParamsCount() {
      return internalGetAlgoParams().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    @java.lang.Override
    public boolean containsAlgoParams(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetAlgoParams().getMap().containsKey(key);
    }
    /**
     * Use {@link #getAlgoParamsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getAlgoParams() {
      return getAlgoParamsMap();
    }
    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, java.lang.String> getAlgoParamsMap() {
      return internalGetAlgoParams().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    @java.lang.Override
    public /* nullable */
java.lang.String getAlgoParamsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAlgoParams().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; algoParams = 62;</code>
     */
    @java.lang.Override
    public java.lang.String getAlgoParamsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetAlgoParams().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int ALGOID_FIELD_NUMBER = 63;
    @SuppressWarnings("serial")
    private volatile java.lang.Object algoId_ = "";
    /**
     * <code>optional string algoId = 63;</code>
     * @return Whether the algoId field is set.
     */
    @java.lang.Override
    public boolean hasAlgoId() {
      return ((bitField1_ & 0x20000000) != 0);
    }
    /**
     * <code>optional string algoId = 63;</code>
     * @return The algoId.
     */
    @java.lang.Override
    public java.lang.String getAlgoId() {
      java.lang.Object ref = algoId_;
      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();
        algoId_ = s;
        return s;
      }
    }
    /**
     * <code>optional string algoId = 63;</code>
     * @return The bytes for algoId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlgoIdBytes() {
      java.lang.Object ref = algoId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        algoId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SMARTCOMBOROUTINGPARAMS_FIELD_NUMBER = 64;
    private static final class SmartComboRoutingParamsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.ib.client.protobuf.OrderProto.internal_static_protobuf_Order_SmartComboRoutingParamsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> smartComboRoutingParams_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetSmartComboRoutingParams() {
      if (smartComboRoutingParams_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            SmartComboRoutingParamsDefaultEntryHolder.defaultEntry);
      }
      return smartComboRoutingParams_;
    }
    public int getSmartComboRoutingParamsCount() {
      return internalGetSmartComboRoutingParams().getMap().size();
    }
    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    @java.lang.Override
    public boolean containsSmartComboRoutingParams(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetSmartComboRoutingParams().getMap().containsKey(key);
    }
    /**
     * Use {@link #getSmartComboRoutingParamsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getSmartComboRoutingParams() {
      return getSmartComboRoutingParamsMap();
    }
    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, java.lang.String> getSmartComboRoutingParamsMap() {
      return internalGetSmartComboRoutingParams().getMap();
    }
    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    @java.lang.Override
    public /* nullable */
java.lang.String getSmartComboRoutingParamsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetSmartComboRoutingParams().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * combo orders
     * </pre>
     *
     * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
     */
    @java.lang.Override
    public java.lang.String getSmartComboRoutingParamsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetSmartComboRoutingParams().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int WHATIF_FIELD_NUMBER = 65;
    private boolean whatIf_ = false;
    /**
     * <pre>
     * processing control
     * </pre>
     *
     * <code>optional bool whatIf = 65;</code>
     * @return Whether the whatIf field is set.
     */
    @java.lang.Override
    public boolean hasWhatIf() {
      return ((bitField1_ & 0x40000000) != 0);
    }
    /**
     * <pre>
     * processing control
     * </pre>
     *
     * <code>optional bool whatIf = 65;</code>
     * @return The whatIf.
     */
    @java.lang.Override
    public boolean getWhatIf() {
      return whatIf_;
    }

    public static final int TRANSMIT_FIELD_NUMBER = 66;
    private boolean transmit_ = false;
    /**
     * <code>optional bool transmit = 66;</code>
     * @return Whether the transmit field is set.
     */
    @java.lang.Override
    public boolean hasTransmit() {
      return ((bitField1_ & 0x80000000) != 0);
    }
    /**
     * <code>optional bool transmit = 66;</code>
     * @return The transmit.
     */
    @java.lang.Override
    public boolean getTransmit() {
      return transmit_;
    }

    public static final int OVERRIDEPERCENTAGECONSTRAINTS_FIELD_NUMBER = 67;
    private boolean overridePercentageConstraints_ = false;
    /**
     * <code>optional bool overridePercentageConstraints = 67;</code>
     * @return Whether the overridePercentageConstraints field is set.
     */
    @java.lang.Override
    public boolean hasOverridePercentageConstraints() {
      return ((bitField2_ & 0x00000001) != 0);
    }
    /**
     * <code>optional bool overridePercentageConstraints = 67;</code>
     * @return The overridePercentageConstraints.
     */
    @java.lang.Override
    public boolean getOverridePercentageConstraints() {
      return overridePercentageConstraints_;
    }

    public static final int OPENCLOSE_FIELD_NUMBER = 68;
    @SuppressWarnings("serial")
    private volatile java.lang.Object openClose_ = "";
    /**
     * <pre>
     * Institutional orders only
     * </pre>
     *
     * <code>optional string openClose = 68;</code>
     * @return Whether the openClose field is set.
     */
    @java.lang.Override
    public boolean hasOpenClose() {
      return ((bitField2_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * Institutional orders only
     * </pre>
     *
     * <code>optional string openClose = 68;</code>
     * @return The openClose.
     */
    @java.lang.Override
    public java.lang.String getOpenClose() {
      java.lang.Object ref = openClose_;
      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();
        openClose_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * Institutional orders only
     * </pre>
     *
     * <code>optional string openClose = 68;</code>
     * @return The bytes for openClose.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOpenCloseBytes() {
      java.lang.Object ref = openClose_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        openClose_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ORIGIN_FIELD_NUMBER = 69;
    private int origin_ = 0;
    /**
     * <code>optional int32 origin = 69;</code>
     * @return Whether the origin field is set.
     */
    @java.lang.Override
    public boolean hasOrigin() {
      return ((bitField2_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int32 origin = 69;</code>
     * @return The origin.
     */
    @java.lang.Override
    public int getOrigin() {
      return origin_;
    }

    public static final int SHORTSALESLOT_FIELD_NUMBER = 70;
    private int shortSaleSlot_ = 0;
    /**
     * <code>optional int32 shortSaleSlot = 70;</code>
     * @return Whether the shortSaleSlot field is set.
     */
    @java.lang.Override
    public boolean hasShortSaleSlot() {
      return ((bitField2_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int32 shortSaleSlot = 70;</code>
     * @return The shortSaleSlot.
     */
    @java.lang.Override
    public int getShortSaleSlot() {
      return shortSaleSlot_;
    }

    public static final int DESIGNATEDLOCATION_FIELD_NUMBER = 71;
    @SuppressWarnings("serial")
    private volatile java.lang.Object designatedLocation_ = "";
    /**
     * <code>optional string designatedLocation = 71;</code>
     * @return Whether the designatedLocation field is set.
     */
    @java.lang.Override
    public boolean hasDesignatedLocation() {
      return ((bitField2_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string designatedLocation = 71;</code>
     * @return The designatedLocation.
     */
    @java.lang.Override
    public java.lang.String getDesignatedLocation() {
      java.lang.Object ref = designatedLocation_;
      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();
        designatedLocation_ = s;
        return s;
      }
    }
    /**
     * <code>optional string designatedLocation = 71;</code>
     * @return The bytes for designatedLocation.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDesignatedLocationBytes() {
      java.lang.Object ref = designatedLocation_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        designatedLocation_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXEMPTCODE_FIELD_NUMBER = 72;
    private int exemptCode_ = 0;
    /**
     * <code>optional int32 exemptCode = 72;</code>
     * @return Whether the exemptCode field is set.
     */
    @java.lang.Override
    public boolean hasExemptCode() {
      return ((bitField2_ & 0x00000020) != 0);
    }
    /**
     * <code>optional int32 exemptCode = 72;</code>
     * @return The exemptCode.
     */
    @java.lang.Override
    public int getExemptCode() {
      return exemptCode_;
    }

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

    public static final int DELTANEUTRALCLEARINGACCOUNT_FIELD_NUMBER = 74;
    @SuppressWarnings("serial")
    private volatile java.lang.Object deltaNeutralClearingAccount_ = "";
    /**
     * <code>optional string deltaNeutralClearingAccount = 74;</code>
     * @return Whether the deltaNeutralClearingAccount field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralClearingAccount() {
      return ((bitField2_ & 0x00000080) != 0);
    }
    /**
     * <code>optional string deltaNeutralClearingAccount = 74;</code>
     * @return The deltaNeutralClearingAccount.
     */
    @java.lang.Override
    public java.lang.String getDeltaNeutralClearingAccount() {
      java.lang.Object ref = deltaNeutralClearingAccount_;
      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();
        deltaNeutralClearingAccount_ = s;
        return s;
      }
    }
    /**
     * <code>optional string deltaNeutralClearingAccount = 74;</code>
     * @return The bytes for deltaNeutralClearingAccount.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeltaNeutralClearingAccountBytes() {
      java.lang.Object ref = deltaNeutralClearingAccount_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deltaNeutralClearingAccount_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DELTANEUTRALCLEARINGINTENT_FIELD_NUMBER = 75;
    @SuppressWarnings("serial")
    private volatile java.lang.Object deltaNeutralClearingIntent_ = "";
    /**
     * <code>optional string deltaNeutralClearingIntent = 75;</code>
     * @return Whether the deltaNeutralClearingIntent field is set.
     */
    @java.lang.Override
    public boolean hasDeltaNeutralClearingIntent() {
      return ((bitField2_ & 0x00000100) != 0);
    }
    /**
     * <code>optional string deltaNeutralClearingIntent = 75;</code>
     * @return The deltaNeutralClearingIntent.
     */
    @java.lang.Override
    public java.lang.String getDeltaNeutralClearingIntent() {
      java.lang.Object ref = deltaNeutralClearingIntent_;
      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();
        deltaNeutralClearingIntent_ = s;
        return s;
      }
    }
    /**
     * <code>optional string deltaNeutralClearingIntent = 75;</code>
     * @return The bytes for deltaNeutralClearingIntent.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDeltaNeutralClearingIntentBytes() {
      java.lang.Object ref = deltaNeutralClearingIntent_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deltaNeutralClearingIntent_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DISCRETIONARYAMT_FIELD_NUMBER = 76;
    private double discretionaryAmt_ = 0D;
    /**
     * <pre>
     * SMART routing only
     * </pre>
     *
     * <code>optional double discretionaryAmt = 76;</code>
     * @return Whether the discretionaryAmt field is set.
     */
    @java.lang.Override
    public boolean hasDiscretionaryAmt() {
      return ((bitField2_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * SMART routing only
     * </pre>
     *
     * <code>optional double discretionaryAmt = 76;</code>
     * @return The discretionaryAmt.
     */
    @java.lang.Override
    public double getDiscretionaryAmt() {
      return discretionaryAmt_;
    }

    public static final int OPTOUTSMARTROUTING_FIELD_NUMBER = 77;
    private boolean optOutSmartRouting_ = false;
    /**
     * <code>optional bool optOutSmartRouting = 77;</code>
     * @return Whether the optOutSmartRouting field is set.
     */
    @java.lang.Override
    public boolean hasOptOutSmartRouting() {
      return ((bitField2_ & 0x00000400) != 0);
    }
    /**
     * <code>optional bool optOutSmartRouting = 77;</code>
     * @return The optOutSmartRouting.
     */
    @java.lang.Override
    public boolean getOptOutSmartRouting() {
      return optOutSmartRouting_;
    }

    public static final int STARTINGPRICE_FIELD_NUMBER = 78;
    private double startingPrice_ = 0D;
    /**
     * <pre>
     * BOX ORDERS ONLY
     * </pre>
     *
     * <code>optional double startingPrice = 78;</code>
     * @return Whether the startingPrice field is set.
     */
    @java.lang.Override
    public boolean hasStartingPrice() {
      return ((bitField2_ & 0x00000800) != 0);
    }
    /**
     * <pre>
     * BOX ORDERS ONLY
     * </pre>
     *
     * <code>optional double startingPrice = 78;</code>
     * @return The startingPrice.
     */
    @java.lang.Override
    public double getStartingPrice() {
      return startingPrice_;
    }

    public static final int STOCKREFPRICE_FIELD_NUMBER = 79;
    private double stockRefPrice_ = 0D;
    /**
     * <code>optional double stockRefPrice = 79;</code>
     * @return Whether the stockRefPrice field is set.
     */
    @java.lang.Override
    public boolean hasStockRefPrice() {
      return ((bitField2_ & 0x00001000) != 0);
    }
    /**
     * <code>optional double stockRefPrice = 79;</code>
     * @return The stockRefPrice.
     */
    @java.lang.Override
    public double getStockRefPrice() {
      return stockRefPrice_;
    }

    public static final int DELTA_FIELD_NUMBER = 80;
    private double delta_ = 0D;
    /**
     * <code>optional double delta = 80;</code>
     * @return Whether the delta field is set.
     */
    @java.lang.Override
    public boolean hasDelta() {
      return ((bitField2_ & 0x00002000) != 0);
    }
    /**
     * <code>optional double delta = 80;</code>
     * @return The delta.
     */
    @java.lang.Override
    public double getDelta() {
      return delta_;
    }

    public static final int STOCKRANGELOWER_FIELD_NUMBER = 81;
    private double stockRangeLower_ = 0D;
    /**
     * <pre>
     * pegged to stock or VOL orders
     * </pre>
     *
     * <code>optional double stockRangeLower = 81;</code>
     * @return Whether the stockRangeLower field is set.
     */
    @java.lang.Override
    public boolean hasStockRangeLower() {
      return ((bitField2_ & 0x00004000) != 0);
    }
    /**
     * <pre>
     * pegged to stock or VOL orders
     * </pre>
     *
     * <code>optional double stockRangeLower = 81;</code>
     * @return The stockRangeLower.
     */
    @java.lang.Override
    public double getStockRangeLower() {
      return stockRangeLower_;
    }

    public static final int STOCKRANGEUPPER_FIELD_NUMBER = 82;
    private double stockRangeUpper_ = 0D;
    /**
     * <code>optional double stockRangeUpper = 82;</code>
     * @return Whether the stockRangeUpper field is set.
     */
    @java.lang.Override
    public boolean hasStockRangeUpper() {
      return ((bitField2_ & 0x00008000) != 0);
    }
    /**
     * <code>optional double stockRangeUpper = 82;</code>
     * @return The stockRangeUpper.
     */
    @java.lang.Override
    public double getStockRangeUpper() {
      return stockRangeUpper_;
    }

    public static final int NOTHELD_FIELD_NUMBER = 83;
    private boolean notHeld_ = false;
    /**
     * <pre>
     * Not Held
     * </pre>
     *
     * <code>optional bool notHeld = 83;</code>
     * @return Whether the notHeld field is set.
     */
    @java.lang.Override
    public boolean hasNotHeld() {
      return ((bitField2_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * Not Held
     * </pre>
     *
     * <code>optional bool notHeld = 83;</code>
     * @return The notHeld.
     */
    @java.lang.Override
    public boolean getNotHeld() {
      return notHeld_;
    }

    public static final int ORDERMISCOPTIONS_FIELD_NUMBER = 84;
    private static final class OrderMiscOptionsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.String>newDefaultInstance(
                  com.ib.client.protobuf.OrderProto.internal_static_protobuf_Order_OrderMiscOptionsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> orderMiscOptions_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetOrderMiscOptions() {
      if (orderMiscOptions_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            OrderMiscOptionsDefaultEntryHolder.defaultEntry);
      }
      return orderMiscOptions_;
    }
    public int getOrderMiscOptionsCount() {
      return internalGetOrderMiscOptions().getMap().size();
    }
    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    @java.lang.Override
    public boolean containsOrderMiscOptions(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetOrderMiscOptions().getMap().containsKey(key);
    }
    /**
     * Use {@link #getOrderMiscOptionsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getOrderMiscOptions() {
      return getOrderMiscOptionsMap();
    }
    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, java.lang.String> getOrderMiscOptionsMap() {
      return internalGetOrderMiscOptions().getMap();
    }
    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    @java.lang.Override
    public /* nullable */
java.lang.String getOrderMiscOptionsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetOrderMiscOptions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * order misc options
     * </pre>
     *
     * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
     */
    @java.lang.Override
    public java.lang.String getOrderMiscOptionsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetOrderMiscOptions().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int SOLICITED_FIELD_NUMBER = 85;
    private boolean solicited_ = false;
    /**
     * <pre>
     * order algo id
     * </pre>
     *
     * <code>optional bool solicited = 85;</code>
     * @return Whether the solicited field is set.
     */
    @java.lang.Override
    public boolean hasSolicited() {
      return ((bitField2_ & 0x00020000) != 0);
    }
    /**
     * <pre>
     * order algo id
     * </pre>
     *
     * <code>optional bool solicited = 85;</code>
     * @return The solicited.
     */
    @java.lang.Override
    public boolean getSolicited() {
      return solicited_;
    }

    public static final int RANDOMIZESIZE_FIELD_NUMBER = 86;
    private boolean randomizeSize_ = false;
    /**
     * <code>optional bool randomizeSize = 86;</code>
     * @return Whether the randomizeSize field is set.
     */
    @java.lang.Override
    public boolean hasRandomizeSize() {
      return ((bitField2_ & 0x00040000) != 0);
    }
    /**
     * <code>optional bool randomizeSize = 86;</code>
     * @return The randomizeSize.
     */
    @java.lang.Override
    public boolean getRandomizeSize() {
      return randomizeSize_;
    }

    public static final int RANDOMIZEPRICE_FIELD_NUMBER = 87;
    private boolean randomizePrice_ = false;
    /**
     * <code>optional bool randomizePrice = 87;</code>
     * @return Whether the randomizePrice field is set.
     */
    @java.lang.Override
    public boolean hasRandomizePrice() {
      return ((bitField2_ & 0x00080000) != 0);
    }
    /**
     * <code>optional bool randomizePrice = 87;</code>
     * @return The randomizePrice.
     */
    @java.lang.Override
    public boolean getRandomizePrice() {
      return randomizePrice_;
    }

    public static final int REFERENCECONTRACTID_FIELD_NUMBER = 88;
    private int referenceContractId_ = 0;
    /**
     * <pre>
     * PEG2BENCH fields
     * </pre>
     *
     * <code>optional int32 referenceContractId = 88;</code>
     * @return Whether the referenceContractId field is set.
     */
    @java.lang.Override
    public boolean hasReferenceContractId() {
      return ((bitField2_ & 0x00100000) != 0);
    }
    /**
     * <pre>
     * PEG2BENCH fields
     * </pre>
     *
     * <code>optional int32 referenceContractId = 88;</code>
     * @return The referenceContractId.
     */
    @java.lang.Override
    public int getReferenceContractId() {
      return referenceContractId_;
    }

    public static final int PEGGEDCHANGEAMOUNT_FIELD_NUMBER = 89;
    private double peggedChangeAmount_ = 0D;
    /**
     * <code>optional double peggedChangeAmount = 89;</code>
     * @return Whether the peggedChangeAmount field is set.
     */
    @java.lang.Override
    public boolean hasPeggedChangeAmount() {
      return ((bitField2_ & 0x00200000) != 0);
    }
    /**
     * <code>optional double peggedChangeAmount = 89;</code>
     * @return The peggedChangeAmount.
     */
    @java.lang.Override
    public double getPeggedChangeAmount() {
      return peggedChangeAmount_;
    }

    public static final int ISPEGGEDCHANGEAMOUNTDECREASE_FIELD_NUMBER = 90;
    private boolean isPeggedChangeAmountDecrease_ = false;
    /**
     * <code>optional bool isPeggedChangeAmountDecrease = 90;</code>
     * @return Whether the isPeggedChangeAmountDecrease field is set.
     */
    @java.lang.Override
    public boolean hasIsPeggedChangeAmountDecrease() {
      return ((bitField2_ & 0x00400000) != 0);
    }
    /**
     * <code>optional bool isPeggedChangeAmountDecrease = 90;</code>
     * @return The isPeggedChangeAmountDecrease.
     */
    @java.lang.Override
    public boolean getIsPeggedChangeAmountDecrease() {
      return isPeggedChangeAmountDecrease_;
    }

    public static final int REFERENCECHANGEAMOUNT_FIELD_NUMBER = 91;
    private double referenceChangeAmount_ = 0D;
    /**
     * <code>optional double referenceChangeAmount = 91;</code>
     * @return Whether the referenceChangeAmount field is set.
     */
    @java.lang.Override
    public boolean hasReferenceChangeAmount() {
      return ((bitField2_ & 0x00800000) != 0);
    }
    /**
     * <code>optional double referenceChangeAmount = 91;</code>
     * @return The referenceChangeAmount.
     */
    @java.lang.Override
    public double getReferenceChangeAmount() {
      return referenceChangeAmount_;
    }

    public static final int REFERENCEEXCHANGEID_FIELD_NUMBER = 92;
    @SuppressWarnings("serial")
    private volatile java.lang.Object referenceExchangeId_ = "";
    /**
     * <code>optional string referenceExchangeId = 92;</code>
     * @return Whether the referenceExchangeId field is set.
     */
    @java.lang.Override
    public boolean hasReferenceExchangeId() {
      return ((bitField2_ & 0x01000000) != 0);
    }
    /**
     * <code>optional string referenceExchangeId = 92;</code>
     * @return The referenceExchangeId.
     */
    @java.lang.Override
    public java.lang.String getReferenceExchangeId() {
      java.lang.Object ref = referenceExchangeId_;
      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();
        referenceExchangeId_ = s;
        return s;
      }
    }
    /**
     * <code>optional string referenceExchangeId = 92;</code>
     * @return The bytes for referenceExchangeId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getReferenceExchangeIdBytes() {
      java.lang.Object ref = referenceExchangeId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        referenceExchangeId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ADJUSTEDORDERTYPE_FIELD_NUMBER = 93;
    @SuppressWarnings("serial")
    private volatile java.lang.Object adjustedOrderType_ = "";
    /**
     * <code>optional string adjustedOrderType = 93;</code>
     * @return Whether the adjustedOrderType field is set.
     */
    @java.lang.Override
    public boolean hasAdjustedOrderType() {
      return ((bitField2_ & 0x02000000) != 0);
    }
    /**
     * <code>optional string adjustedOrderType = 93;</code>
     * @return The adjustedOrderType.
     */
    @java.lang.Override
    public java.lang.String getAdjustedOrderType() {
      java.lang.Object ref = adjustedOrderType_;
      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();
        adjustedOrderType_ = s;
        return s;
      }
    }
    /**
     * <code>optional string adjustedOrderType = 93;</code>
     * @return The bytes for adjustedOrderType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAdjustedOrderTypeBytes() {
      java.lang.Object ref = adjustedOrderType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        adjustedOrderType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TRIGGERPRICE_FIELD_NUMBER = 94;
    private double triggerPrice_ = 0D;
    /**
     * <code>optional double triggerPrice = 94;</code>
     * @return Whether the triggerPrice field is set.
     */
    @java.lang.Override
    public boolean hasTriggerPrice() {
      return ((bitField2_ & 0x04000000) != 0);
    }
    /**
     * <code>optional double triggerPrice = 94;</code>
     * @return The triggerPrice.
     */
    @java.lang.Override
    public double getTriggerPrice() {
      return triggerPrice_;
    }

    public static final int ADJUSTEDSTOPPRICE_FIELD_NUMBER = 95;
    private double adjustedStopPrice_ = 0D;
    /**
     * <code>optional double adjustedStopPrice = 95;</code>
     * @return Whether the adjustedStopPrice field is set.
     */
    @java.lang.Override
    public boolean hasAdjustedStopPrice() {
      return ((bitField2_ & 0x08000000) != 0);
    }
    /**
     * <code>optional double adjustedStopPrice = 95;</code>
     * @return The adjustedStopPrice.
     */
    @java.lang.Override
    public double getAdjustedStopPrice() {
      return adjustedStopPrice_;
    }

    public static final int ADJUSTEDSTOPLIMITPRICE_FIELD_NUMBER = 96;
    private double adjustedStopLimitPrice_ = 0D;
    /**
     * <code>optional double adjustedStopLimitPrice = 96;</code>
     * @return Whether the adjustedStopLimitPrice field is set.
     */
    @java.lang.Override
    public boolean hasAdjustedStopLimitPrice() {
      return ((bitField2_ & 0x10000000) != 0);
    }
    /**
     * <code>optional double adjustedStopLimitPrice = 96;</code>
     * @return The adjustedStopLimitPrice.
     */
    @java.lang.Override
    public double getAdjustedStopLimitPrice() {
      return adjustedStopLimitPrice_;
    }

    public static final int ADJUSTEDTRAILINGAMOUNT_FIELD_NUMBER = 97;
    private double adjustedTrailingAmount_ = 0D;
    /**
     * <code>optional double adjustedTrailingAmount = 97;</code>
     * @return Whether the adjustedTrailingAmount field is set.
     */
    @java.lang.Override
    public boolean hasAdjustedTrailingAmount() {
      return ((bitField2_ & 0x20000000) != 0);
    }
    /**
     * <code>optional double adjustedTrailingAmount = 97;</code>
     * @return The adjustedTrailingAmount.
     */
    @java.lang.Override
    public double getAdjustedTrailingAmount() {
      return adjustedTrailingAmount_;
    }

    public static final int ADJUSTABLETRAILINGUNIT_FIELD_NUMBER = 98;
    private int adjustableTrailingUnit_ = 0;
    /**
     * <code>optional int32 adjustableTrailingUnit = 98;</code>
     * @return Whether the adjustableTrailingUnit field is set.
     */
    @java.lang.Override
    public boolean hasAdjustableTrailingUnit() {
      return ((bitField2_ & 0x40000000) != 0);
    }
    /**
     * <code>optional int32 adjustableTrailingUnit = 98;</code>
     * @return The adjustableTrailingUnit.
     */
    @java.lang.Override
    public int getAdjustableTrailingUnit() {
      return adjustableTrailingUnit_;
    }

    public static final int LMTPRICEOFFSET_FIELD_NUMBER = 99;
    private double lmtPriceOffset_ = 0D;
    /**
     * <code>optional double lmtPriceOffset = 99;</code>
     * @return Whether the lmtPriceOffset field is set.
     */
    @java.lang.Override
    public boolean hasLmtPriceOffset() {
      return ((bitField2_ & 0x80000000) != 0);
    }
    /**
     * <code>optional double lmtPriceOffset = 99;</code>
     * @return The lmtPriceOffset.
     */
    @java.lang.Override
    public double getLmtPriceOffset() {
      return lmtPriceOffset_;
    }

    public static final int CONDITIONS_FIELD_NUMBER = 100;
    @SuppressWarnings("serial")
    private java.util.List<com.ib.client.protobuf.OrderConditionProto.OrderCondition> conditions_;
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    @java.lang.Override
    public java.util.List<com.ib.client.protobuf.OrderConditionProto.OrderCondition> getConditionsList() {
      return conditions_;
    }
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder> 
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    @java.lang.Override
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    @java.lang.Override
    public com.ib.client.protobuf.OrderConditionProto.OrderCondition getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
     */
    @java.lang.Override
    public com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder getConditionsOrBuilder(
        int index) {
      return conditions_.get(index);
    }

    public static final int CONDITIONSCANCELORDER_FIELD_NUMBER = 101;
    private boolean conditionsCancelOrder_ = false;
    /**
     * <code>optional bool conditionsCancelOrder = 101;</code>
     * @return Whether the conditionsCancelOrder field is set.
     */
    @java.lang.Override
    public boolean hasConditionsCancelOrder() {
      return ((bitField3_ & 0x00000001) != 0);
    }
    /**
     * <code>optional bool conditionsCancelOrder = 101;</code>
     * @return The conditionsCancelOrder.
     */
    @java.lang.Override
    public boolean getConditionsCancelOrder() {
      return conditionsCancelOrder_;
    }

    public static final int CONDITIONSIGNORERTH_FIELD_NUMBER = 102;
    private boolean conditionsIgnoreRth_ = false;
    /**
     * <code>optional bool conditionsIgnoreRth = 102;</code>
     * @return Whether the conditionsIgnoreRth field is set.
     */
    @java.lang.Override
    public boolean hasConditionsIgnoreRth() {
      return ((bitField3_ & 0x00000002) != 0);
    }
    /**
     * <code>optional bool conditionsIgnoreRth = 102;</code>
     * @return The conditionsIgnoreRth.
     */
    @java.lang.Override
    public boolean getConditionsIgnoreRth() {
      return conditionsIgnoreRth_;
    }

    public static final int MODELCODE_FIELD_NUMBER = 103;
    @SuppressWarnings("serial")
    private volatile java.lang.Object modelCode_ = "";
    /**
     * <pre>
     * models
     * </pre>
     *
     * <code>optional string modelCode = 103;</code>
     * @return Whether the modelCode field is set.
     */
    @java.lang.Override
    public boolean hasModelCode() {
      return ((bitField3_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * models
     * </pre>
     *
     * <code>optional string modelCode = 103;</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;
      }
    }
    /**
     * <pre>
     * models
     * </pre>
     *
     * <code>optional string modelCode = 103;</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 EXTOPERATOR_FIELD_NUMBER = 104;
    @SuppressWarnings("serial")
    private volatile java.lang.Object extOperator_ = "";
    /**
     * <code>optional string extOperator = 104;</code>
     * @return Whether the extOperator field is set.
     */
    @java.lang.Override
    public boolean hasExtOperator() {
      return ((bitField3_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string extOperator = 104;</code>
     * @return The extOperator.
     */
    @java.lang.Override
    public java.lang.String getExtOperator() {
      java.lang.Object ref = extOperator_;
      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();
        extOperator_ = s;
        return s;
      }
    }
    /**
     * <code>optional string extOperator = 104;</code>
     * @return The bytes for extOperator.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExtOperatorBytes() {
      java.lang.Object ref = extOperator_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        extOperator_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOFTDOLLARTIER_FIELD_NUMBER = 105;
    private com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier softDollarTier_;
    /**
     * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
     * @return Whether the softDollarTier field is set.
     */
    @java.lang.Override
    public boolean hasSoftDollarTier() {
      return ((bitField3_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
     * @return The softDollarTier.
     */
    @java.lang.Override
    public com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier getSoftDollarTier() {
      return softDollarTier_ == null ? com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.getDefaultInstance() : softDollarTier_;
    }
    /**
     * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
     */
    @java.lang.Override
    public com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTierOrBuilder getSoftDollarTierOrBuilder() {
      return softDollarTier_ == null ? com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.getDefaultInstance() : softDollarTier_;
    }

    public static final int CASHQTY_FIELD_NUMBER = 106;
    private double cashQty_ = 0D;
    /**
     * <pre>
     * native cash quantity
     * </pre>
     *
     * <code>optional double cashQty = 106;</code>
     * @return Whether the cashQty field is set.
     */
    @java.lang.Override
    public boolean hasCashQty() {
      return ((bitField3_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * native cash quantity
     * </pre>
     *
     * <code>optional double cashQty = 106;</code>
     * @return The cashQty.
     */
    @java.lang.Override
    public double getCashQty() {
      return cashQty_;
    }

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

    public static final int MIFID2DECISIONALGO_FIELD_NUMBER = 108;
    @SuppressWarnings("serial")
    private volatile java.lang.Object mifid2DecisionAlgo_ = "";
    /**
     * <code>optional string mifid2DecisionAlgo = 108;</code>
     * @return Whether the mifid2DecisionAlgo field is set.
     */
    @java.lang.Override
    public boolean hasMifid2DecisionAlgo() {
      return ((bitField3_ & 0x00000080) != 0);
    }
    /**
     * <code>optional string mifid2DecisionAlgo = 108;</code>
     * @return The mifid2DecisionAlgo.
     */
    @java.lang.Override
    public java.lang.String getMifid2DecisionAlgo() {
      java.lang.Object ref = mifid2DecisionAlgo_;
      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();
        mifid2DecisionAlgo_ = s;
        return s;
      }
    }
    /**
     * <code>optional string mifid2DecisionAlgo = 108;</code>
     * @return The bytes for mifid2DecisionAlgo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMifid2DecisionAlgoBytes() {
      java.lang.Object ref = mifid2DecisionAlgo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mifid2DecisionAlgo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MIFID2EXECUTIONTRADER_FIELD_NUMBER = 109;
    @SuppressWarnings("serial")
    private volatile java.lang.Object mifid2ExecutionTrader_ = "";
    /**
     * <code>optional string mifid2ExecutionTrader = 109;</code>
     * @return Whether the mifid2ExecutionTrader field is set.
     */
    @java.lang.Override
    public boolean hasMifid2ExecutionTrader() {
      return ((bitField3_ & 0x00000100) != 0);
    }
    /**
     * <code>optional string mifid2ExecutionTrader = 109;</code>
     * @return The mifid2ExecutionTrader.
     */
    @java.lang.Override
    public java.lang.String getMifid2ExecutionTrader() {
      java.lang.Object ref = mifid2ExecutionTrader_;
      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();
        mifid2ExecutionTrader_ = s;
        return s;
      }
    }
    /**
     * <code>optional string mifid2ExecutionTrader = 109;</code>
     * @return The bytes for mifid2ExecutionTrader.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMifid2ExecutionTraderBytes() {
      java.lang.Object ref = mifid2ExecutionTrader_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mifid2ExecutionTrader_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MIFID2EXECUTIONALGO_FIELD_NUMBER = 110;
    @SuppressWarnings("serial")
    private volatile java.lang.Object mifid2ExecutionAlgo_ = "";
    /**
     * <code>optional string mifid2ExecutionAlgo = 110;</code>
     * @return Whether the mifid2ExecutionAlgo field is set.
     */
    @java.lang.Override
    public boolean hasMifid2ExecutionAlgo() {
      return ((bitField3_ & 0x00000200) != 0);
    }
    /**
     * <code>optional string mifid2ExecutionAlgo = 110;</code>
     * @return The mifid2ExecutionAlgo.
     */
    @java.lang.Override
    public java.lang.String getMifid2ExecutionAlgo() {
      java.lang.Object ref = mifid2ExecutionAlgo_;
      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();
        mifid2ExecutionAlgo_ = s;
        return s;
      }
    }
    /**
     * <code>optional string mifid2ExecutionAlgo = 110;</code>
     * @return The bytes for mifid2ExecutionAlgo.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMifid2ExecutionAlgoBytes() {
      java.lang.Object ref = mifid2ExecutionAlgo_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mifid2ExecutionAlgo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DONTUSEAUTOPRICEFORHEDGE_FIELD_NUMBER = 111;
    private boolean dontUseAutoPriceForHedge_ = false;
    /**
     * <pre>
     * don't use auto price for hedge
     * </pre>
     *
     * <code>optional bool dontUseAutoPriceForHedge = 111;</code>
     * @return Whether the dontUseAutoPriceForHedge field is set.
     */
    @java.lang.Override
    public boolean hasDontUseAutoPriceForHedge() {
      return ((bitField3_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * don't use auto price for hedge
     * </pre>
     *
     * <code>optional bool dontUseAutoPriceForHedge = 111;</code>
     * @return The dontUseAutoPriceForHedge.
     */
    @java.lang.Override
    public boolean getDontUseAutoPriceForHedge() {
      return dontUseAutoPriceForHedge_;
    }

    public static final int ISOMSCONTAINER_FIELD_NUMBER = 112;
    private boolean isOmsContainer_ = false;
    /**
     * <code>optional bool isOmsContainer = 112;</code>
     * @return Whether the isOmsContainer field is set.
     */
    @java.lang.Override
    public boolean hasIsOmsContainer() {
      return ((bitField3_ & 0x00000800) != 0);
    }
    /**
     * <code>optional bool isOmsContainer = 112;</code>
     * @return The isOmsContainer.
     */
    @java.lang.Override
    public boolean getIsOmsContainer() {
      return isOmsContainer_;
    }

    public static final int DISCRETIONARYUPTOLIMITPRICE_FIELD_NUMBER = 113;
    private boolean discretionaryUpToLimitPrice_ = false;
    /**
     * <code>optional bool discretionaryUpToLimitPrice = 113;</code>
     * @return Whether the discretionaryUpToLimitPrice field is set.
     */
    @java.lang.Override
    public boolean hasDiscretionaryUpToLimitPrice() {
      return ((bitField3_ & 0x00001000) != 0);
    }
    /**
     * <code>optional bool discretionaryUpToLimitPrice = 113;</code>
     * @return The discretionaryUpToLimitPrice.
     */
    @java.lang.Override
    public boolean getDiscretionaryUpToLimitPrice() {
      return discretionaryUpToLimitPrice_;
    }

    public static final int AUTOCANCELDATE_FIELD_NUMBER = 114;
    @SuppressWarnings("serial")
    private volatile java.lang.Object autoCancelDate_ = "";
    /**
     * <code>optional string autoCancelDate = 114;</code>
     * @return Whether the autoCancelDate field is set.
     */
    @java.lang.Override
    public boolean hasAutoCancelDate() {
      return ((bitField3_ & 0x00002000) != 0);
    }
    /**
     * <code>optional string autoCancelDate = 114;</code>
     * @return The autoCancelDate.
     */
    @java.lang.Override
    public java.lang.String getAutoCancelDate() {
      java.lang.Object ref = autoCancelDate_;
      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();
        autoCancelDate_ = s;
        return s;
      }
    }
    /**
     * <code>optional string autoCancelDate = 114;</code>
     * @return The bytes for autoCancelDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAutoCancelDateBytes() {
      java.lang.Object ref = autoCancelDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        autoCancelDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FILLEDQUANTITY_FIELD_NUMBER = 115;
    @SuppressWarnings("serial")
    private volatile java.lang.Object filledQuantity_ = "";
    /**
     * <code>optional string filledQuantity = 115;</code>
     * @return Whether the filledQuantity field is set.
     */
    @java.lang.Override
    public boolean hasFilledQuantity() {
      return ((bitField3_ & 0x00004000) != 0);
    }
    /**
     * <code>optional string filledQuantity = 115;</code>
     * @return The filledQuantity.
     */
    @java.lang.Override
    public java.lang.String getFilledQuantity() {
      java.lang.Object ref = filledQuantity_;
      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();
        filledQuantity_ = s;
        return s;
      }
    }
    /**
     * <code>optional string filledQuantity = 115;</code>
     * @return The bytes for filledQuantity.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFilledQuantityBytes() {
      java.lang.Object ref = filledQuantity_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        filledQuantity_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REFFUTURESCONID_FIELD_NUMBER = 116;
    private int refFuturesConId_ = 0;
    /**
     * <code>optional int32 refFuturesConId = 116;</code>
     * @return Whether the refFuturesConId field is set.
     */
    @java.lang.Override
    public boolean hasRefFuturesConId() {
      return ((bitField3_ & 0x00008000) != 0);
    }
    /**
     * <code>optional int32 refFuturesConId = 116;</code>
     * @return The refFuturesConId.
     */
    @java.lang.Override
    public int getRefFuturesConId() {
      return refFuturesConId_;
    }

    public static final int AUTOCANCELPARENT_FIELD_NUMBER = 117;
    private boolean autoCancelParent_ = false;
    /**
     * <code>optional bool autoCancelParent = 117;</code>
     * @return Whether the autoCancelParent field is set.
     */
    @java.lang.Override
    public boolean hasAutoCancelParent() {
      return ((bitField3_ & 0x00010000) != 0);
    }
    /**
     * <code>optional bool autoCancelParent = 117;</code>
     * @return The autoCancelParent.
     */
    @java.lang.Override
    public boolean getAutoCancelParent() {
      return autoCancelParent_;
    }

    public static final int SHAREHOLDER_FIELD_NUMBER = 118;
    @SuppressWarnings("serial")
    private volatile java.lang.Object shareholder_ = "";
    /**
     * <code>optional string shareholder = 118;</code>
     * @return Whether the shareholder field is set.
     */
    @java.lang.Override
    public boolean hasShareholder() {
      return ((bitField3_ & 0x00020000) != 0);
    }
    /**
     * <code>optional string shareholder = 118;</code>
     * @return The shareholder.
     */
    @java.lang.Override
    public java.lang.String getShareholder() {
      java.lang.Object ref = shareholder_;
      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();
        shareholder_ = s;
        return s;
      }
    }
    /**
     * <code>optional string shareholder = 118;</code>
     * @return The bytes for shareholder.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getShareholderBytes() {
      java.lang.Object ref = shareholder_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        shareholder_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IMBALANCEONLY_FIELD_NUMBER = 119;
    private boolean imbalanceOnly_ = false;
    /**
     * <code>optional bool imbalanceOnly = 119;</code>
     * @return Whether the imbalanceOnly field is set.
     */
    @java.lang.Override
    public boolean hasImbalanceOnly() {
      return ((bitField3_ & 0x00040000) != 0);
    }
    /**
     * <code>optional bool imbalanceOnly = 119;</code>
     * @return The imbalanceOnly.
     */
    @java.lang.Override
    public boolean getImbalanceOnly() {
      return imbalanceOnly_;
    }

    public static final int ROUTEMARKETABLETOBBO_FIELD_NUMBER = 120;
    private boolean routeMarketableToBbo_ = false;
    /**
     * <code>optional bool routeMarketableToBbo = 120;</code>
     * @return Whether the routeMarketableToBbo field is set.
     */
    @java.lang.Override
    public boolean hasRouteMarketableToBbo() {
      return ((bitField3_ & 0x00080000) != 0);
    }
    /**
     * <code>optional bool routeMarketableToBbo = 120;</code>
     * @return The routeMarketableToBbo.
     */
    @java.lang.Override
    public boolean getRouteMarketableToBbo() {
      return routeMarketableToBbo_;
    }

    public static final int PARENTPERMID_FIELD_NUMBER = 121;
    private long parentPermId_ = 0L;
    /**
     * <code>optional int64 parentPermId = 121;</code>
     * @return Whether the parentPermId field is set.
     */
    @java.lang.Override
    public boolean hasParentPermId() {
      return ((bitField3_ & 0x00100000) != 0);
    }
    /**
     * <code>optional int64 parentPermId = 121;</code>
     * @return The parentPermId.
     */
    @java.lang.Override
    public long getParentPermId() {
      return parentPermId_;
    }

    public static final int USEPRICEMGMTALGO_FIELD_NUMBER = 122;
    private int usePriceMgmtAlgo_ = 0;
    /**
     * <code>optional int32 usePriceMgmtAlgo = 122;</code>
     * @return Whether the usePriceMgmtAlgo field is set.
     */
    @java.lang.Override
    public boolean hasUsePriceMgmtAlgo() {
      return ((bitField3_ & 0x00200000) != 0);
    }
    /**
     * <code>optional int32 usePriceMgmtAlgo = 122;</code>
     * @return The usePriceMgmtAlgo.
     */
    @java.lang.Override
    public int getUsePriceMgmtAlgo() {
      return usePriceMgmtAlgo_;
    }

    public static final int DURATION_FIELD_NUMBER = 123;
    private int duration_ = 0;
    /**
     * <code>optional int32 duration = 123;</code>
     * @return Whether the duration field is set.
     */
    @java.lang.Override
    public boolean hasDuration() {
      return ((bitField3_ & 0x00400000) != 0);
    }
    /**
     * <code>optional int32 duration = 123;</code>
     * @return The duration.
     */
    @java.lang.Override
    public int getDuration() {
      return duration_;
    }

    public static final int POSTTOATS_FIELD_NUMBER = 124;
    private int postToAts_ = 0;
    /**
     * <code>optional int32 postToAts = 124;</code>
     * @return Whether the postToAts field is set.
     */
    @java.lang.Override
    public boolean hasPostToAts() {
      return ((bitField3_ & 0x00800000) != 0);
    }
    /**
     * <code>optional int32 postToAts = 124;</code>
     * @return The postToAts.
     */
    @java.lang.Override
    public int getPostToAts() {
      return postToAts_;
    }

    public static final int ADVANCEDERROROVERRIDE_FIELD_NUMBER = 125;
    @SuppressWarnings("serial")
    private volatile java.lang.Object advancedErrorOverride_ = "";
    /**
     * <code>optional string advancedErrorOverride = 125;</code>
     * @return Whether the advancedErrorOverride field is set.
     */
    @java.lang.Override
    public boolean hasAdvancedErrorOverride() {
      return ((bitField3_ & 0x01000000) != 0);
    }
    /**
     * <code>optional string advancedErrorOverride = 125;</code>
     * @return The advancedErrorOverride.
     */
    @java.lang.Override
    public java.lang.String getAdvancedErrorOverride() {
      java.lang.Object ref = advancedErrorOverride_;
      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();
        advancedErrorOverride_ = s;
        return s;
      }
    }
    /**
     * <code>optional string advancedErrorOverride = 125;</code>
     * @return The bytes for advancedErrorOverride.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAdvancedErrorOverrideBytes() {
      java.lang.Object ref = advancedErrorOverride_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        advancedErrorOverride_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MANUALORDERTIME_FIELD_NUMBER = 126;
    @SuppressWarnings("serial")
    private volatile java.lang.Object manualOrderTime_ = "";
    /**
     * <code>optional string manualOrderTime = 126;</code>
     * @return Whether the manualOrderTime field is set.
     */
    @java.lang.Override
    public boolean hasManualOrderTime() {
      return ((bitField3_ & 0x02000000) != 0);
    }
    /**
     * <code>optional string manualOrderTime = 126;</code>
     * @return The manualOrderTime.
     */
    @java.lang.Override
    public java.lang.String getManualOrderTime() {
      java.lang.Object ref = manualOrderTime_;
      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();
        manualOrderTime_ = s;
        return s;
      }
    }
    /**
     * <code>optional string manualOrderTime = 126;</code>
     * @return The bytes for manualOrderTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getManualOrderTimeBytes() {
      java.lang.Object ref = manualOrderTime_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        manualOrderTime_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MINTRADEQTY_FIELD_NUMBER = 127;
    private int minTradeQty_ = 0;
    /**
     * <code>optional int32 minTradeQty = 127;</code>
     * @return Whether the minTradeQty field is set.
     */
    @java.lang.Override
    public boolean hasMinTradeQty() {
      return ((bitField3_ & 0x04000000) != 0);
    }
    /**
     * <code>optional int32 minTradeQty = 127;</code>
     * @return The minTradeQty.
     */
    @java.lang.Override
    public int getMinTradeQty() {
      return minTradeQty_;
    }

    public static final int MINCOMPETESIZE_FIELD_NUMBER = 128;
    private int minCompeteSize_ = 0;
    /**
     * <code>optional int32 minCompeteSize = 128;</code>
     * @return Whether the minCompeteSize field is set.
     */
    @java.lang.Override
    public boolean hasMinCompeteSize() {
      return ((bitField3_ & 0x08000000) != 0);
    }
    /**
     * <code>optional int32 minCompeteSize = 128;</code>
     * @return The minCompeteSize.
     */
    @java.lang.Override
    public int getMinCompeteSize() {
      return minCompeteSize_;
    }

    public static final int COMPETEAGAINSTBESTOFFSET_FIELD_NUMBER = 129;
    private double competeAgainstBestOffset_ = 0D;
    /**
     * <code>optional double competeAgainstBestOffset = 129;</code>
     * @return Whether the competeAgainstBestOffset field is set.
     */
    @java.lang.Override
    public boolean hasCompeteAgainstBestOffset() {
      return ((bitField3_ & 0x10000000) != 0);
    }
    /**
     * <code>optional double competeAgainstBestOffset = 129;</code>
     * @return The competeAgainstBestOffset.
     */
    @java.lang.Override
    public double getCompeteAgainstBestOffset() {
      return competeAgainstBestOffset_;
    }

    public static final int MIDOFFSETATWHOLE_FIELD_NUMBER = 130;
    private double midOffsetAtWhole_ = 0D;
    /**
     * <code>optional double midOffsetAtWhole = 130;</code>
     * @return Whether the midOffsetAtWhole field is set.
     */
    @java.lang.Override
    public boolean hasMidOffsetAtWhole() {
      return ((bitField3_ & 0x20000000) != 0);
    }
    /**
     * <code>optional double midOffsetAtWhole = 130;</code>
     * @return The midOffsetAtWhole.
     */
    @java.lang.Override
    public double getMidOffsetAtWhole() {
      return midOffsetAtWhole_;
    }

    public static final int MIDOFFSETATHALF_FIELD_NUMBER = 131;
    private double midOffsetAtHalf_ = 0D;
    /**
     * <code>optional double midOffsetAtHalf = 131;</code>
     * @return Whether the midOffsetAtHalf field is set.
     */
    @java.lang.Override
    public boolean hasMidOffsetAtHalf() {
      return ((bitField3_ & 0x40000000) != 0);
    }
    /**
     * <code>optional double midOffsetAtHalf = 131;</code>
     * @return The midOffsetAtHalf.
     */
    @java.lang.Override
    public double getMidOffsetAtHalf() {
      return midOffsetAtHalf_;
    }

    public static final int CUSTOMERACCOUNT_FIELD_NUMBER = 132;
    @SuppressWarnings("serial")
    private volatile java.lang.Object customerAccount_ = "";
    /**
     * <code>optional string customerAccount = 132;</code>
     * @return Whether the customerAccount field is set.
     */
    @java.lang.Override
    public boolean hasCustomerAccount() {
      return ((bitField3_ & 0x80000000) != 0);
    }
    /**
     * <code>optional string customerAccount = 132;</code>
     * @return The customerAccount.
     */
    @java.lang.Override
    public java.lang.String getCustomerAccount() {
      java.lang.Object ref = customerAccount_;
      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();
        customerAccount_ = s;
        return s;
      }
    }
    /**
     * <code>optional string customerAccount = 132;</code>
     * @return The bytes for customerAccount.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCustomerAccountBytes() {
      java.lang.Object ref = customerAccount_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        customerAccount_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROFESSIONALCUSTOMER_FIELD_NUMBER = 133;
    private boolean professionalCustomer_ = false;
    /**
     * <code>optional bool professionalCustomer = 133;</code>
     * @return Whether the professionalCustomer field is set.
     */
    @java.lang.Override
    public boolean hasProfessionalCustomer() {
      return ((bitField4_ & 0x00000001) != 0);
    }
    /**
     * <code>optional bool professionalCustomer = 133;</code>
     * @return The professionalCustomer.
     */
    @java.lang.Override
    public boolean getProfessionalCustomer() {
      return professionalCustomer_;
    }

    public static final int BONDACCRUEDINTEREST_FIELD_NUMBER = 134;
    @SuppressWarnings("serial")
    private volatile java.lang.Object bondAccruedInterest_ = "";
    /**
     * <code>optional string bondAccruedInterest = 134;</code>
     * @return Whether the bondAccruedInterest field is set.
     */
    @java.lang.Override
    public boolean hasBondAccruedInterest() {
      return ((bitField4_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string bondAccruedInterest = 134;</code>
     * @return The bondAccruedInterest.
     */
    @java.lang.Override
    public java.lang.String getBondAccruedInterest() {
      java.lang.Object ref = bondAccruedInterest_;
      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();
        bondAccruedInterest_ = s;
        return s;
      }
    }
    /**
     * <code>optional string bondAccruedInterest = 134;</code>
     * @return The bytes for bondAccruedInterest.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBondAccruedInterestBytes() {
      java.lang.Object ref = bondAccruedInterest_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        bondAccruedInterest_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int INCLUDEOVERNIGHT_FIELD_NUMBER = 135;
    private boolean includeOvernight_ = false;
    /**
     * <code>optional bool includeOvernight = 135;</code>
     * @return Whether the includeOvernight field is set.
     */
    @java.lang.Override
    public boolean hasIncludeOvernight() {
      return ((bitField4_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bool includeOvernight = 135;</code>
     * @return The includeOvernight.
     */
    @java.lang.Override
    public boolean getIncludeOvernight() {
      return includeOvernight_;
    }

    public static final int MANUALORDERINDICATOR_FIELD_NUMBER = 136;
    private int manualOrderIndicator_ = 0;
    /**
     * <code>optional int32 manualOrderIndicator = 136;</code>
     * @return Whether the manualOrderIndicator field is set.
     */
    @java.lang.Override
    public boolean hasManualOrderIndicator() {
      return ((bitField4_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int32 manualOrderIndicator = 136;</code>
     * @return The manualOrderIndicator.
     */
    @java.lang.Override
    public int getManualOrderIndicator() {
      return manualOrderIndicator_;
    }

    public static final int SUBMITTER_FIELD_NUMBER = 137;
    @SuppressWarnings("serial")
    private volatile java.lang.Object submitter_ = "";
    /**
     * <code>optional string submitter = 137;</code>
     * @return Whether the submitter field is set.
     */
    @java.lang.Override
    public boolean hasSubmitter() {
      return ((bitField4_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string submitter = 137;</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 = 137;</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;
      }
    }

    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, clientId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, orderId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt64(3, permId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt32(4, parentId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, action_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 6, totalQuantity_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt32(7, displaySize_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 8, orderType_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeDouble(9, lmtPrice_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeDouble(10, auxPrice_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 11, tif_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 12, account_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 13, settlingFirm_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 14, clearingAccount_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 15, clearingIntent_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeBool(16, allOrNone_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeBool(17, blockOrder_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeBool(18, hidden_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeBool(19, outsideRth_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeBool(20, sweepToFill_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeDouble(21, percentOffset_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        output.writeDouble(22, trailingPercent_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        output.writeDouble(23, trailStopPrice_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeInt32(24, minQty_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 25, goodAfterTime_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 26, goodTillDate_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 27, ocaGroup_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 28, orderRef_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 29, rule80A_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        output.writeInt32(30, ocaType_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        output.writeInt32(31, triggerMethod_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 32, activeStartTime_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 33, activeStopTime_);
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 34, faGroup_);
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 35, faMethod_);
      }
      if (((bitField1_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 36, faPercentage_);
      }
      if (((bitField1_ & 0x00000010) != 0)) {
        output.writeDouble(37, volatility_);
      }
      if (((bitField1_ & 0x00000020) != 0)) {
        output.writeInt32(38, volatilityType_);
      }
      if (((bitField1_ & 0x00000040) != 0)) {
        output.writeBool(39, continuousUpdate_);
      }
      if (((bitField1_ & 0x00000080) != 0)) {
        output.writeInt32(40, referencePriceType_);
      }
      if (((bitField1_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 41, deltaNeutralOrderType_);
      }
      if (((bitField1_ & 0x00000200) != 0)) {
        output.writeDouble(42, deltaNeutralAuxPrice_);
      }
      if (((bitField1_ & 0x00000400) != 0)) {
        output.writeInt32(43, deltaNeutralConId_);
      }
      if (((bitField1_ & 0x00000800) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 44, deltaNeutralOpenClose_);
      }
      if (((bitField1_ & 0x00001000) != 0)) {
        output.writeBool(45, deltaNeutralShortSale_);
      }
      if (((bitField1_ & 0x00002000) != 0)) {
        output.writeInt32(46, deltaNeutralShortSaleSlot_);
      }
      if (((bitField1_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 47, deltaNeutralDesignatedLocation_);
      }
      if (((bitField1_ & 0x00008000) != 0)) {
        output.writeInt32(48, scaleInitLevelSize_);
      }
      if (((bitField1_ & 0x00010000) != 0)) {
        output.writeInt32(49, scaleSubsLevelSize_);
      }
      if (((bitField1_ & 0x00020000) != 0)) {
        output.writeDouble(50, scalePriceIncrement_);
      }
      if (((bitField1_ & 0x00040000) != 0)) {
        output.writeDouble(51, scalePriceAdjustValue_);
      }
      if (((bitField1_ & 0x00080000) != 0)) {
        output.writeInt32(52, scalePriceAdjustInterval_);
      }
      if (((bitField1_ & 0x00100000) != 0)) {
        output.writeDouble(53, scaleProfitOffset_);
      }
      if (((bitField1_ & 0x00200000) != 0)) {
        output.writeBool(54, scaleAutoReset_);
      }
      if (((bitField1_ & 0x00400000) != 0)) {
        output.writeInt32(55, scaleInitPosition_);
      }
      if (((bitField1_ & 0x00800000) != 0)) {
        output.writeInt32(56, scaleInitFillQty_);
      }
      if (((bitField1_ & 0x01000000) != 0)) {
        output.writeBool(57, scaleRandomPercent_);
      }
      if (((bitField1_ & 0x02000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 58, scaleTable_);
      }
      if (((bitField1_ & 0x04000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 59, hedgeType_);
      }
      if (((bitField1_ & 0x08000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 60, hedgeParam_);
      }
      if (((bitField1_ & 0x10000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 61, algoStrategy_);
      }
      com.google.protobuf.GeneratedMessage
        .serializeStringMapTo(
          output,
          internalGetAlgoParams(),
          AlgoParamsDefaultEntryHolder.defaultEntry,
          62);
      if (((bitField1_ & 0x20000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 63, algoId_);
      }
      com.google.protobuf.GeneratedMessage
        .serializeStringMapTo(
          output,
          internalGetSmartComboRoutingParams(),
          SmartComboRoutingParamsDefaultEntryHolder.defaultEntry,
          64);
      if (((bitField1_ & 0x40000000) != 0)) {
        output.writeBool(65, whatIf_);
      }
      if (((bitField1_ & 0x80000000) != 0)) {
        output.writeBool(66, transmit_);
      }
      if (((bitField2_ & 0x00000001) != 0)) {
        output.writeBool(67, overridePercentageConstraints_);
      }
      if (((bitField2_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 68, openClose_);
      }
      if (((bitField2_ & 0x00000004) != 0)) {
        output.writeInt32(69, origin_);
      }
      if (((bitField2_ & 0x00000008) != 0)) {
        output.writeInt32(70, shortSaleSlot_);
      }
      if (((bitField2_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 71, designatedLocation_);
      }
      if (((bitField2_ & 0x00000020) != 0)) {
        output.writeInt32(72, exemptCode_);
      }
      if (((bitField2_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 73, deltaNeutralSettlingFirm_);
      }
      if (((bitField2_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 74, deltaNeutralClearingAccount_);
      }
      if (((bitField2_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 75, deltaNeutralClearingIntent_);
      }
      if (((bitField2_ & 0x00000200) != 0)) {
        output.writeDouble(76, discretionaryAmt_);
      }
      if (((bitField2_ & 0x00000400) != 0)) {
        output.writeBool(77, optOutSmartRouting_);
      }
      if (((bitField2_ & 0x00000800) != 0)) {
        output.writeDouble(78, startingPrice_);
      }
      if (((bitField2_ & 0x00001000) != 0)) {
        output.writeDouble(79, stockRefPrice_);
      }
      if (((bitField2_ & 0x00002000) != 0)) {
        output.writeDouble(80, delta_);
      }
      if (((bitField2_ & 0x00004000) != 0)) {
        output.writeDouble(81, stockRangeLower_);
      }
      if (((bitField2_ & 0x00008000) != 0)) {
        output.writeDouble(82, stockRangeUpper_);
      }
      if (((bitField2_ & 0x00010000) != 0)) {
        output.writeBool(83, notHeld_);
      }
      com.google.protobuf.GeneratedMessage
        .serializeStringMapTo(
          output,
          internalGetOrderMiscOptions(),
          OrderMiscOptionsDefaultEntryHolder.defaultEntry,
          84);
      if (((bitField2_ & 0x00020000) != 0)) {
        output.writeBool(85, solicited_);
      }
      if (((bitField2_ & 0x00040000) != 0)) {
        output.writeBool(86, randomizeSize_);
      }
      if (((bitField2_ & 0x00080000) != 0)) {
        output.writeBool(87, randomizePrice_);
      }
      if (((bitField2_ & 0x00100000) != 0)) {
        output.writeInt32(88, referenceContractId_);
      }
      if (((bitField2_ & 0x00200000) != 0)) {
        output.writeDouble(89, peggedChangeAmount_);
      }
      if (((bitField2_ & 0x00400000) != 0)) {
        output.writeBool(90, isPeggedChangeAmountDecrease_);
      }
      if (((bitField2_ & 0x00800000) != 0)) {
        output.writeDouble(91, referenceChangeAmount_);
      }
      if (((bitField2_ & 0x01000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 92, referenceExchangeId_);
      }
      if (((bitField2_ & 0x02000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 93, adjustedOrderType_);
      }
      if (((bitField2_ & 0x04000000) != 0)) {
        output.writeDouble(94, triggerPrice_);
      }
      if (((bitField2_ & 0x08000000) != 0)) {
        output.writeDouble(95, adjustedStopPrice_);
      }
      if (((bitField2_ & 0x10000000) != 0)) {
        output.writeDouble(96, adjustedStopLimitPrice_);
      }
      if (((bitField2_ & 0x20000000) != 0)) {
        output.writeDouble(97, adjustedTrailingAmount_);
      }
      if (((bitField2_ & 0x40000000) != 0)) {
        output.writeInt32(98, adjustableTrailingUnit_);
      }
      if (((bitField2_ & 0x80000000) != 0)) {
        output.writeDouble(99, lmtPriceOffset_);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(100, conditions_.get(i));
      }
      if (((bitField3_ & 0x00000001) != 0)) {
        output.writeBool(101, conditionsCancelOrder_);
      }
      if (((bitField3_ & 0x00000002) != 0)) {
        output.writeBool(102, conditionsIgnoreRth_);
      }
      if (((bitField3_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 103, modelCode_);
      }
      if (((bitField3_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 104, extOperator_);
      }
      if (((bitField3_ & 0x00000010) != 0)) {
        output.writeMessage(105, getSoftDollarTier());
      }
      if (((bitField3_ & 0x00000020) != 0)) {
        output.writeDouble(106, cashQty_);
      }
      if (((bitField3_ & 0x00000040) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 107, mifid2DecisionMaker_);
      }
      if (((bitField3_ & 0x00000080) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 108, mifid2DecisionAlgo_);
      }
      if (((bitField3_ & 0x00000100) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 109, mifid2ExecutionTrader_);
      }
      if (((bitField3_ & 0x00000200) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 110, mifid2ExecutionAlgo_);
      }
      if (((bitField3_ & 0x00000400) != 0)) {
        output.writeBool(111, dontUseAutoPriceForHedge_);
      }
      if (((bitField3_ & 0x00000800) != 0)) {
        output.writeBool(112, isOmsContainer_);
      }
      if (((bitField3_ & 0x00001000) != 0)) {
        output.writeBool(113, discretionaryUpToLimitPrice_);
      }
      if (((bitField3_ & 0x00002000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 114, autoCancelDate_);
      }
      if (((bitField3_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 115, filledQuantity_);
      }
      if (((bitField3_ & 0x00008000) != 0)) {
        output.writeInt32(116, refFuturesConId_);
      }
      if (((bitField3_ & 0x00010000) != 0)) {
        output.writeBool(117, autoCancelParent_);
      }
      if (((bitField3_ & 0x00020000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 118, shareholder_);
      }
      if (((bitField3_ & 0x00040000) != 0)) {
        output.writeBool(119, imbalanceOnly_);
      }
      if (((bitField3_ & 0x00080000) != 0)) {
        output.writeBool(120, routeMarketableToBbo_);
      }
      if (((bitField3_ & 0x00100000) != 0)) {
        output.writeInt64(121, parentPermId_);
      }
      if (((bitField3_ & 0x00200000) != 0)) {
        output.writeInt32(122, usePriceMgmtAlgo_);
      }
      if (((bitField3_ & 0x00400000) != 0)) {
        output.writeInt32(123, duration_);
      }
      if (((bitField3_ & 0x00800000) != 0)) {
        output.writeInt32(124, postToAts_);
      }
      if (((bitField3_ & 0x01000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 125, advancedErrorOverride_);
      }
      if (((bitField3_ & 0x02000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 126, manualOrderTime_);
      }
      if (((bitField3_ & 0x04000000) != 0)) {
        output.writeInt32(127, minTradeQty_);
      }
      if (((bitField3_ & 0x08000000) != 0)) {
        output.writeInt32(128, minCompeteSize_);
      }
      if (((bitField3_ & 0x10000000) != 0)) {
        output.writeDouble(129, competeAgainstBestOffset_);
      }
      if (((bitField3_ & 0x20000000) != 0)) {
        output.writeDouble(130, midOffsetAtWhole_);
      }
      if (((bitField3_ & 0x40000000) != 0)) {
        output.writeDouble(131, midOffsetAtHalf_);
      }
      if (((bitField3_ & 0x80000000) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 132, customerAccount_);
      }
      if (((bitField4_ & 0x00000001) != 0)) {
        output.writeBool(133, professionalCustomer_);
      }
      if (((bitField4_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 134, bondAccruedInterest_);
      }
      if (((bitField4_ & 0x00000004) != 0)) {
        output.writeBool(135, includeOvernight_);
      }
      if (((bitField4_ & 0x00000008) != 0)) {
        output.writeInt32(136, manualOrderIndicator_);
      }
      if (((bitField4_ & 0x00000010) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 137, submitter_);
      }
      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, clientId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, orderId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, permId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, parentId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, action_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, totalQuantity_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, displaySize_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(8, orderType_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(9, lmtPrice_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(10, auxPrice_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(11, tif_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(12, account_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(13, settlingFirm_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(14, clearingAccount_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(15, clearingIntent_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(16, allOrNone_);
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(17, blockOrder_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(18, hidden_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, outsideRth_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(20, sweepToFill_);
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(21, percentOffset_);
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(22, trailingPercent_);
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(23, trailStopPrice_);
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(24, minQty_);
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(25, goodAfterTime_);
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(26, goodTillDate_);
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(27, ocaGroup_);
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(28, orderRef_);
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(29, rule80A_);
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(30, ocaType_);
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(31, triggerMethod_);
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(32, activeStartTime_);
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(33, activeStopTime_);
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(34, faGroup_);
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(35, faMethod_);
      }
      if (((bitField1_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(36, faPercentage_);
      }
      if (((bitField1_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(37, volatility_);
      }
      if (((bitField1_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(38, volatilityType_);
      }
      if (((bitField1_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(39, continuousUpdate_);
      }
      if (((bitField1_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(40, referencePriceType_);
      }
      if (((bitField1_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(41, deltaNeutralOrderType_);
      }
      if (((bitField1_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(42, deltaNeutralAuxPrice_);
      }
      if (((bitField1_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(43, deltaNeutralConId_);
      }
      if (((bitField1_ & 0x00000800) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(44, deltaNeutralOpenClose_);
      }
      if (((bitField1_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(45, deltaNeutralShortSale_);
      }
      if (((bitField1_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(46, deltaNeutralShortSaleSlot_);
      }
      if (((bitField1_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(47, deltaNeutralDesignatedLocation_);
      }
      if (((bitField1_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(48, scaleInitLevelSize_);
      }
      if (((bitField1_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(49, scaleSubsLevelSize_);
      }
      if (((bitField1_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(50, scalePriceIncrement_);
      }
      if (((bitField1_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(51, scalePriceAdjustValue_);
      }
      if (((bitField1_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(52, scalePriceAdjustInterval_);
      }
      if (((bitField1_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(53, scaleProfitOffset_);
      }
      if (((bitField1_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(54, scaleAutoReset_);
      }
      if (((bitField1_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(55, scaleInitPosition_);
      }
      if (((bitField1_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(56, scaleInitFillQty_);
      }
      if (((bitField1_ & 0x01000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(57, scaleRandomPercent_);
      }
      if (((bitField1_ & 0x02000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(58, scaleTable_);
      }
      if (((bitField1_ & 0x04000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(59, hedgeType_);
      }
      if (((bitField1_ & 0x08000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(60, hedgeParam_);
      }
      if (((bitField1_ & 0x10000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(61, algoStrategy_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetAlgoParams().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        algoParams__ = AlgoParamsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(62, algoParams__);
      }
      if (((bitField1_ & 0x20000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(63, algoId_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetSmartComboRoutingParams().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        smartComboRoutingParams__ = SmartComboRoutingParamsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(64, smartComboRoutingParams__);
      }
      if (((bitField1_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(65, whatIf_);
      }
      if (((bitField1_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(66, transmit_);
      }
      if (((bitField2_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(67, overridePercentageConstraints_);
      }
      if (((bitField2_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(68, openClose_);
      }
      if (((bitField2_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(69, origin_);
      }
      if (((bitField2_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(70, shortSaleSlot_);
      }
      if (((bitField2_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(71, designatedLocation_);
      }
      if (((bitField2_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(72, exemptCode_);
      }
      if (((bitField2_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(73, deltaNeutralSettlingFirm_);
      }
      if (((bitField2_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(74, deltaNeutralClearingAccount_);
      }
      if (((bitField2_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(75, deltaNeutralClearingIntent_);
      }
      if (((bitField2_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(76, discretionaryAmt_);
      }
      if (((bitField2_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(77, optOutSmartRouting_);
      }
      if (((bitField2_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(78, startingPrice_);
      }
      if (((bitField2_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(79, stockRefPrice_);
      }
      if (((bitField2_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(80, delta_);
      }
      if (((bitField2_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(81, stockRangeLower_);
      }
      if (((bitField2_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(82, stockRangeUpper_);
      }
      if (((bitField2_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(83, notHeld_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetOrderMiscOptions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        orderMiscOptions__ = OrderMiscOptionsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(84, orderMiscOptions__);
      }
      if (((bitField2_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(85, solicited_);
      }
      if (((bitField2_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(86, randomizeSize_);
      }
      if (((bitField2_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(87, randomizePrice_);
      }
      if (((bitField2_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(88, referenceContractId_);
      }
      if (((bitField2_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(89, peggedChangeAmount_);
      }
      if (((bitField2_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(90, isPeggedChangeAmountDecrease_);
      }
      if (((bitField2_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(91, referenceChangeAmount_);
      }
      if (((bitField2_ & 0x01000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(92, referenceExchangeId_);
      }
      if (((bitField2_ & 0x02000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(93, adjustedOrderType_);
      }
      if (((bitField2_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(94, triggerPrice_);
      }
      if (((bitField2_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(95, adjustedStopPrice_);
      }
      if (((bitField2_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(96, adjustedStopLimitPrice_);
      }
      if (((bitField2_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(97, adjustedTrailingAmount_);
      }
      if (((bitField2_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(98, adjustableTrailingUnit_);
      }
      if (((bitField2_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(99, lmtPriceOffset_);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(100, conditions_.get(i));
      }
      if (((bitField3_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(101, conditionsCancelOrder_);
      }
      if (((bitField3_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(102, conditionsIgnoreRth_);
      }
      if (((bitField3_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(103, modelCode_);
      }
      if (((bitField3_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(104, extOperator_);
      }
      if (((bitField3_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(105, getSoftDollarTier());
      }
      if (((bitField3_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(106, cashQty_);
      }
      if (((bitField3_ & 0x00000040) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(107, mifid2DecisionMaker_);
      }
      if (((bitField3_ & 0x00000080) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(108, mifid2DecisionAlgo_);
      }
      if (((bitField3_ & 0x00000100) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(109, mifid2ExecutionTrader_);
      }
      if (((bitField3_ & 0x00000200) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(110, mifid2ExecutionAlgo_);
      }
      if (((bitField3_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(111, dontUseAutoPriceForHedge_);
      }
      if (((bitField3_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(112, isOmsContainer_);
      }
      if (((bitField3_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(113, discretionaryUpToLimitPrice_);
      }
      if (((bitField3_ & 0x00002000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(114, autoCancelDate_);
      }
      if (((bitField3_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(115, filledQuantity_);
      }
      if (((bitField3_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(116, refFuturesConId_);
      }
      if (((bitField3_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(117, autoCancelParent_);
      }
      if (((bitField3_ & 0x00020000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(118, shareholder_);
      }
      if (((bitField3_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(119, imbalanceOnly_);
      }
      if (((bitField3_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(120, routeMarketableToBbo_);
      }
      if (((bitField3_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(121, parentPermId_);
      }
      if (((bitField3_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(122, usePriceMgmtAlgo_);
      }
      if (((bitField3_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(123, duration_);
      }
      if (((bitField3_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(124, postToAts_);
      }
      if (((bitField3_ & 0x01000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(125, advancedErrorOverride_);
      }
      if (((bitField3_ & 0x02000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(126, manualOrderTime_);
      }
      if (((bitField3_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(127, minTradeQty_);
      }
      if (((bitField3_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(128, minCompeteSize_);
      }
      if (((bitField3_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(129, competeAgainstBestOffset_);
      }
      if (((bitField3_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(130, midOffsetAtWhole_);
      }
      if (((bitField3_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(131, midOffsetAtHalf_);
      }
      if (((bitField3_ & 0x80000000) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(132, customerAccount_);
      }
      if (((bitField4_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(133, professionalCustomer_);
      }
      if (((bitField4_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(134, bondAccruedInterest_);
      }
      if (((bitField4_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(135, includeOvernight_);
      }
      if (((bitField4_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(136, manualOrderIndicator_);
      }
      if (((bitField4_ & 0x00000010) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(137, submitter_);
      }
      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.OrderProto.Order)) {
        return super.equals(obj);
      }
      com.ib.client.protobuf.OrderProto.Order other = (com.ib.client.protobuf.OrderProto.Order) obj;

      if (hasClientId() != other.hasClientId()) return false;
      if (hasClientId()) {
        if (getClientId()
            != other.getClientId()) return false;
      }
      if (hasOrderId() != other.hasOrderId()) return false;
      if (hasOrderId()) {
        if (getOrderId()
            != other.getOrderId()) return false;
      }
      if (hasPermId() != other.hasPermId()) return false;
      if (hasPermId()) {
        if (getPermId()
            != other.getPermId()) return false;
      }
      if (hasParentId() != other.hasParentId()) return false;
      if (hasParentId()) {
        if (getParentId()
            != other.getParentId()) return false;
      }
      if (hasAction() != other.hasAction()) return false;
      if (hasAction()) {
        if (!getAction()
            .equals(other.getAction())) return false;
      }
      if (hasTotalQuantity() != other.hasTotalQuantity()) return false;
      if (hasTotalQuantity()) {
        if (!getTotalQuantity()
            .equals(other.getTotalQuantity())) return false;
      }
      if (hasDisplaySize() != other.hasDisplaySize()) return false;
      if (hasDisplaySize()) {
        if (getDisplaySize()
            != other.getDisplaySize()) return false;
      }
      if (hasOrderType() != other.hasOrderType()) return false;
      if (hasOrderType()) {
        if (!getOrderType()
            .equals(other.getOrderType())) return false;
      }
      if (hasLmtPrice() != other.hasLmtPrice()) return false;
      if (hasLmtPrice()) {
        if (java.lang.Double.doubleToLongBits(getLmtPrice())
            != java.lang.Double.doubleToLongBits(
                other.getLmtPrice())) return false;
      }
      if (hasAuxPrice() != other.hasAuxPrice()) return false;
      if (hasAuxPrice()) {
        if (java.lang.Double.doubleToLongBits(getAuxPrice())
            != java.lang.Double.doubleToLongBits(
                other.getAuxPrice())) return false;
      }
      if (hasTif() != other.hasTif()) return false;
      if (hasTif()) {
        if (!getTif()
            .equals(other.getTif())) return false;
      }
      if (hasAccount() != other.hasAccount()) return false;
      if (hasAccount()) {
        if (!getAccount()
            .equals(other.getAccount())) return false;
      }
      if (hasSettlingFirm() != other.hasSettlingFirm()) return false;
      if (hasSettlingFirm()) {
        if (!getSettlingFirm()
            .equals(other.getSettlingFirm())) return false;
      }
      if (hasClearingAccount() != other.hasClearingAccount()) return false;
      if (hasClearingAccount()) {
        if (!getClearingAccount()
            .equals(other.getClearingAccount())) return false;
      }
      if (hasClearingIntent() != other.hasClearingIntent()) return false;
      if (hasClearingIntent()) {
        if (!getClearingIntent()
            .equals(other.getClearingIntent())) return false;
      }
      if (hasAllOrNone() != other.hasAllOrNone()) return false;
      if (hasAllOrNone()) {
        if (getAllOrNone()
            != other.getAllOrNone()) return false;
      }
      if (hasBlockOrder() != other.hasBlockOrder()) return false;
      if (hasBlockOrder()) {
        if (getBlockOrder()
            != other.getBlockOrder()) return false;
      }
      if (hasHidden() != other.hasHidden()) return false;
      if (hasHidden()) {
        if (getHidden()
            != other.getHidden()) return false;
      }
      if (hasOutsideRth() != other.hasOutsideRth()) return false;
      if (hasOutsideRth()) {
        if (getOutsideRth()
            != other.getOutsideRth()) return false;
      }
      if (hasSweepToFill() != other.hasSweepToFill()) return false;
      if (hasSweepToFill()) {
        if (getSweepToFill()
            != other.getSweepToFill()) return false;
      }
      if (hasPercentOffset() != other.hasPercentOffset()) return false;
      if (hasPercentOffset()) {
        if (java.lang.Double.doubleToLongBits(getPercentOffset())
            != java.lang.Double.doubleToLongBits(
                other.getPercentOffset())) return false;
      }
      if (hasTrailingPercent() != other.hasTrailingPercent()) return false;
      if (hasTrailingPercent()) {
        if (java.lang.Double.doubleToLongBits(getTrailingPercent())
            != java.lang.Double.doubleToLongBits(
                other.getTrailingPercent())) return false;
      }
      if (hasTrailStopPrice() != other.hasTrailStopPrice()) return false;
      if (hasTrailStopPrice()) {
        if (java.lang.Double.doubleToLongBits(getTrailStopPrice())
            != java.lang.Double.doubleToLongBits(
                other.getTrailStopPrice())) return false;
      }
      if (hasMinQty() != other.hasMinQty()) return false;
      if (hasMinQty()) {
        if (getMinQty()
            != other.getMinQty()) return false;
      }
      if (hasGoodAfterTime() != other.hasGoodAfterTime()) return false;
      if (hasGoodAfterTime()) {
        if (!getGoodAfterTime()
            .equals(other.getGoodAfterTime())) return false;
      }
      if (hasGoodTillDate() != other.hasGoodTillDate()) return false;
      if (hasGoodTillDate()) {
        if (!getGoodTillDate()
            .equals(other.getGoodTillDate())) return false;
      }
      if (hasOcaGroup() != other.hasOcaGroup()) return false;
      if (hasOcaGroup()) {
        if (!getOcaGroup()
            .equals(other.getOcaGroup())) return false;
      }
      if (hasOrderRef() != other.hasOrderRef()) return false;
      if (hasOrderRef()) {
        if (!getOrderRef()
            .equals(other.getOrderRef())) return false;
      }
      if (hasRule80A() != other.hasRule80A()) return false;
      if (hasRule80A()) {
        if (!getRule80A()
            .equals(other.getRule80A())) return false;
      }
      if (hasOcaType() != other.hasOcaType()) return false;
      if (hasOcaType()) {
        if (getOcaType()
            != other.getOcaType()) return false;
      }
      if (hasTriggerMethod() != other.hasTriggerMethod()) return false;
      if (hasTriggerMethod()) {
        if (getTriggerMethod()
            != other.getTriggerMethod()) return false;
      }
      if (hasActiveStartTime() != other.hasActiveStartTime()) return false;
      if (hasActiveStartTime()) {
        if (!getActiveStartTime()
            .equals(other.getActiveStartTime())) return false;
      }
      if (hasActiveStopTime() != other.hasActiveStopTime()) return false;
      if (hasActiveStopTime()) {
        if (!getActiveStopTime()
            .equals(other.getActiveStopTime())) return false;
      }
      if (hasFaGroup() != other.hasFaGroup()) return false;
      if (hasFaGroup()) {
        if (!getFaGroup()
            .equals(other.getFaGroup())) return false;
      }
      if (hasFaMethod() != other.hasFaMethod()) return false;
      if (hasFaMethod()) {
        if (!getFaMethod()
            .equals(other.getFaMethod())) return false;
      }
      if (hasFaPercentage() != other.hasFaPercentage()) return false;
      if (hasFaPercentage()) {
        if (!getFaPercentage()
            .equals(other.getFaPercentage())) return false;
      }
      if (hasVolatility() != other.hasVolatility()) return false;
      if (hasVolatility()) {
        if (java.lang.Double.doubleToLongBits(getVolatility())
            != java.lang.Double.doubleToLongBits(
                other.getVolatility())) return false;
      }
      if (hasVolatilityType() != other.hasVolatilityType()) return false;
      if (hasVolatilityType()) {
        if (getVolatilityType()
            != other.getVolatilityType()) return false;
      }
      if (hasContinuousUpdate() != other.hasContinuousUpdate()) return false;
      if (hasContinuousUpdate()) {
        if (getContinuousUpdate()
            != other.getContinuousUpdate()) return false;
      }
      if (hasReferencePriceType() != other.hasReferencePriceType()) return false;
      if (hasReferencePriceType()) {
        if (getReferencePriceType()
            != other.getReferencePriceType()) return false;
      }
      if (hasDeltaNeutralOrderType() != other.hasDeltaNeutralOrderType()) return false;
      if (hasDeltaNeutralOrderType()) {
        if (!getDeltaNeutralOrderType()
            .equals(other.getDeltaNeutralOrderType())) return false;
      }
      if (hasDeltaNeutralAuxPrice() != other.hasDeltaNeutralAuxPrice()) return false;
      if (hasDeltaNeutralAuxPrice()) {
        if (java.lang.Double.doubleToLongBits(getDeltaNeutralAuxPrice())
            != java.lang.Double.doubleToLongBits(
                other.getDeltaNeutralAuxPrice())) return false;
      }
      if (hasDeltaNeutralConId() != other.hasDeltaNeutralConId()) return false;
      if (hasDeltaNeutralConId()) {
        if (getDeltaNeutralConId()
            != other.getDeltaNeutralConId()) return false;
      }
      if (hasDeltaNeutralOpenClose() != other.hasDeltaNeutralOpenClose()) return false;
      if (hasDeltaNeutralOpenClose()) {
        if (!getDeltaNeutralOpenClose()
            .equals(other.getDeltaNeutralOpenClose())) return false;
      }
      if (hasDeltaNeutralShortSale() != other.hasDeltaNeutralShortSale()) return false;
      if (hasDeltaNeutralShortSale()) {
        if (getDeltaNeutralShortSale()
            != other.getDeltaNeutralShortSale()) return false;
      }
      if (hasDeltaNeutralShortSaleSlot() != other.hasDeltaNeutralShortSaleSlot()) return false;
      if (hasDeltaNeutralShortSaleSlot()) {
        if (getDeltaNeutralShortSaleSlot()
            != other.getDeltaNeutralShortSaleSlot()) return false;
      }
      if (hasDeltaNeutralDesignatedLocation() != other.hasDeltaNeutralDesignatedLocation()) return false;
      if (hasDeltaNeutralDesignatedLocation()) {
        if (!getDeltaNeutralDesignatedLocation()
            .equals(other.getDeltaNeutralDesignatedLocation())) return false;
      }
      if (hasScaleInitLevelSize() != other.hasScaleInitLevelSize()) return false;
      if (hasScaleInitLevelSize()) {
        if (getScaleInitLevelSize()
            != other.getScaleInitLevelSize()) return false;
      }
      if (hasScaleSubsLevelSize() != other.hasScaleSubsLevelSize()) return false;
      if (hasScaleSubsLevelSize()) {
        if (getScaleSubsLevelSize()
            != other.getScaleSubsLevelSize()) return false;
      }
      if (hasScalePriceIncrement() != other.hasScalePriceIncrement()) return false;
      if (hasScalePriceIncrement()) {
        if (java.lang.Double.doubleToLongBits(getScalePriceIncrement())
            != java.lang.Double.doubleToLongBits(
                other.getScalePriceIncrement())) return false;
      }
      if (hasScalePriceAdjustValue() != other.hasScalePriceAdjustValue()) return false;
      if (hasScalePriceAdjustValue()) {
        if (java.lang.Double.doubleToLongBits(getScalePriceAdjustValue())
            != java.lang.Double.doubleToLongBits(
                other.getScalePriceAdjustValue())) return false;
      }
      if (hasScalePriceAdjustInterval() != other.hasScalePriceAdjustInterval()) return false;
      if (hasScalePriceAdjustInterval()) {
        if (getScalePriceAdjustInterval()
            != other.getScalePriceAdjustInterval()) return false;
      }
      if (hasScaleProfitOffset() != other.hasScaleProfitOffset()) return false;
      if (hasScaleProfitOffset()) {
        if (java.lang.Double.doubleToLongBits(getScaleProfitOffset())
            != java.lang.Double.doubleToLongBits(
                other.getScaleProfitOffset())) return false;
      }
      if (hasScaleAutoReset() != other.hasScaleAutoReset()) return false;
      if (hasScaleAutoReset()) {
        if (getScaleAutoReset()
            != other.getScaleAutoReset()) return false;
      }
      if (hasScaleInitPosition() != other.hasScaleInitPosition()) return false;
      if (hasScaleInitPosition()) {
        if (getScaleInitPosition()
            != other.getScaleInitPosition()) return false;
      }
      if (hasScaleInitFillQty() != other.hasScaleInitFillQty()) return false;
      if (hasScaleInitFillQty()) {
        if (getScaleInitFillQty()
            != other.getScaleInitFillQty()) return false;
      }
      if (hasScaleRandomPercent() != other.hasScaleRandomPercent()) return false;
      if (hasScaleRandomPercent()) {
        if (getScaleRandomPercent()
            != other.getScaleRandomPercent()) return false;
      }
      if (hasScaleTable() != other.hasScaleTable()) return false;
      if (hasScaleTable()) {
        if (!getScaleTable()
            .equals(other.getScaleTable())) return false;
      }
      if (hasHedgeType() != other.hasHedgeType()) return false;
      if (hasHedgeType()) {
        if (!getHedgeType()
            .equals(other.getHedgeType())) return false;
      }
      if (hasHedgeParam() != other.hasHedgeParam()) return false;
      if (hasHedgeParam()) {
        if (!getHedgeParam()
            .equals(other.getHedgeParam())) return false;
      }
      if (hasAlgoStrategy() != other.hasAlgoStrategy()) return false;
      if (hasAlgoStrategy()) {
        if (!getAlgoStrategy()
            .equals(other.getAlgoStrategy())) return false;
      }
      if (!internalGetAlgoParams().equals(
          other.internalGetAlgoParams())) return false;
      if (hasAlgoId() != other.hasAlgoId()) return false;
      if (hasAlgoId()) {
        if (!getAlgoId()
            .equals(other.getAlgoId())) return false;
      }
      if (!internalGetSmartComboRoutingParams().equals(
          other.internalGetSmartComboRoutingParams())) return false;
      if (hasWhatIf() != other.hasWhatIf()) return false;
      if (hasWhatIf()) {
        if (getWhatIf()
            != other.getWhatIf()) return false;
      }
      if (hasTransmit() != other.hasTransmit()) return false;
      if (hasTransmit()) {
        if (getTransmit()
            != other.getTransmit()) return false;
      }
      if (hasOverridePercentageConstraints() != other.hasOverridePercentageConstraints()) return false;
      if (hasOverridePercentageConstraints()) {
        if (getOverridePercentageConstraints()
            != other.getOverridePercentageConstraints()) return false;
      }
      if (hasOpenClose() != other.hasOpenClose()) return false;
      if (hasOpenClose()) {
        if (!getOpenClose()
            .equals(other.getOpenClose())) return false;
      }
      if (hasOrigin() != other.hasOrigin()) return false;
      if (hasOrigin()) {
        if (getOrigin()
            != other.getOrigin()) return false;
      }
      if (hasShortSaleSlot() != other.hasShortSaleSlot()) return false;
      if (hasShortSaleSlot()) {
        if (getShortSaleSlot()
            != other.getShortSaleSlot()) return false;
      }
      if (hasDesignatedLocation() != other.hasDesignatedLocation()) return false;
      if (hasDesignatedLocation()) {
        if (!getDesignatedLocation()
            .equals(other.getDesignatedLocation())) return false;
      }
      if (hasExemptCode() != other.hasExemptCode()) return false;
      if (hasExemptCode()) {
        if (getExemptCode()
            != other.getExemptCode()) return false;
      }
      if (hasDeltaNeutralSettlingFirm() != other.hasDeltaNeutralSettlingFirm()) return false;
      if (hasDeltaNeutralSettlingFirm()) {
        if (!getDeltaNeutralSettlingFirm()
            .equals(other.getDeltaNeutralSettlingFirm())) return false;
      }
      if (hasDeltaNeutralClearingAccount() != other.hasDeltaNeutralClearingAccount()) return false;
      if (hasDeltaNeutralClearingAccount()) {
        if (!getDeltaNeutralClearingAccount()
            .equals(other.getDeltaNeutralClearingAccount())) return false;
      }
      if (hasDeltaNeutralClearingIntent() != other.hasDeltaNeutralClearingIntent()) return false;
      if (hasDeltaNeutralClearingIntent()) {
        if (!getDeltaNeutralClearingIntent()
            .equals(other.getDeltaNeutralClearingIntent())) return false;
      }
      if (hasDiscretionaryAmt() != other.hasDiscretionaryAmt()) return false;
      if (hasDiscretionaryAmt()) {
        if (java.lang.Double.doubleToLongBits(getDiscretionaryAmt())
            != java.lang.Double.doubleToLongBits(
                other.getDiscretionaryAmt())) return false;
      }
      if (hasOptOutSmartRouting() != other.hasOptOutSmartRouting()) return false;
      if (hasOptOutSmartRouting()) {
        if (getOptOutSmartRouting()
            != other.getOptOutSmartRouting()) return false;
      }
      if (hasStartingPrice() != other.hasStartingPrice()) return false;
      if (hasStartingPrice()) {
        if (java.lang.Double.doubleToLongBits(getStartingPrice())
            != java.lang.Double.doubleToLongBits(
                other.getStartingPrice())) return false;
      }
      if (hasStockRefPrice() != other.hasStockRefPrice()) return false;
      if (hasStockRefPrice()) {
        if (java.lang.Double.doubleToLongBits(getStockRefPrice())
            != java.lang.Double.doubleToLongBits(
                other.getStockRefPrice())) return false;
      }
      if (hasDelta() != other.hasDelta()) return false;
      if (hasDelta()) {
        if (java.lang.Double.doubleToLongBits(getDelta())
            != java.lang.Double.doubleToLongBits(
                other.getDelta())) return false;
      }
      if (hasStockRangeLower() != other.hasStockRangeLower()) return false;
      if (hasStockRangeLower()) {
        if (java.lang.Double.doubleToLongBits(getStockRangeLower())
            != java.lang.Double.doubleToLongBits(
                other.getStockRangeLower())) return false;
      }
      if (hasStockRangeUpper() != other.hasStockRangeUpper()) return false;
      if (hasStockRangeUpper()) {
        if (java.lang.Double.doubleToLongBits(getStockRangeUpper())
            != java.lang.Double.doubleToLongBits(
                other.getStockRangeUpper())) return false;
      }
      if (hasNotHeld() != other.hasNotHeld()) return false;
      if (hasNotHeld()) {
        if (getNotHeld()
            != other.getNotHeld()) return false;
      }
      if (!internalGetOrderMiscOptions().equals(
          other.internalGetOrderMiscOptions())) return false;
      if (hasSolicited() != other.hasSolicited()) return false;
      if (hasSolicited()) {
        if (getSolicited()
            != other.getSolicited()) return false;
      }
      if (hasRandomizeSize() != other.hasRandomizeSize()) return false;
      if (hasRandomizeSize()) {
        if (getRandomizeSize()
            != other.getRandomizeSize()) return false;
      }
      if (hasRandomizePrice() != other.hasRandomizePrice()) return false;
      if (hasRandomizePrice()) {
        if (getRandomizePrice()
            != other.getRandomizePrice()) return false;
      }
      if (hasReferenceContractId() != other.hasReferenceContractId()) return false;
      if (hasReferenceContractId()) {
        if (getReferenceContractId()
            != other.getReferenceContractId()) return false;
      }
      if (hasPeggedChangeAmount() != other.hasPeggedChangeAmount()) return false;
      if (hasPeggedChangeAmount()) {
        if (java.lang.Double.doubleToLongBits(getPeggedChangeAmount())
            != java.lang.Double.doubleToLongBits(
                other.getPeggedChangeAmount())) return false;
      }
      if (hasIsPeggedChangeAmountDecrease() != other.hasIsPeggedChangeAmountDecrease()) return false;
      if (hasIsPeggedChangeAmountDecrease()) {
        if (getIsPeggedChangeAmountDecrease()
            != other.getIsPeggedChangeAmountDecrease()) return false;
      }
      if (hasReferenceChangeAmount() != other.hasReferenceChangeAmount()) return false;
      if (hasReferenceChangeAmount()) {
        if (java.lang.Double.doubleToLongBits(getReferenceChangeAmount())
            != java.lang.Double.doubleToLongBits(
                other.getReferenceChangeAmount())) return false;
      }
      if (hasReferenceExchangeId() != other.hasReferenceExchangeId()) return false;
      if (hasReferenceExchangeId()) {
        if (!getReferenceExchangeId()
            .equals(other.getReferenceExchangeId())) return false;
      }
      if (hasAdjustedOrderType() != other.hasAdjustedOrderType()) return false;
      if (hasAdjustedOrderType()) {
        if (!getAdjustedOrderType()
            .equals(other.getAdjustedOrderType())) return false;
      }
      if (hasTriggerPrice() != other.hasTriggerPrice()) return false;
      if (hasTriggerPrice()) {
        if (java.lang.Double.doubleToLongBits(getTriggerPrice())
            != java.lang.Double.doubleToLongBits(
                other.getTriggerPrice())) return false;
      }
      if (hasAdjustedStopPrice() != other.hasAdjustedStopPrice()) return false;
      if (hasAdjustedStopPrice()) {
        if (java.lang.Double.doubleToLongBits(getAdjustedStopPrice())
            != java.lang.Double.doubleToLongBits(
                other.getAdjustedStopPrice())) return false;
      }
      if (hasAdjustedStopLimitPrice() != other.hasAdjustedStopLimitPrice()) return false;
      if (hasAdjustedStopLimitPrice()) {
        if (java.lang.Double.doubleToLongBits(getAdjustedStopLimitPrice())
            != java.lang.Double.doubleToLongBits(
                other.getAdjustedStopLimitPrice())) return false;
      }
      if (hasAdjustedTrailingAmount() != other.hasAdjustedTrailingAmount()) return false;
      if (hasAdjustedTrailingAmount()) {
        if (java.lang.Double.doubleToLongBits(getAdjustedTrailingAmount())
            != java.lang.Double.doubleToLongBits(
                other.getAdjustedTrailingAmount())) return false;
      }
      if (hasAdjustableTrailingUnit() != other.hasAdjustableTrailingUnit()) return false;
      if (hasAdjustableTrailingUnit()) {
        if (getAdjustableTrailingUnit()
            != other.getAdjustableTrailingUnit()) return false;
      }
      if (hasLmtPriceOffset() != other.hasLmtPriceOffset()) return false;
      if (hasLmtPriceOffset()) {
        if (java.lang.Double.doubleToLongBits(getLmtPriceOffset())
            != java.lang.Double.doubleToLongBits(
                other.getLmtPriceOffset())) return false;
      }
      if (!getConditionsList()
          .equals(other.getConditionsList())) return false;
      if (hasConditionsCancelOrder() != other.hasConditionsCancelOrder()) return false;
      if (hasConditionsCancelOrder()) {
        if (getConditionsCancelOrder()
            != other.getConditionsCancelOrder()) return false;
      }
      if (hasConditionsIgnoreRth() != other.hasConditionsIgnoreRth()) return false;
      if (hasConditionsIgnoreRth()) {
        if (getConditionsIgnoreRth()
            != other.getConditionsIgnoreRth()) return false;
      }
      if (hasModelCode() != other.hasModelCode()) return false;
      if (hasModelCode()) {
        if (!getModelCode()
            .equals(other.getModelCode())) return false;
      }
      if (hasExtOperator() != other.hasExtOperator()) return false;
      if (hasExtOperator()) {
        if (!getExtOperator()
            .equals(other.getExtOperator())) return false;
      }
      if (hasSoftDollarTier() != other.hasSoftDollarTier()) return false;
      if (hasSoftDollarTier()) {
        if (!getSoftDollarTier()
            .equals(other.getSoftDollarTier())) return false;
      }
      if (hasCashQty() != other.hasCashQty()) return false;
      if (hasCashQty()) {
        if (java.lang.Double.doubleToLongBits(getCashQty())
            != java.lang.Double.doubleToLongBits(
                other.getCashQty())) return false;
      }
      if (hasMifid2DecisionMaker() != other.hasMifid2DecisionMaker()) return false;
      if (hasMifid2DecisionMaker()) {
        if (!getMifid2DecisionMaker()
            .equals(other.getMifid2DecisionMaker())) return false;
      }
      if (hasMifid2DecisionAlgo() != other.hasMifid2DecisionAlgo()) return false;
      if (hasMifid2DecisionAlgo()) {
        if (!getMifid2DecisionAlgo()
            .equals(other.getMifid2DecisionAlgo())) return false;
      }
      if (hasMifid2ExecutionTrader() != other.hasMifid2ExecutionTrader()) return false;
      if (hasMifid2ExecutionTrader()) {
        if (!getMifid2ExecutionTrader()
            .equals(other.getMifid2ExecutionTrader())) return false;
      }
      if (hasMifid2ExecutionAlgo() != other.hasMifid2ExecutionAlgo()) return false;
      if (hasMifid2ExecutionAlgo()) {
        if (!getMifid2ExecutionAlgo()
            .equals(other.getMifid2ExecutionAlgo())) return false;
      }
      if (hasDontUseAutoPriceForHedge() != other.hasDontUseAutoPriceForHedge()) return false;
      if (hasDontUseAutoPriceForHedge()) {
        if (getDontUseAutoPriceForHedge()
            != other.getDontUseAutoPriceForHedge()) return false;
      }
      if (hasIsOmsContainer() != other.hasIsOmsContainer()) return false;
      if (hasIsOmsContainer()) {
        if (getIsOmsContainer()
            != other.getIsOmsContainer()) return false;
      }
      if (hasDiscretionaryUpToLimitPrice() != other.hasDiscretionaryUpToLimitPrice()) return false;
      if (hasDiscretionaryUpToLimitPrice()) {
        if (getDiscretionaryUpToLimitPrice()
            != other.getDiscretionaryUpToLimitPrice()) return false;
      }
      if (hasAutoCancelDate() != other.hasAutoCancelDate()) return false;
      if (hasAutoCancelDate()) {
        if (!getAutoCancelDate()
            .equals(other.getAutoCancelDate())) return false;
      }
      if (hasFilledQuantity() != other.hasFilledQuantity()) return false;
      if (hasFilledQuantity()) {
        if (!getFilledQuantity()
            .equals(other.getFilledQuantity())) return false;
      }
      if (hasRefFuturesConId() != other.hasRefFuturesConId()) return false;
      if (hasRefFuturesConId()) {
        if (getRefFuturesConId()
            != other.getRefFuturesConId()) return false;
      }
      if (hasAutoCancelParent() != other.hasAutoCancelParent()) return false;
      if (hasAutoCancelParent()) {
        if (getAutoCancelParent()
            != other.getAutoCancelParent()) return false;
      }
      if (hasShareholder() != other.hasShareholder()) return false;
      if (hasShareholder()) {
        if (!getShareholder()
            .equals(other.getShareholder())) return false;
      }
      if (hasImbalanceOnly() != other.hasImbalanceOnly()) return false;
      if (hasImbalanceOnly()) {
        if (getImbalanceOnly()
            != other.getImbalanceOnly()) return false;
      }
      if (hasRouteMarketableToBbo() != other.hasRouteMarketableToBbo()) return false;
      if (hasRouteMarketableToBbo()) {
        if (getRouteMarketableToBbo()
            != other.getRouteMarketableToBbo()) return false;
      }
      if (hasParentPermId() != other.hasParentPermId()) return false;
      if (hasParentPermId()) {
        if (getParentPermId()
            != other.getParentPermId()) return false;
      }
      if (hasUsePriceMgmtAlgo() != other.hasUsePriceMgmtAlgo()) return false;
      if (hasUsePriceMgmtAlgo()) {
        if (getUsePriceMgmtAlgo()
            != other.getUsePriceMgmtAlgo()) return false;
      }
      if (hasDuration() != other.hasDuration()) return false;
      if (hasDuration()) {
        if (getDuration()
            != other.getDuration()) return false;
      }
      if (hasPostToAts() != other.hasPostToAts()) return false;
      if (hasPostToAts()) {
        if (getPostToAts()
            != other.getPostToAts()) return false;
      }
      if (hasAdvancedErrorOverride() != other.hasAdvancedErrorOverride()) return false;
      if (hasAdvancedErrorOverride()) {
        if (!getAdvancedErrorOverride()
            .equals(other.getAdvancedErrorOverride())) return false;
      }
      if (hasManualOrderTime() != other.hasManualOrderTime()) return false;
      if (hasManualOrderTime()) {
        if (!getManualOrderTime()
            .equals(other.getManualOrderTime())) return false;
      }
      if (hasMinTradeQty() != other.hasMinTradeQty()) return false;
      if (hasMinTradeQty()) {
        if (getMinTradeQty()
            != other.getMinTradeQty()) return false;
      }
      if (hasMinCompeteSize() != other.hasMinCompeteSize()) return false;
      if (hasMinCompeteSize()) {
        if (getMinCompeteSize()
            != other.getMinCompeteSize()) return false;
      }
      if (hasCompeteAgainstBestOffset() != other.hasCompeteAgainstBestOffset()) return false;
      if (hasCompeteAgainstBestOffset()) {
        if (java.lang.Double.doubleToLongBits(getCompeteAgainstBestOffset())
            != java.lang.Double.doubleToLongBits(
                other.getCompeteAgainstBestOffset())) return false;
      }
      if (hasMidOffsetAtWhole() != other.hasMidOffsetAtWhole()) return false;
      if (hasMidOffsetAtWhole()) {
        if (java.lang.Double.doubleToLongBits(getMidOffsetAtWhole())
            != java.lang.Double.doubleToLongBits(
                other.getMidOffsetAtWhole())) return false;
      }
      if (hasMidOffsetAtHalf() != other.hasMidOffsetAtHalf()) return false;
      if (hasMidOffsetAtHalf()) {
        if (java.lang.Double.doubleToLongBits(getMidOffsetAtHalf())
            != java.lang.Double.doubleToLongBits(
                other.getMidOffsetAtHalf())) return false;
      }
      if (hasCustomerAccount() != other.hasCustomerAccount()) return false;
      if (hasCustomerAccount()) {
        if (!getCustomerAccount()
            .equals(other.getCustomerAccount())) return false;
      }
      if (hasProfessionalCustomer() != other.hasProfessionalCustomer()) return false;
      if (hasProfessionalCustomer()) {
        if (getProfessionalCustomer()
            != other.getProfessionalCustomer()) return false;
      }
      if (hasBondAccruedInterest() != other.hasBondAccruedInterest()) return false;
      if (hasBondAccruedInterest()) {
        if (!getBondAccruedInterest()
            .equals(other.getBondAccruedInterest())) return false;
      }
      if (hasIncludeOvernight() != other.hasIncludeOvernight()) return false;
      if (hasIncludeOvernight()) {
        if (getIncludeOvernight()
            != other.getIncludeOvernight()) return false;
      }
      if (hasManualOrderIndicator() != other.hasManualOrderIndicator()) return false;
      if (hasManualOrderIndicator()) {
        if (getManualOrderIndicator()
            != other.getManualOrderIndicator()) return false;
      }
      if (hasSubmitter() != other.hasSubmitter()) return false;
      if (hasSubmitter()) {
        if (!getSubmitter()
            .equals(other.getSubmitter())) 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 (hasClientId()) {
        hash = (37 * hash) + CLIENTID_FIELD_NUMBER;
        hash = (53 * hash) + getClientId();
      }
      if (hasOrderId()) {
        hash = (37 * hash) + ORDERID_FIELD_NUMBER;
        hash = (53 * hash) + getOrderId();
      }
      if (hasPermId()) {
        hash = (37 * hash) + PERMID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getPermId());
      }
      if (hasParentId()) {
        hash = (37 * hash) + PARENTID_FIELD_NUMBER;
        hash = (53 * hash) + getParentId();
      }
      if (hasAction()) {
        hash = (37 * hash) + ACTION_FIELD_NUMBER;
        hash = (53 * hash) + getAction().hashCode();
      }
      if (hasTotalQuantity()) {
        hash = (37 * hash) + TOTALQUANTITY_FIELD_NUMBER;
        hash = (53 * hash) + getTotalQuantity().hashCode();
      }
      if (hasDisplaySize()) {
        hash = (37 * hash) + DISPLAYSIZE_FIELD_NUMBER;
        hash = (53 * hash) + getDisplaySize();
      }
      if (hasOrderType()) {
        hash = (37 * hash) + ORDERTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOrderType().hashCode();
      }
      if (hasLmtPrice()) {
        hash = (37 * hash) + LMTPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getLmtPrice()));
      }
      if (hasAuxPrice()) {
        hash = (37 * hash) + AUXPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAuxPrice()));
      }
      if (hasTif()) {
        hash = (37 * hash) + TIF_FIELD_NUMBER;
        hash = (53 * hash) + getTif().hashCode();
      }
      if (hasAccount()) {
        hash = (37 * hash) + ACCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getAccount().hashCode();
      }
      if (hasSettlingFirm()) {
        hash = (37 * hash) + SETTLINGFIRM_FIELD_NUMBER;
        hash = (53 * hash) + getSettlingFirm().hashCode();
      }
      if (hasClearingAccount()) {
        hash = (37 * hash) + CLEARINGACCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getClearingAccount().hashCode();
      }
      if (hasClearingIntent()) {
        hash = (37 * hash) + CLEARINGINTENT_FIELD_NUMBER;
        hash = (53 * hash) + getClearingIntent().hashCode();
      }
      if (hasAllOrNone()) {
        hash = (37 * hash) + ALLORNONE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAllOrNone());
      }
      if (hasBlockOrder()) {
        hash = (37 * hash) + BLOCKORDER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getBlockOrder());
      }
      if (hasHidden()) {
        hash = (37 * hash) + HIDDEN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getHidden());
      }
      if (hasOutsideRth()) {
        hash = (37 * hash) + OUTSIDERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getOutsideRth());
      }
      if (hasSweepToFill()) {
        hash = (37 * hash) + SWEEPTOFILL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSweepToFill());
      }
      if (hasPercentOffset()) {
        hash = (37 * hash) + PERCENTOFFSET_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPercentOffset()));
      }
      if (hasTrailingPercent()) {
        hash = (37 * hash) + TRAILINGPERCENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getTrailingPercent()));
      }
      if (hasTrailStopPrice()) {
        hash = (37 * hash) + TRAILSTOPPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getTrailStopPrice()));
      }
      if (hasMinQty()) {
        hash = (37 * hash) + MINQTY_FIELD_NUMBER;
        hash = (53 * hash) + getMinQty();
      }
      if (hasGoodAfterTime()) {
        hash = (37 * hash) + GOODAFTERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getGoodAfterTime().hashCode();
      }
      if (hasGoodTillDate()) {
        hash = (37 * hash) + GOODTILLDATE_FIELD_NUMBER;
        hash = (53 * hash) + getGoodTillDate().hashCode();
      }
      if (hasOcaGroup()) {
        hash = (37 * hash) + OCAGROUP_FIELD_NUMBER;
        hash = (53 * hash) + getOcaGroup().hashCode();
      }
      if (hasOrderRef()) {
        hash = (37 * hash) + ORDERREF_FIELD_NUMBER;
        hash = (53 * hash) + getOrderRef().hashCode();
      }
      if (hasRule80A()) {
        hash = (37 * hash) + RULE80A_FIELD_NUMBER;
        hash = (53 * hash) + getRule80A().hashCode();
      }
      if (hasOcaType()) {
        hash = (37 * hash) + OCATYPE_FIELD_NUMBER;
        hash = (53 * hash) + getOcaType();
      }
      if (hasTriggerMethod()) {
        hash = (37 * hash) + TRIGGERMETHOD_FIELD_NUMBER;
        hash = (53 * hash) + getTriggerMethod();
      }
      if (hasActiveStartTime()) {
        hash = (37 * hash) + ACTIVESTARTTIME_FIELD_NUMBER;
        hash = (53 * hash) + getActiveStartTime().hashCode();
      }
      if (hasActiveStopTime()) {
        hash = (37 * hash) + ACTIVESTOPTIME_FIELD_NUMBER;
        hash = (53 * hash) + getActiveStopTime().hashCode();
      }
      if (hasFaGroup()) {
        hash = (37 * hash) + FAGROUP_FIELD_NUMBER;
        hash = (53 * hash) + getFaGroup().hashCode();
      }
      if (hasFaMethod()) {
        hash = (37 * hash) + FAMETHOD_FIELD_NUMBER;
        hash = (53 * hash) + getFaMethod().hashCode();
      }
      if (hasFaPercentage()) {
        hash = (37 * hash) + FAPERCENTAGE_FIELD_NUMBER;
        hash = (53 * hash) + getFaPercentage().hashCode();
      }
      if (hasVolatility()) {
        hash = (37 * hash) + VOLATILITY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getVolatility()));
      }
      if (hasVolatilityType()) {
        hash = (37 * hash) + VOLATILITYTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getVolatilityType();
      }
      if (hasContinuousUpdate()) {
        hash = (37 * hash) + CONTINUOUSUPDATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getContinuousUpdate());
      }
      if (hasReferencePriceType()) {
        hash = (37 * hash) + REFERENCEPRICETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getReferencePriceType();
      }
      if (hasDeltaNeutralOrderType()) {
        hash = (37 * hash) + DELTANEUTRALORDERTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaNeutralOrderType().hashCode();
      }
      if (hasDeltaNeutralAuxPrice()) {
        hash = (37 * hash) + DELTANEUTRALAUXPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getDeltaNeutralAuxPrice()));
      }
      if (hasDeltaNeutralConId()) {
        hash = (37 * hash) + DELTANEUTRALCONID_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaNeutralConId();
      }
      if (hasDeltaNeutralOpenClose()) {
        hash = (37 * hash) + DELTANEUTRALOPENCLOSE_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaNeutralOpenClose().hashCode();
      }
      if (hasDeltaNeutralShortSale()) {
        hash = (37 * hash) + DELTANEUTRALSHORTSALE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getDeltaNeutralShortSale());
      }
      if (hasDeltaNeutralShortSaleSlot()) {
        hash = (37 * hash) + DELTANEUTRALSHORTSALESLOT_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaNeutralShortSaleSlot();
      }
      if (hasDeltaNeutralDesignatedLocation()) {
        hash = (37 * hash) + DELTANEUTRALDESIGNATEDLOCATION_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaNeutralDesignatedLocation().hashCode();
      }
      if (hasScaleInitLevelSize()) {
        hash = (37 * hash) + SCALEINITLEVELSIZE_FIELD_NUMBER;
        hash = (53 * hash) + getScaleInitLevelSize();
      }
      if (hasScaleSubsLevelSize()) {
        hash = (37 * hash) + SCALESUBSLEVELSIZE_FIELD_NUMBER;
        hash = (53 * hash) + getScaleSubsLevelSize();
      }
      if (hasScalePriceIncrement()) {
        hash = (37 * hash) + SCALEPRICEINCREMENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getScalePriceIncrement()));
      }
      if (hasScalePriceAdjustValue()) {
        hash = (37 * hash) + SCALEPRICEADJUSTVALUE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getScalePriceAdjustValue()));
      }
      if (hasScalePriceAdjustInterval()) {
        hash = (37 * hash) + SCALEPRICEADJUSTINTERVAL_FIELD_NUMBER;
        hash = (53 * hash) + getScalePriceAdjustInterval();
      }
      if (hasScaleProfitOffset()) {
        hash = (37 * hash) + SCALEPROFITOFFSET_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getScaleProfitOffset()));
      }
      if (hasScaleAutoReset()) {
        hash = (37 * hash) + SCALEAUTORESET_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getScaleAutoReset());
      }
      if (hasScaleInitPosition()) {
        hash = (37 * hash) + SCALEINITPOSITION_FIELD_NUMBER;
        hash = (53 * hash) + getScaleInitPosition();
      }
      if (hasScaleInitFillQty()) {
        hash = (37 * hash) + SCALEINITFILLQTY_FIELD_NUMBER;
        hash = (53 * hash) + getScaleInitFillQty();
      }
      if (hasScaleRandomPercent()) {
        hash = (37 * hash) + SCALERANDOMPERCENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getScaleRandomPercent());
      }
      if (hasScaleTable()) {
        hash = (37 * hash) + SCALETABLE_FIELD_NUMBER;
        hash = (53 * hash) + getScaleTable().hashCode();
      }
      if (hasHedgeType()) {
        hash = (37 * hash) + HEDGETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getHedgeType().hashCode();
      }
      if (hasHedgeParam()) {
        hash = (37 * hash) + HEDGEPARAM_FIELD_NUMBER;
        hash = (53 * hash) + getHedgeParam().hashCode();
      }
      if (hasAlgoStrategy()) {
        hash = (37 * hash) + ALGOSTRATEGY_FIELD_NUMBER;
        hash = (53 * hash) + getAlgoStrategy().hashCode();
      }
      if (!internalGetAlgoParams().getMap().isEmpty()) {
        hash = (37 * hash) + ALGOPARAMS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAlgoParams().hashCode();
      }
      if (hasAlgoId()) {
        hash = (37 * hash) + ALGOID_FIELD_NUMBER;
        hash = (53 * hash) + getAlgoId().hashCode();
      }
      if (!internalGetSmartComboRoutingParams().getMap().isEmpty()) {
        hash = (37 * hash) + SMARTCOMBOROUTINGPARAMS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSmartComboRoutingParams().hashCode();
      }
      if (hasWhatIf()) {
        hash = (37 * hash) + WHATIF_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getWhatIf());
      }
      if (hasTransmit()) {
        hash = (37 * hash) + TRANSMIT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getTransmit());
      }
      if (hasOverridePercentageConstraints()) {
        hash = (37 * hash) + OVERRIDEPERCENTAGECONSTRAINTS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getOverridePercentageConstraints());
      }
      if (hasOpenClose()) {
        hash = (37 * hash) + OPENCLOSE_FIELD_NUMBER;
        hash = (53 * hash) + getOpenClose().hashCode();
      }
      if (hasOrigin()) {
        hash = (37 * hash) + ORIGIN_FIELD_NUMBER;
        hash = (53 * hash) + getOrigin();
      }
      if (hasShortSaleSlot()) {
        hash = (37 * hash) + SHORTSALESLOT_FIELD_NUMBER;
        hash = (53 * hash) + getShortSaleSlot();
      }
      if (hasDesignatedLocation()) {
        hash = (37 * hash) + DESIGNATEDLOCATION_FIELD_NUMBER;
        hash = (53 * hash) + getDesignatedLocation().hashCode();
      }
      if (hasExemptCode()) {
        hash = (37 * hash) + EXEMPTCODE_FIELD_NUMBER;
        hash = (53 * hash) + getExemptCode();
      }
      if (hasDeltaNeutralSettlingFirm()) {
        hash = (37 * hash) + DELTANEUTRALSETTLINGFIRM_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaNeutralSettlingFirm().hashCode();
      }
      if (hasDeltaNeutralClearingAccount()) {
        hash = (37 * hash) + DELTANEUTRALCLEARINGACCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaNeutralClearingAccount().hashCode();
      }
      if (hasDeltaNeutralClearingIntent()) {
        hash = (37 * hash) + DELTANEUTRALCLEARINGINTENT_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaNeutralClearingIntent().hashCode();
      }
      if (hasDiscretionaryAmt()) {
        hash = (37 * hash) + DISCRETIONARYAMT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getDiscretionaryAmt()));
      }
      if (hasOptOutSmartRouting()) {
        hash = (37 * hash) + OPTOUTSMARTROUTING_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getOptOutSmartRouting());
      }
      if (hasStartingPrice()) {
        hash = (37 * hash) + STARTINGPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getStartingPrice()));
      }
      if (hasStockRefPrice()) {
        hash = (37 * hash) + STOCKREFPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getStockRefPrice()));
      }
      if (hasDelta()) {
        hash = (37 * hash) + DELTA_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getDelta()));
      }
      if (hasStockRangeLower()) {
        hash = (37 * hash) + STOCKRANGELOWER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getStockRangeLower()));
      }
      if (hasStockRangeUpper()) {
        hash = (37 * hash) + STOCKRANGEUPPER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getStockRangeUpper()));
      }
      if (hasNotHeld()) {
        hash = (37 * hash) + NOTHELD_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getNotHeld());
      }
      if (!internalGetOrderMiscOptions().getMap().isEmpty()) {
        hash = (37 * hash) + ORDERMISCOPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetOrderMiscOptions().hashCode();
      }
      if (hasSolicited()) {
        hash = (37 * hash) + SOLICITED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSolicited());
      }
      if (hasRandomizeSize()) {
        hash = (37 * hash) + RANDOMIZESIZE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getRandomizeSize());
      }
      if (hasRandomizePrice()) {
        hash = (37 * hash) + RANDOMIZEPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getRandomizePrice());
      }
      if (hasReferenceContractId()) {
        hash = (37 * hash) + REFERENCECONTRACTID_FIELD_NUMBER;
        hash = (53 * hash) + getReferenceContractId();
      }
      if (hasPeggedChangeAmount()) {
        hash = (37 * hash) + PEGGEDCHANGEAMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getPeggedChangeAmount()));
      }
      if (hasIsPeggedChangeAmountDecrease()) {
        hash = (37 * hash) + ISPEGGEDCHANGEAMOUNTDECREASE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsPeggedChangeAmountDecrease());
      }
      if (hasReferenceChangeAmount()) {
        hash = (37 * hash) + REFERENCECHANGEAMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getReferenceChangeAmount()));
      }
      if (hasReferenceExchangeId()) {
        hash = (37 * hash) + REFERENCEEXCHANGEID_FIELD_NUMBER;
        hash = (53 * hash) + getReferenceExchangeId().hashCode();
      }
      if (hasAdjustedOrderType()) {
        hash = (37 * hash) + ADJUSTEDORDERTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getAdjustedOrderType().hashCode();
      }
      if (hasTriggerPrice()) {
        hash = (37 * hash) + TRIGGERPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getTriggerPrice()));
      }
      if (hasAdjustedStopPrice()) {
        hash = (37 * hash) + ADJUSTEDSTOPPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAdjustedStopPrice()));
      }
      if (hasAdjustedStopLimitPrice()) {
        hash = (37 * hash) + ADJUSTEDSTOPLIMITPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAdjustedStopLimitPrice()));
      }
      if (hasAdjustedTrailingAmount()) {
        hash = (37 * hash) + ADJUSTEDTRAILINGAMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getAdjustedTrailingAmount()));
      }
      if (hasAdjustableTrailingUnit()) {
        hash = (37 * hash) + ADJUSTABLETRAILINGUNIT_FIELD_NUMBER;
        hash = (53 * hash) + getAdjustableTrailingUnit();
      }
      if (hasLmtPriceOffset()) {
        hash = (37 * hash) + LMTPRICEOFFSET_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getLmtPriceOffset()));
      }
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      if (hasConditionsCancelOrder()) {
        hash = (37 * hash) + CONDITIONSCANCELORDER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getConditionsCancelOrder());
      }
      if (hasConditionsIgnoreRth()) {
        hash = (37 * hash) + CONDITIONSIGNORERTH_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getConditionsIgnoreRth());
      }
      if (hasModelCode()) {
        hash = (37 * hash) + MODELCODE_FIELD_NUMBER;
        hash = (53 * hash) + getModelCode().hashCode();
      }
      if (hasExtOperator()) {
        hash = (37 * hash) + EXTOPERATOR_FIELD_NUMBER;
        hash = (53 * hash) + getExtOperator().hashCode();
      }
      if (hasSoftDollarTier()) {
        hash = (37 * hash) + SOFTDOLLARTIER_FIELD_NUMBER;
        hash = (53 * hash) + getSoftDollarTier().hashCode();
      }
      if (hasCashQty()) {
        hash = (37 * hash) + CASHQTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getCashQty()));
      }
      if (hasMifid2DecisionMaker()) {
        hash = (37 * hash) + MIFID2DECISIONMAKER_FIELD_NUMBER;
        hash = (53 * hash) + getMifid2DecisionMaker().hashCode();
      }
      if (hasMifid2DecisionAlgo()) {
        hash = (37 * hash) + MIFID2DECISIONALGO_FIELD_NUMBER;
        hash = (53 * hash) + getMifid2DecisionAlgo().hashCode();
      }
      if (hasMifid2ExecutionTrader()) {
        hash = (37 * hash) + MIFID2EXECUTIONTRADER_FIELD_NUMBER;
        hash = (53 * hash) + getMifid2ExecutionTrader().hashCode();
      }
      if (hasMifid2ExecutionAlgo()) {
        hash = (37 * hash) + MIFID2EXECUTIONALGO_FIELD_NUMBER;
        hash = (53 * hash) + getMifid2ExecutionAlgo().hashCode();
      }
      if (hasDontUseAutoPriceForHedge()) {
        hash = (37 * hash) + DONTUSEAUTOPRICEFORHEDGE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getDontUseAutoPriceForHedge());
      }
      if (hasIsOmsContainer()) {
        hash = (37 * hash) + ISOMSCONTAINER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsOmsContainer());
      }
      if (hasDiscretionaryUpToLimitPrice()) {
        hash = (37 * hash) + DISCRETIONARYUPTOLIMITPRICE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getDiscretionaryUpToLimitPrice());
      }
      if (hasAutoCancelDate()) {
        hash = (37 * hash) + AUTOCANCELDATE_FIELD_NUMBER;
        hash = (53 * hash) + getAutoCancelDate().hashCode();
      }
      if (hasFilledQuantity()) {
        hash = (37 * hash) + FILLEDQUANTITY_FIELD_NUMBER;
        hash = (53 * hash) + getFilledQuantity().hashCode();
      }
      if (hasRefFuturesConId()) {
        hash = (37 * hash) + REFFUTURESCONID_FIELD_NUMBER;
        hash = (53 * hash) + getRefFuturesConId();
      }
      if (hasAutoCancelParent()) {
        hash = (37 * hash) + AUTOCANCELPARENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAutoCancelParent());
      }
      if (hasShareholder()) {
        hash = (37 * hash) + SHAREHOLDER_FIELD_NUMBER;
        hash = (53 * hash) + getShareholder().hashCode();
      }
      if (hasImbalanceOnly()) {
        hash = (37 * hash) + IMBALANCEONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getImbalanceOnly());
      }
      if (hasRouteMarketableToBbo()) {
        hash = (37 * hash) + ROUTEMARKETABLETOBBO_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getRouteMarketableToBbo());
      }
      if (hasParentPermId()) {
        hash = (37 * hash) + PARENTPERMID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getParentPermId());
      }
      if (hasUsePriceMgmtAlgo()) {
        hash = (37 * hash) + USEPRICEMGMTALGO_FIELD_NUMBER;
        hash = (53 * hash) + getUsePriceMgmtAlgo();
      }
      if (hasDuration()) {
        hash = (37 * hash) + DURATION_FIELD_NUMBER;
        hash = (53 * hash) + getDuration();
      }
      if (hasPostToAts()) {
        hash = (37 * hash) + POSTTOATS_FIELD_NUMBER;
        hash = (53 * hash) + getPostToAts();
      }
      if (hasAdvancedErrorOverride()) {
        hash = (37 * hash) + ADVANCEDERROROVERRIDE_FIELD_NUMBER;
        hash = (53 * hash) + getAdvancedErrorOverride().hashCode();
      }
      if (hasManualOrderTime()) {
        hash = (37 * hash) + MANUALORDERTIME_FIELD_NUMBER;
        hash = (53 * hash) + getManualOrderTime().hashCode();
      }
      if (hasMinTradeQty()) {
        hash = (37 * hash) + MINTRADEQTY_FIELD_NUMBER;
        hash = (53 * hash) + getMinTradeQty();
      }
      if (hasMinCompeteSize()) {
        hash = (37 * hash) + MINCOMPETESIZE_FIELD_NUMBER;
        hash = (53 * hash) + getMinCompeteSize();
      }
      if (hasCompeteAgainstBestOffset()) {
        hash = (37 * hash) + COMPETEAGAINSTBESTOFFSET_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getCompeteAgainstBestOffset()));
      }
      if (hasMidOffsetAtWhole()) {
        hash = (37 * hash) + MIDOFFSETATWHOLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMidOffsetAtWhole()));
      }
      if (hasMidOffsetAtHalf()) {
        hash = (37 * hash) + MIDOFFSETATHALF_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getMidOffsetAtHalf()));
      }
      if (hasCustomerAccount()) {
        hash = (37 * hash) + CUSTOMERACCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getCustomerAccount().hashCode();
      }
      if (hasProfessionalCustomer()) {
        hash = (37 * hash) + PROFESSIONALCUSTOMER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getProfessionalCustomer());
      }
      if (hasBondAccruedInterest()) {
        hash = (37 * hash) + BONDACCRUEDINTEREST_FIELD_NUMBER;
        hash = (53 * hash) + getBondAccruedInterest().hashCode();
      }
      if (hasIncludeOvernight()) {
        hash = (37 * hash) + INCLUDEOVERNIGHT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIncludeOvernight());
      }
      if (hasManualOrderIndicator()) {
        hash = (37 * hash) + MANUALORDERINDICATOR_FIELD_NUMBER;
        hash = (53 * hash) + getManualOrderIndicator();
      }
      if (hasSubmitter()) {
        hash = (37 * hash) + SUBMITTER_FIELD_NUMBER;
        hash = (53 * hash) + getSubmitter().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.ib.client.protobuf.OrderProto.Order parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.OrderProto.Order 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.OrderProto.Order parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.OrderProto.Order 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.OrderProto.Order parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ib.client.protobuf.OrderProto.Order parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ib.client.protobuf.OrderProto.Order parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.ib.client.protobuf.OrderProto.Order 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.OrderProto.Order parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.ib.client.protobuf.OrderProto.Order 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.OrderProto.Order parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.ib.client.protobuf.OrderProto.Order 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.OrderProto.Order 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.Order}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:protobuf.Order)
        com.ib.client.protobuf.OrderProto.OrderOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.ib.client.protobuf.OrderProto.internal_static_protobuf_Order_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
          int number) {
        switch (number) {
          case 62:
            return internalGetAlgoParams();
          case 64:
            return internalGetSmartComboRoutingParams();
          case 84:
            return internalGetOrderMiscOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
          int number) {
        switch (number) {
          case 62:
            return internalGetMutableAlgoParams();
          case 64:
            return internalGetMutableSmartComboRoutingParams();
          case 84:
            return internalGetMutableOrderMiscOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ib.client.protobuf.OrderProto.internal_static_protobuf_Order_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.ib.client.protobuf.OrderProto.Order.class, com.ib.client.protobuf.OrderProto.Order.Builder.class);
      }

      // Construct using com.ib.client.protobuf.OrderProto.Order.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getConditionsFieldBuilder();
          getSoftDollarTierFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        bitField2_ = 0;
        bitField3_ = 0;
        bitField4_ = 0;
        clientId_ = 0;
        orderId_ = 0;
        permId_ = 0L;
        parentId_ = 0;
        action_ = "";
        totalQuantity_ = "";
        displaySize_ = 0;
        orderType_ = "";
        lmtPrice_ = 0D;
        auxPrice_ = 0D;
        tif_ = "";
        account_ = "";
        settlingFirm_ = "";
        clearingAccount_ = "";
        clearingIntent_ = "";
        allOrNone_ = false;
        blockOrder_ = false;
        hidden_ = false;
        outsideRth_ = false;
        sweepToFill_ = false;
        percentOffset_ = 0D;
        trailingPercent_ = 0D;
        trailStopPrice_ = 0D;
        minQty_ = 0;
        goodAfterTime_ = "";
        goodTillDate_ = "";
        ocaGroup_ = "";
        orderRef_ = "";
        rule80A_ = "";
        ocaType_ = 0;
        triggerMethod_ = 0;
        activeStartTime_ = "";
        activeStopTime_ = "";
        faGroup_ = "";
        faMethod_ = "";
        faPercentage_ = "";
        volatility_ = 0D;
        volatilityType_ = 0;
        continuousUpdate_ = false;
        referencePriceType_ = 0;
        deltaNeutralOrderType_ = "";
        deltaNeutralAuxPrice_ = 0D;
        deltaNeutralConId_ = 0;
        deltaNeutralOpenClose_ = "";
        deltaNeutralShortSale_ = false;
        deltaNeutralShortSaleSlot_ = 0;
        deltaNeutralDesignatedLocation_ = "";
        scaleInitLevelSize_ = 0;
        scaleSubsLevelSize_ = 0;
        scalePriceIncrement_ = 0D;
        scalePriceAdjustValue_ = 0D;
        scalePriceAdjustInterval_ = 0;
        scaleProfitOffset_ = 0D;
        scaleAutoReset_ = false;
        scaleInitPosition_ = 0;
        scaleInitFillQty_ = 0;
        scaleRandomPercent_ = false;
        scaleTable_ = "";
        hedgeType_ = "";
        hedgeParam_ = "";
        algoStrategy_ = "";
        internalGetMutableAlgoParams().clear();
        algoId_ = "";
        internalGetMutableSmartComboRoutingParams().clear();
        whatIf_ = false;
        transmit_ = false;
        overridePercentageConstraints_ = false;
        openClose_ = "";
        origin_ = 0;
        shortSaleSlot_ = 0;
        designatedLocation_ = "";
        exemptCode_ = 0;
        deltaNeutralSettlingFirm_ = "";
        deltaNeutralClearingAccount_ = "";
        deltaNeutralClearingIntent_ = "";
        discretionaryAmt_ = 0D;
        optOutSmartRouting_ = false;
        startingPrice_ = 0D;
        stockRefPrice_ = 0D;
        delta_ = 0D;
        stockRangeLower_ = 0D;
        stockRangeUpper_ = 0D;
        notHeld_ = false;
        internalGetMutableOrderMiscOptions().clear();
        solicited_ = false;
        randomizeSize_ = false;
        randomizePrice_ = false;
        referenceContractId_ = 0;
        peggedChangeAmount_ = 0D;
        isPeggedChangeAmountDecrease_ = false;
        referenceChangeAmount_ = 0D;
        referenceExchangeId_ = "";
        adjustedOrderType_ = "";
        triggerPrice_ = 0D;
        adjustedStopPrice_ = 0D;
        adjustedStopLimitPrice_ = 0D;
        adjustedTrailingAmount_ = 0D;
        adjustableTrailingUnit_ = 0;
        lmtPriceOffset_ = 0D;
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
        } else {
          conditions_ = null;
          conditionsBuilder_.clear();
        }
        bitField3_ = (bitField3_ & ~0x00000008);
        conditionsCancelOrder_ = false;
        conditionsIgnoreRth_ = false;
        modelCode_ = "";
        extOperator_ = "";
        softDollarTier_ = null;
        if (softDollarTierBuilder_ != null) {
          softDollarTierBuilder_.dispose();
          softDollarTierBuilder_ = null;
        }
        cashQty_ = 0D;
        mifid2DecisionMaker_ = "";
        mifid2DecisionAlgo_ = "";
        mifid2ExecutionTrader_ = "";
        mifid2ExecutionAlgo_ = "";
        dontUseAutoPriceForHedge_ = false;
        isOmsContainer_ = false;
        discretionaryUpToLimitPrice_ = false;
        autoCancelDate_ = "";
        filledQuantity_ = "";
        refFuturesConId_ = 0;
        autoCancelParent_ = false;
        shareholder_ = "";
        imbalanceOnly_ = false;
        routeMarketableToBbo_ = false;
        parentPermId_ = 0L;
        usePriceMgmtAlgo_ = 0;
        duration_ = 0;
        postToAts_ = 0;
        advancedErrorOverride_ = "";
        manualOrderTime_ = "";
        minTradeQty_ = 0;
        minCompeteSize_ = 0;
        competeAgainstBestOffset_ = 0D;
        midOffsetAtWhole_ = 0D;
        midOffsetAtHalf_ = 0D;
        customerAccount_ = "";
        professionalCustomer_ = false;
        bondAccruedInterest_ = "";
        includeOvernight_ = false;
        manualOrderIndicator_ = 0;
        submitter_ = "";
        return this;
      }

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

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

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

      @java.lang.Override
      public com.ib.client.protobuf.OrderProto.Order buildPartial() {
        com.ib.client.protobuf.OrderProto.Order result = new com.ib.client.protobuf.OrderProto.Order(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        if (bitField1_ != 0) { buildPartial1(result); }
        if (bitField2_ != 0) { buildPartial2(result); }
        if (bitField3_ != 0) { buildPartial3(result); }
        if (bitField4_ != 0) { buildPartial4(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.ib.client.protobuf.OrderProto.Order result) {
        if (conditionsBuilder_ == null) {
          if (((bitField3_ & 0x00000008) != 0)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField3_ = (bitField3_ & ~0x00000008);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
      }

      private void buildPartial0(com.ib.client.protobuf.OrderProto.Order result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.clientId_ = clientId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.orderId_ = orderId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.permId_ = permId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.parentId_ = parentId_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.action_ = action_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.totalQuantity_ = totalQuantity_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.displaySize_ = displaySize_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.orderType_ = orderType_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.lmtPrice_ = lmtPrice_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.auxPrice_ = auxPrice_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.tif_ = tif_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.account_ = account_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.settlingFirm_ = settlingFirm_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.clearingAccount_ = clearingAccount_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.clearingIntent_ = clearingIntent_;
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.allOrNone_ = allOrNone_;
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.blockOrder_ = blockOrder_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.hidden_ = hidden_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.outsideRth_ = outsideRth_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.sweepToFill_ = sweepToFill_;
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.percentOffset_ = percentOffset_;
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.trailingPercent_ = trailingPercent_;
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.trailStopPrice_ = trailStopPrice_;
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.minQty_ = minQty_;
          to_bitField0_ |= 0x00800000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.goodAfterTime_ = goodAfterTime_;
          to_bitField0_ |= 0x01000000;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.goodTillDate_ = goodTillDate_;
          to_bitField0_ |= 0x02000000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.ocaGroup_ = ocaGroup_;
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.orderRef_ = orderRef_;
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.rule80A_ = rule80A_;
          to_bitField0_ |= 0x10000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.ocaType_ = ocaType_;
          to_bitField0_ |= 0x20000000;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.triggerMethod_ = triggerMethod_;
          to_bitField0_ |= 0x40000000;
        }
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.activeStartTime_ = activeStartTime_;
          to_bitField0_ |= 0x80000000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartial1(com.ib.client.protobuf.OrderProto.Order result) {
        int from_bitField1_ = bitField1_;
        int to_bitField1_ = 0;
        if (((from_bitField1_ & 0x00000001) != 0)) {
          result.activeStopTime_ = activeStopTime_;
          to_bitField1_ |= 0x00000001;
        }
        if (((from_bitField1_ & 0x00000002) != 0)) {
          result.faGroup_ = faGroup_;
          to_bitField1_ |= 0x00000002;
        }
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.faMethod_ = faMethod_;
          to_bitField1_ |= 0x00000004;
        }
        if (((from_bitField1_ & 0x00000008) != 0)) {
          result.faPercentage_ = faPercentage_;
          to_bitField1_ |= 0x00000008;
        }
        if (((from_bitField1_ & 0x00000010) != 0)) {
          result.volatility_ = volatility_;
          to_bitField1_ |= 0x00000010;
        }
        if (((from_bitField1_ & 0x00000020) != 0)) {
          result.volatilityType_ = volatilityType_;
          to_bitField1_ |= 0x00000020;
        }
        if (((from_bitField1_ & 0x00000040) != 0)) {
          result.continuousUpdate_ = continuousUpdate_;
          to_bitField1_ |= 0x00000040;
        }
        if (((from_bitField1_ & 0x00000080) != 0)) {
          result.referencePriceType_ = referencePriceType_;
          to_bitField1_ |= 0x00000080;
        }
        if (((from_bitField1_ & 0x00000100) != 0)) {
          result.deltaNeutralOrderType_ = deltaNeutralOrderType_;
          to_bitField1_ |= 0x00000100;
        }
        if (((from_bitField1_ & 0x00000200) != 0)) {
          result.deltaNeutralAuxPrice_ = deltaNeutralAuxPrice_;
          to_bitField1_ |= 0x00000200;
        }
        if (((from_bitField1_ & 0x00000400) != 0)) {
          result.deltaNeutralConId_ = deltaNeutralConId_;
          to_bitField1_ |= 0x00000400;
        }
        if (((from_bitField1_ & 0x00000800) != 0)) {
          result.deltaNeutralOpenClose_ = deltaNeutralOpenClose_;
          to_bitField1_ |= 0x00000800;
        }
        if (((from_bitField1_ & 0x00001000) != 0)) {
          result.deltaNeutralShortSale_ = deltaNeutralShortSale_;
          to_bitField1_ |= 0x00001000;
        }
        if (((from_bitField1_ & 0x00002000) != 0)) {
          result.deltaNeutralShortSaleSlot_ = deltaNeutralShortSaleSlot_;
          to_bitField1_ |= 0x00002000;
        }
        if (((from_bitField1_ & 0x00004000) != 0)) {
          result.deltaNeutralDesignatedLocation_ = deltaNeutralDesignatedLocation_;
          to_bitField1_ |= 0x00004000;
        }
        if (((from_bitField1_ & 0x00008000) != 0)) {
          result.scaleInitLevelSize_ = scaleInitLevelSize_;
          to_bitField1_ |= 0x00008000;
        }
        if (((from_bitField1_ & 0x00010000) != 0)) {
          result.scaleSubsLevelSize_ = scaleSubsLevelSize_;
          to_bitField1_ |= 0x00010000;
        }
        if (((from_bitField1_ & 0x00020000) != 0)) {
          result.scalePriceIncrement_ = scalePriceIncrement_;
          to_bitField1_ |= 0x00020000;
        }
        if (((from_bitField1_ & 0x00040000) != 0)) {
          result.scalePriceAdjustValue_ = scalePriceAdjustValue_;
          to_bitField1_ |= 0x00040000;
        }
        if (((from_bitField1_ & 0x00080000) != 0)) {
          result.scalePriceAdjustInterval_ = scalePriceAdjustInterval_;
          to_bitField1_ |= 0x00080000;
        }
        if (((from_bitField1_ & 0x00100000) != 0)) {
          result.scaleProfitOffset_ = scaleProfitOffset_;
          to_bitField1_ |= 0x00100000;
        }
        if (((from_bitField1_ & 0x00200000) != 0)) {
          result.scaleAutoReset_ = scaleAutoReset_;
          to_bitField1_ |= 0x00200000;
        }
        if (((from_bitField1_ & 0x00400000) != 0)) {
          result.scaleInitPosition_ = scaleInitPosition_;
          to_bitField1_ |= 0x00400000;
        }
        if (((from_bitField1_ & 0x00800000) != 0)) {
          result.scaleInitFillQty_ = scaleInitFillQty_;
          to_bitField1_ |= 0x00800000;
        }
        if (((from_bitField1_ & 0x01000000) != 0)) {
          result.scaleRandomPercent_ = scaleRandomPercent_;
          to_bitField1_ |= 0x01000000;
        }
        if (((from_bitField1_ & 0x02000000) != 0)) {
          result.scaleTable_ = scaleTable_;
          to_bitField1_ |= 0x02000000;
        }
        if (((from_bitField1_ & 0x04000000) != 0)) {
          result.hedgeType_ = hedgeType_;
          to_bitField1_ |= 0x04000000;
        }
        if (((from_bitField1_ & 0x08000000) != 0)) {
          result.hedgeParam_ = hedgeParam_;
          to_bitField1_ |= 0x08000000;
        }
        if (((from_bitField1_ & 0x10000000) != 0)) {
          result.algoStrategy_ = algoStrategy_;
          to_bitField1_ |= 0x10000000;
        }
        if (((from_bitField1_ & 0x20000000) != 0)) {
          result.algoParams_ = internalGetAlgoParams();
          result.algoParams_.makeImmutable();
        }
        if (((from_bitField1_ & 0x40000000) != 0)) {
          result.algoId_ = algoId_;
          to_bitField1_ |= 0x20000000;
        }
        if (((from_bitField1_ & 0x80000000) != 0)) {
          result.smartComboRoutingParams_ = internalGetSmartComboRoutingParams();
          result.smartComboRoutingParams_.makeImmutable();
        }
        result.bitField1_ |= to_bitField1_;
      }

      private void buildPartial2(com.ib.client.protobuf.OrderProto.Order result) {
        int from_bitField2_ = bitField2_;
        int to_bitField1_ = 0;
        if (((from_bitField2_ & 0x00000001) != 0)) {
          result.whatIf_ = whatIf_;
          to_bitField1_ |= 0x40000000;
        }
        if (((from_bitField2_ & 0x00000002) != 0)) {
          result.transmit_ = transmit_;
          to_bitField1_ |= 0x80000000;
        }
        int to_bitField2_ = 0;
        if (((from_bitField2_ & 0x00000004) != 0)) {
          result.overridePercentageConstraints_ = overridePercentageConstraints_;
          to_bitField2_ |= 0x00000001;
        }
        if (((from_bitField2_ & 0x00000008) != 0)) {
          result.openClose_ = openClose_;
          to_bitField2_ |= 0x00000002;
        }
        if (((from_bitField2_ & 0x00000010) != 0)) {
          result.origin_ = origin_;
          to_bitField2_ |= 0x00000004;
        }
        if (((from_bitField2_ & 0x00000020) != 0)) {
          result.shortSaleSlot_ = shortSaleSlot_;
          to_bitField2_ |= 0x00000008;
        }
        if (((from_bitField2_ & 0x00000040) != 0)) {
          result.designatedLocation_ = designatedLocation_;
          to_bitField2_ |= 0x00000010;
        }
        if (((from_bitField2_ & 0x00000080) != 0)) {
          result.exemptCode_ = exemptCode_;
          to_bitField2_ |= 0x00000020;
        }
        if (((from_bitField2_ & 0x00000100) != 0)) {
          result.deltaNeutralSettlingFirm_ = deltaNeutralSettlingFirm_;
          to_bitField2_ |= 0x00000040;
        }
        if (((from_bitField2_ & 0x00000200) != 0)) {
          result.deltaNeutralClearingAccount_ = deltaNeutralClearingAccount_;
          to_bitField2_ |= 0x00000080;
        }
        if (((from_bitField2_ & 0x00000400) != 0)) {
          result.deltaNeutralClearingIntent_ = deltaNeutralClearingIntent_;
          to_bitField2_ |= 0x00000100;
        }
        if (((from_bitField2_ & 0x00000800) != 0)) {
          result.discretionaryAmt_ = discretionaryAmt_;
          to_bitField2_ |= 0x00000200;
        }
        if (((from_bitField2_ & 0x00001000) != 0)) {
          result.optOutSmartRouting_ = optOutSmartRouting_;
          to_bitField2_ |= 0x00000400;
        }
        if (((from_bitField2_ & 0x00002000) != 0)) {
          result.startingPrice_ = startingPrice_;
          to_bitField2_ |= 0x00000800;
        }
        if (((from_bitField2_ & 0x00004000) != 0)) {
          result.stockRefPrice_ = stockRefPrice_;
          to_bitField2_ |= 0x00001000;
        }
        if (((from_bitField2_ & 0x00008000) != 0)) {
          result.delta_ = delta_;
          to_bitField2_ |= 0x00002000;
        }
        if (((from_bitField2_ & 0x00010000) != 0)) {
          result.stockRangeLower_ = stockRangeLower_;
          to_bitField2_ |= 0x00004000;
        }
        if (((from_bitField2_ & 0x00020000) != 0)) {
          result.stockRangeUpper_ = stockRangeUpper_;
          to_bitField2_ |= 0x00008000;
        }
        if (((from_bitField2_ & 0x00040000) != 0)) {
          result.notHeld_ = notHeld_;
          to_bitField2_ |= 0x00010000;
        }
        if (((from_bitField2_ & 0x00080000) != 0)) {
          result.orderMiscOptions_ = internalGetOrderMiscOptions();
          result.orderMiscOptions_.makeImmutable();
        }
        if (((from_bitField2_ & 0x00100000) != 0)) {
          result.solicited_ = solicited_;
          to_bitField2_ |= 0x00020000;
        }
        if (((from_bitField2_ & 0x00200000) != 0)) {
          result.randomizeSize_ = randomizeSize_;
          to_bitField2_ |= 0x00040000;
        }
        if (((from_bitField2_ & 0x00400000) != 0)) {
          result.randomizePrice_ = randomizePrice_;
          to_bitField2_ |= 0x00080000;
        }
        if (((from_bitField2_ & 0x00800000) != 0)) {
          result.referenceContractId_ = referenceContractId_;
          to_bitField2_ |= 0x00100000;
        }
        if (((from_bitField2_ & 0x01000000) != 0)) {
          result.peggedChangeAmount_ = peggedChangeAmount_;
          to_bitField2_ |= 0x00200000;
        }
        if (((from_bitField2_ & 0x02000000) != 0)) {
          result.isPeggedChangeAmountDecrease_ = isPeggedChangeAmountDecrease_;
          to_bitField2_ |= 0x00400000;
        }
        if (((from_bitField2_ & 0x04000000) != 0)) {
          result.referenceChangeAmount_ = referenceChangeAmount_;
          to_bitField2_ |= 0x00800000;
        }
        if (((from_bitField2_ & 0x08000000) != 0)) {
          result.referenceExchangeId_ = referenceExchangeId_;
          to_bitField2_ |= 0x01000000;
        }
        if (((from_bitField2_ & 0x10000000) != 0)) {
          result.adjustedOrderType_ = adjustedOrderType_;
          to_bitField2_ |= 0x02000000;
        }
        if (((from_bitField2_ & 0x20000000) != 0)) {
          result.triggerPrice_ = triggerPrice_;
          to_bitField2_ |= 0x04000000;
        }
        if (((from_bitField2_ & 0x40000000) != 0)) {
          result.adjustedStopPrice_ = adjustedStopPrice_;
          to_bitField2_ |= 0x08000000;
        }
        if (((from_bitField2_ & 0x80000000) != 0)) {
          result.adjustedStopLimitPrice_ = adjustedStopLimitPrice_;
          to_bitField2_ |= 0x10000000;
        }
        result.bitField1_ |= to_bitField1_;
        result.bitField2_ |= to_bitField2_;
      }

      private void buildPartial3(com.ib.client.protobuf.OrderProto.Order result) {
        int from_bitField3_ = bitField3_;
        int to_bitField2_ = 0;
        if (((from_bitField3_ & 0x00000001) != 0)) {
          result.adjustedTrailingAmount_ = adjustedTrailingAmount_;
          to_bitField2_ |= 0x20000000;
        }
        if (((from_bitField3_ & 0x00000002) != 0)) {
          result.adjustableTrailingUnit_ = adjustableTrailingUnit_;
          to_bitField2_ |= 0x40000000;
        }
        if (((from_bitField3_ & 0x00000004) != 0)) {
          result.lmtPriceOffset_ = lmtPriceOffset_;
          to_bitField2_ |= 0x80000000;
        }
        int to_bitField3_ = 0;
        if (((from_bitField3_ & 0x00000010) != 0)) {
          result.conditionsCancelOrder_ = conditionsCancelOrder_;
          to_bitField3_ |= 0x00000001;
        }
        if (((from_bitField3_ & 0x00000020) != 0)) {
          result.conditionsIgnoreRth_ = conditionsIgnoreRth_;
          to_bitField3_ |= 0x00000002;
        }
        if (((from_bitField3_ & 0x00000040) != 0)) {
          result.modelCode_ = modelCode_;
          to_bitField3_ |= 0x00000004;
        }
        if (((from_bitField3_ & 0x00000080) != 0)) {
          result.extOperator_ = extOperator_;
          to_bitField3_ |= 0x00000008;
        }
        if (((from_bitField3_ & 0x00000100) != 0)) {
          result.softDollarTier_ = softDollarTierBuilder_ == null
              ? softDollarTier_
              : softDollarTierBuilder_.build();
          to_bitField3_ |= 0x00000010;
        }
        if (((from_bitField3_ & 0x00000200) != 0)) {
          result.cashQty_ = cashQty_;
          to_bitField3_ |= 0x00000020;
        }
        if (((from_bitField3_ & 0x00000400) != 0)) {
          result.mifid2DecisionMaker_ = mifid2DecisionMaker_;
          to_bitField3_ |= 0x00000040;
        }
        if (((from_bitField3_ & 0x00000800) != 0)) {
          result.mifid2DecisionAlgo_ = mifid2DecisionAlgo_;
          to_bitField3_ |= 0x00000080;
        }
        if (((from_bitField3_ & 0x00001000) != 0)) {
          result.mifid2ExecutionTrader_ = mifid2ExecutionTrader_;
          to_bitField3_ |= 0x00000100;
        }
        if (((from_bitField3_ & 0x00002000) != 0)) {
          result.mifid2ExecutionAlgo_ = mifid2ExecutionAlgo_;
          to_bitField3_ |= 0x00000200;
        }
        if (((from_bitField3_ & 0x00004000) != 0)) {
          result.dontUseAutoPriceForHedge_ = dontUseAutoPriceForHedge_;
          to_bitField3_ |= 0x00000400;
        }
        if (((from_bitField3_ & 0x00008000) != 0)) {
          result.isOmsContainer_ = isOmsContainer_;
          to_bitField3_ |= 0x00000800;
        }
        if (((from_bitField3_ & 0x00010000) != 0)) {
          result.discretionaryUpToLimitPrice_ = discretionaryUpToLimitPrice_;
          to_bitField3_ |= 0x00001000;
        }
        if (((from_bitField3_ & 0x00020000) != 0)) {
          result.autoCancelDate_ = autoCancelDate_;
          to_bitField3_ |= 0x00002000;
        }
        if (((from_bitField3_ & 0x00040000) != 0)) {
          result.filledQuantity_ = filledQuantity_;
          to_bitField3_ |= 0x00004000;
        }
        if (((from_bitField3_ & 0x00080000) != 0)) {
          result.refFuturesConId_ = refFuturesConId_;
          to_bitField3_ |= 0x00008000;
        }
        if (((from_bitField3_ & 0x00100000) != 0)) {
          result.autoCancelParent_ = autoCancelParent_;
          to_bitField3_ |= 0x00010000;
        }
        if (((from_bitField3_ & 0x00200000) != 0)) {
          result.shareholder_ = shareholder_;
          to_bitField3_ |= 0x00020000;
        }
        if (((from_bitField3_ & 0x00400000) != 0)) {
          result.imbalanceOnly_ = imbalanceOnly_;
          to_bitField3_ |= 0x00040000;
        }
        if (((from_bitField3_ & 0x00800000) != 0)) {
          result.routeMarketableToBbo_ = routeMarketableToBbo_;
          to_bitField3_ |= 0x00080000;
        }
        if (((from_bitField3_ & 0x01000000) != 0)) {
          result.parentPermId_ = parentPermId_;
          to_bitField3_ |= 0x00100000;
        }
        if (((from_bitField3_ & 0x02000000) != 0)) {
          result.usePriceMgmtAlgo_ = usePriceMgmtAlgo_;
          to_bitField3_ |= 0x00200000;
        }
        if (((from_bitField3_ & 0x04000000) != 0)) {
          result.duration_ = duration_;
          to_bitField3_ |= 0x00400000;
        }
        if (((from_bitField3_ & 0x08000000) != 0)) {
          result.postToAts_ = postToAts_;
          to_bitField3_ |= 0x00800000;
        }
        if (((from_bitField3_ & 0x10000000) != 0)) {
          result.advancedErrorOverride_ = advancedErrorOverride_;
          to_bitField3_ |= 0x01000000;
        }
        if (((from_bitField3_ & 0x20000000) != 0)) {
          result.manualOrderTime_ = manualOrderTime_;
          to_bitField3_ |= 0x02000000;
        }
        if (((from_bitField3_ & 0x40000000) != 0)) {
          result.minTradeQty_ = minTradeQty_;
          to_bitField3_ |= 0x04000000;
        }
        if (((from_bitField3_ & 0x80000000) != 0)) {
          result.minCompeteSize_ = minCompeteSize_;
          to_bitField3_ |= 0x08000000;
        }
        result.bitField2_ |= to_bitField2_;
        result.bitField3_ |= to_bitField3_;
      }

      private void buildPartial4(com.ib.client.protobuf.OrderProto.Order result) {
        int from_bitField4_ = bitField4_;
        int to_bitField3_ = 0;
        if (((from_bitField4_ & 0x00000001) != 0)) {
          result.competeAgainstBestOffset_ = competeAgainstBestOffset_;
          to_bitField3_ |= 0x10000000;
        }
        if (((from_bitField4_ & 0x00000002) != 0)) {
          result.midOffsetAtWhole_ = midOffsetAtWhole_;
          to_bitField3_ |= 0x20000000;
        }
        if (((from_bitField4_ & 0x00000004) != 0)) {
          result.midOffsetAtHalf_ = midOffsetAtHalf_;
          to_bitField3_ |= 0x40000000;
        }
        if (((from_bitField4_ & 0x00000008) != 0)) {
          result.customerAccount_ = customerAccount_;
          to_bitField3_ |= 0x80000000;
        }
        int to_bitField4_ = 0;
        if (((from_bitField4_ & 0x00000010) != 0)) {
          result.professionalCustomer_ = professionalCustomer_;
          to_bitField4_ |= 0x00000001;
        }
        if (((from_bitField4_ & 0x00000020) != 0)) {
          result.bondAccruedInterest_ = bondAccruedInterest_;
          to_bitField4_ |= 0x00000002;
        }
        if (((from_bitField4_ & 0x00000040) != 0)) {
          result.includeOvernight_ = includeOvernight_;
          to_bitField4_ |= 0x00000004;
        }
        if (((from_bitField4_ & 0x00000080) != 0)) {
          result.manualOrderIndicator_ = manualOrderIndicator_;
          to_bitField4_ |= 0x00000008;
        }
        if (((from_bitField4_ & 0x00000100) != 0)) {
          result.submitter_ = submitter_;
          to_bitField4_ |= 0x00000010;
        }
        result.bitField3_ |= to_bitField3_;
        result.bitField4_ |= to_bitField4_;
      }

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

      public Builder mergeFrom(com.ib.client.protobuf.OrderProto.Order other) {
        if (other == com.ib.client.protobuf.OrderProto.Order.getDefaultInstance()) return this;
        if (other.hasClientId()) {
          setClientId(other.getClientId());
        }
        if (other.hasOrderId()) {
          setOrderId(other.getOrderId());
        }
        if (other.hasPermId()) {
          setPermId(other.getPermId());
        }
        if (other.hasParentId()) {
          setParentId(other.getParentId());
        }
        if (other.hasAction()) {
          action_ = other.action_;
          bitField0_ |= 0x00000010;
          onChanged();
        }
        if (other.hasTotalQuantity()) {
          totalQuantity_ = other.totalQuantity_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.hasDisplaySize()) {
          setDisplaySize(other.getDisplaySize());
        }
        if (other.hasOrderType()) {
          orderType_ = other.orderType_;
          bitField0_ |= 0x00000080;
          onChanged();
        }
        if (other.hasLmtPrice()) {
          setLmtPrice(other.getLmtPrice());
        }
        if (other.hasAuxPrice()) {
          setAuxPrice(other.getAuxPrice());
        }
        if (other.hasTif()) {
          tif_ = other.tif_;
          bitField0_ |= 0x00000400;
          onChanged();
        }
        if (other.hasAccount()) {
          account_ = other.account_;
          bitField0_ |= 0x00000800;
          onChanged();
        }
        if (other.hasSettlingFirm()) {
          settlingFirm_ = other.settlingFirm_;
          bitField0_ |= 0x00001000;
          onChanged();
        }
        if (other.hasClearingAccount()) {
          clearingAccount_ = other.clearingAccount_;
          bitField0_ |= 0x00002000;
          onChanged();
        }
        if (other.hasClearingIntent()) {
          clearingIntent_ = other.clearingIntent_;
          bitField0_ |= 0x00004000;
          onChanged();
        }
        if (other.hasAllOrNone()) {
          setAllOrNone(other.getAllOrNone());
        }
        if (other.hasBlockOrder()) {
          setBlockOrder(other.getBlockOrder());
        }
        if (other.hasHidden()) {
          setHidden(other.getHidden());
        }
        if (other.hasOutsideRth()) {
          setOutsideRth(other.getOutsideRth());
        }
        if (other.hasSweepToFill()) {
          setSweepToFill(other.getSweepToFill());
        }
        if (other.hasPercentOffset()) {
          setPercentOffset(other.getPercentOffset());
        }
        if (other.hasTrailingPercent()) {
          setTrailingPercent(other.getTrailingPercent());
        }
        if (other.hasTrailStopPrice()) {
          setTrailStopPrice(other.getTrailStopPrice());
        }
        if (other.hasMinQty()) {
          setMinQty(other.getMinQty());
        }
        if (other.hasGoodAfterTime()) {
          goodAfterTime_ = other.goodAfterTime_;
          bitField0_ |= 0x01000000;
          onChanged();
        }
        if (other.hasGoodTillDate()) {
          goodTillDate_ = other.goodTillDate_;
          bitField0_ |= 0x02000000;
          onChanged();
        }
        if (other.hasOcaGroup()) {
          ocaGroup_ = other.ocaGroup_;
          bitField0_ |= 0x04000000;
          onChanged();
        }
        if (other.hasOrderRef()) {
          orderRef_ = other.orderRef_;
          bitField0_ |= 0x08000000;
          onChanged();
        }
        if (other.hasRule80A()) {
          rule80A_ = other.rule80A_;
          bitField0_ |= 0x10000000;
          onChanged();
        }
        if (other.hasOcaType()) {
          setOcaType(other.getOcaType());
        }
        if (other.hasTriggerMethod()) {
          setTriggerMethod(other.getTriggerMethod());
        }
        if (other.hasActiveStartTime()) {
          activeStartTime_ = other.activeStartTime_;
          bitField0_ |= 0x80000000;
          onChanged();
        }
        if (other.hasActiveStopTime()) {
          activeStopTime_ = other.activeStopTime_;
          bitField1_ |= 0x00000001;
          onChanged();
        }
        if (other.hasFaGroup()) {
          faGroup_ = other.faGroup_;
          bitField1_ |= 0x00000002;
          onChanged();
        }
        if (other.hasFaMethod()) {
          faMethod_ = other.faMethod_;
          bitField1_ |= 0x00000004;
          onChanged();
        }
        if (other.hasFaPercentage()) {
          faPercentage_ = other.faPercentage_;
          bitField1_ |= 0x00000008;
          onChanged();
        }
        if (other.hasVolatility()) {
          setVolatility(other.getVolatility());
        }
        if (other.hasVolatilityType()) {
          setVolatilityType(other.getVolatilityType());
        }
        if (other.hasContinuousUpdate()) {
          setContinuousUpdate(other.getContinuousUpdate());
        }
        if (other.hasReferencePriceType()) {
          setReferencePriceType(other.getReferencePriceType());
        }
        if (other.hasDeltaNeutralOrderType()) {
          deltaNeutralOrderType_ = other.deltaNeutralOrderType_;
          bitField1_ |= 0x00000100;
          onChanged();
        }
        if (other.hasDeltaNeutralAuxPrice()) {
          setDeltaNeutralAuxPrice(other.getDeltaNeutralAuxPrice());
        }
        if (other.hasDeltaNeutralConId()) {
          setDeltaNeutralConId(other.getDeltaNeutralConId());
        }
        if (other.hasDeltaNeutralOpenClose()) {
          deltaNeutralOpenClose_ = other.deltaNeutralOpenClose_;
          bitField1_ |= 0x00000800;
          onChanged();
        }
        if (other.hasDeltaNeutralShortSale()) {
          setDeltaNeutralShortSale(other.getDeltaNeutralShortSale());
        }
        if (other.hasDeltaNeutralShortSaleSlot()) {
          setDeltaNeutralShortSaleSlot(other.getDeltaNeutralShortSaleSlot());
        }
        if (other.hasDeltaNeutralDesignatedLocation()) {
          deltaNeutralDesignatedLocation_ = other.deltaNeutralDesignatedLocation_;
          bitField1_ |= 0x00004000;
          onChanged();
        }
        if (other.hasScaleInitLevelSize()) {
          setScaleInitLevelSize(other.getScaleInitLevelSize());
        }
        if (other.hasScaleSubsLevelSize()) {
          setScaleSubsLevelSize(other.getScaleSubsLevelSize());
        }
        if (other.hasScalePriceIncrement()) {
          setScalePriceIncrement(other.getScalePriceIncrement());
        }
        if (other.hasScalePriceAdjustValue()) {
          setScalePriceAdjustValue(other.getScalePriceAdjustValue());
        }
        if (other.hasScalePriceAdjustInterval()) {
          setScalePriceAdjustInterval(other.getScalePriceAdjustInterval());
        }
        if (other.hasScaleProfitOffset()) {
          setScaleProfitOffset(other.getScaleProfitOffset());
        }
        if (other.hasScaleAutoReset()) {
          setScaleAutoReset(other.getScaleAutoReset());
        }
        if (other.hasScaleInitPosition()) {
          setScaleInitPosition(other.getScaleInitPosition());
        }
        if (other.hasScaleInitFillQty()) {
          setScaleInitFillQty(other.getScaleInitFillQty());
        }
        if (other.hasScaleRandomPercent()) {
          setScaleRandomPercent(other.getScaleRandomPercent());
        }
        if (other.hasScaleTable()) {
          scaleTable_ = other.scaleTable_;
          bitField1_ |= 0x02000000;
          onChanged();
        }
        if (other.hasHedgeType()) {
          hedgeType_ = other.hedgeType_;
          bitField1_ |= 0x04000000;
          onChanged();
        }
        if (other.hasHedgeParam()) {
          hedgeParam_ = other.hedgeParam_;
          bitField1_ |= 0x08000000;
          onChanged();
        }
        if (other.hasAlgoStrategy()) {
          algoStrategy_ = other.algoStrategy_;
          bitField1_ |= 0x10000000;
          onChanged();
        }
        internalGetMutableAlgoParams().mergeFrom(
            other.internalGetAlgoParams());
        bitField1_ |= 0x20000000;
        if (other.hasAlgoId()) {
          algoId_ = other.algoId_;
          bitField1_ |= 0x40000000;
          onChanged();
        }
        internalGetMutableSmartComboRoutingParams().mergeFrom(
            other.internalGetSmartComboRoutingParams());
        bitField1_ |= 0x80000000;
        if (other.hasWhatIf()) {
          setWhatIf(other.getWhatIf());
        }
        if (other.hasTransmit()) {
          setTransmit(other.getTransmit());
        }
        if (other.hasOverridePercentageConstraints()) {
          setOverridePercentageConstraints(other.getOverridePercentageConstraints());
        }
        if (other.hasOpenClose()) {
          openClose_ = other.openClose_;
          bitField2_ |= 0x00000008;
          onChanged();
        }
        if (other.hasOrigin()) {
          setOrigin(other.getOrigin());
        }
        if (other.hasShortSaleSlot()) {
          setShortSaleSlot(other.getShortSaleSlot());
        }
        if (other.hasDesignatedLocation()) {
          designatedLocation_ = other.designatedLocation_;
          bitField2_ |= 0x00000040;
          onChanged();
        }
        if (other.hasExemptCode()) {
          setExemptCode(other.getExemptCode());
        }
        if (other.hasDeltaNeutralSettlingFirm()) {
          deltaNeutralSettlingFirm_ = other.deltaNeutralSettlingFirm_;
          bitField2_ |= 0x00000100;
          onChanged();
        }
        if (other.hasDeltaNeutralClearingAccount()) {
          deltaNeutralClearingAccount_ = other.deltaNeutralClearingAccount_;
          bitField2_ |= 0x00000200;
          onChanged();
        }
        if (other.hasDeltaNeutralClearingIntent()) {
          deltaNeutralClearingIntent_ = other.deltaNeutralClearingIntent_;
          bitField2_ |= 0x00000400;
          onChanged();
        }
        if (other.hasDiscretionaryAmt()) {
          setDiscretionaryAmt(other.getDiscretionaryAmt());
        }
        if (other.hasOptOutSmartRouting()) {
          setOptOutSmartRouting(other.getOptOutSmartRouting());
        }
        if (other.hasStartingPrice()) {
          setStartingPrice(other.getStartingPrice());
        }
        if (other.hasStockRefPrice()) {
          setStockRefPrice(other.getStockRefPrice());
        }
        if (other.hasDelta()) {
          setDelta(other.getDelta());
        }
        if (other.hasStockRangeLower()) {
          setStockRangeLower(other.getStockRangeLower());
        }
        if (other.hasStockRangeUpper()) {
          setStockRangeUpper(other.getStockRangeUpper());
        }
        if (other.hasNotHeld()) {
          setNotHeld(other.getNotHeld());
        }
        internalGetMutableOrderMiscOptions().mergeFrom(
            other.internalGetOrderMiscOptions());
        bitField2_ |= 0x00080000;
        if (other.hasSolicited()) {
          setSolicited(other.getSolicited());
        }
        if (other.hasRandomizeSize()) {
          setRandomizeSize(other.getRandomizeSize());
        }
        if (other.hasRandomizePrice()) {
          setRandomizePrice(other.getRandomizePrice());
        }
        if (other.hasReferenceContractId()) {
          setReferenceContractId(other.getReferenceContractId());
        }
        if (other.hasPeggedChangeAmount()) {
          setPeggedChangeAmount(other.getPeggedChangeAmount());
        }
        if (other.hasIsPeggedChangeAmountDecrease()) {
          setIsPeggedChangeAmountDecrease(other.getIsPeggedChangeAmountDecrease());
        }
        if (other.hasReferenceChangeAmount()) {
          setReferenceChangeAmount(other.getReferenceChangeAmount());
        }
        if (other.hasReferenceExchangeId()) {
          referenceExchangeId_ = other.referenceExchangeId_;
          bitField2_ |= 0x08000000;
          onChanged();
        }
        if (other.hasAdjustedOrderType()) {
          adjustedOrderType_ = other.adjustedOrderType_;
          bitField2_ |= 0x10000000;
          onChanged();
        }
        if (other.hasTriggerPrice()) {
          setTriggerPrice(other.getTriggerPrice());
        }
        if (other.hasAdjustedStopPrice()) {
          setAdjustedStopPrice(other.getAdjustedStopPrice());
        }
        if (other.hasAdjustedStopLimitPrice()) {
          setAdjustedStopLimitPrice(other.getAdjustedStopLimitPrice());
        }
        if (other.hasAdjustedTrailingAmount()) {
          setAdjustedTrailingAmount(other.getAdjustedTrailingAmount());
        }
        if (other.hasAdjustableTrailingUnit()) {
          setAdjustableTrailingUnit(other.getAdjustableTrailingUnit());
        }
        if (other.hasLmtPriceOffset()) {
          setLmtPriceOffset(other.getLmtPriceOffset());
        }
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField3_ = (bitField3_ & ~0x00000008);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField3_ = (bitField3_ & ~0x00000008);
              conditionsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getConditionsFieldBuilder() : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        if (other.hasConditionsCancelOrder()) {
          setConditionsCancelOrder(other.getConditionsCancelOrder());
        }
        if (other.hasConditionsIgnoreRth()) {
          setConditionsIgnoreRth(other.getConditionsIgnoreRth());
        }
        if (other.hasModelCode()) {
          modelCode_ = other.modelCode_;
          bitField3_ |= 0x00000040;
          onChanged();
        }
        if (other.hasExtOperator()) {
          extOperator_ = other.extOperator_;
          bitField3_ |= 0x00000080;
          onChanged();
        }
        if (other.hasSoftDollarTier()) {
          mergeSoftDollarTier(other.getSoftDollarTier());
        }
        if (other.hasCashQty()) {
          setCashQty(other.getCashQty());
        }
        if (other.hasMifid2DecisionMaker()) {
          mifid2DecisionMaker_ = other.mifid2DecisionMaker_;
          bitField3_ |= 0x00000400;
          onChanged();
        }
        if (other.hasMifid2DecisionAlgo()) {
          mifid2DecisionAlgo_ = other.mifid2DecisionAlgo_;
          bitField3_ |= 0x00000800;
          onChanged();
        }
        if (other.hasMifid2ExecutionTrader()) {
          mifid2ExecutionTrader_ = other.mifid2ExecutionTrader_;
          bitField3_ |= 0x00001000;
          onChanged();
        }
        if (other.hasMifid2ExecutionAlgo()) {
          mifid2ExecutionAlgo_ = other.mifid2ExecutionAlgo_;
          bitField3_ |= 0x00002000;
          onChanged();
        }
        if (other.hasDontUseAutoPriceForHedge()) {
          setDontUseAutoPriceForHedge(other.getDontUseAutoPriceForHedge());
        }
        if (other.hasIsOmsContainer()) {
          setIsOmsContainer(other.getIsOmsContainer());
        }
        if (other.hasDiscretionaryUpToLimitPrice()) {
          setDiscretionaryUpToLimitPrice(other.getDiscretionaryUpToLimitPrice());
        }
        if (other.hasAutoCancelDate()) {
          autoCancelDate_ = other.autoCancelDate_;
          bitField3_ |= 0x00020000;
          onChanged();
        }
        if (other.hasFilledQuantity()) {
          filledQuantity_ = other.filledQuantity_;
          bitField3_ |= 0x00040000;
          onChanged();
        }
        if (other.hasRefFuturesConId()) {
          setRefFuturesConId(other.getRefFuturesConId());
        }
        if (other.hasAutoCancelParent()) {
          setAutoCancelParent(other.getAutoCancelParent());
        }
        if (other.hasShareholder()) {
          shareholder_ = other.shareholder_;
          bitField3_ |= 0x00200000;
          onChanged();
        }
        if (other.hasImbalanceOnly()) {
          setImbalanceOnly(other.getImbalanceOnly());
        }
        if (other.hasRouteMarketableToBbo()) {
          setRouteMarketableToBbo(other.getRouteMarketableToBbo());
        }
        if (other.hasParentPermId()) {
          setParentPermId(other.getParentPermId());
        }
        if (other.hasUsePriceMgmtAlgo()) {
          setUsePriceMgmtAlgo(other.getUsePriceMgmtAlgo());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        if (other.hasPostToAts()) {
          setPostToAts(other.getPostToAts());
        }
        if (other.hasAdvancedErrorOverride()) {
          advancedErrorOverride_ = other.advancedErrorOverride_;
          bitField3_ |= 0x10000000;
          onChanged();
        }
        if (other.hasManualOrderTime()) {
          manualOrderTime_ = other.manualOrderTime_;
          bitField3_ |= 0x20000000;
          onChanged();
        }
        if (other.hasMinTradeQty()) {
          setMinTradeQty(other.getMinTradeQty());
        }
        if (other.hasMinCompeteSize()) {
          setMinCompeteSize(other.getMinCompeteSize());
        }
        if (other.hasCompeteAgainstBestOffset()) {
          setCompeteAgainstBestOffset(other.getCompeteAgainstBestOffset());
        }
        if (other.hasMidOffsetAtWhole()) {
          setMidOffsetAtWhole(other.getMidOffsetAtWhole());
        }
        if (other.hasMidOffsetAtHalf()) {
          setMidOffsetAtHalf(other.getMidOffsetAtHalf());
        }
        if (other.hasCustomerAccount()) {
          customerAccount_ = other.customerAccount_;
          bitField4_ |= 0x00000008;
          onChanged();
        }
        if (other.hasProfessionalCustomer()) {
          setProfessionalCustomer(other.getProfessionalCustomer());
        }
        if (other.hasBondAccruedInterest()) {
          bondAccruedInterest_ = other.bondAccruedInterest_;
          bitField4_ |= 0x00000020;
          onChanged();
        }
        if (other.hasIncludeOvernight()) {
          setIncludeOvernight(other.getIncludeOvernight());
        }
        if (other.hasManualOrderIndicator()) {
          setManualOrderIndicator(other.getManualOrderIndicator());
        }
        if (other.hasSubmitter()) {
          submitter_ = other.submitter_;
          bitField4_ |= 0x00000100;
          onChanged();
        }
        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: {
                clientId_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                orderId_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                permId_ = input.readInt64();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                parentId_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 42: {
                action_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                totalQuantity_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 56: {
                displaySize_ = input.readInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 66: {
                orderType_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 73: {
                lmtPrice_ = input.readDouble();
                bitField0_ |= 0x00000100;
                break;
              } // case 73
              case 81: {
                auxPrice_ = input.readDouble();
                bitField0_ |= 0x00000200;
                break;
              } // case 81
              case 90: {
                tif_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 98: {
                account_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 106: {
                settlingFirm_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00001000;
                break;
              } // case 106
              case 114: {
                clearingAccount_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 122: {
                clearingIntent_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00004000;
                break;
              } // case 122
              case 128: {
                allOrNone_ = input.readBool();
                bitField0_ |= 0x00008000;
                break;
              } // case 128
              case 136: {
                blockOrder_ = input.readBool();
                bitField0_ |= 0x00010000;
                break;
              } // case 136
              case 144: {
                hidden_ = input.readBool();
                bitField0_ |= 0x00020000;
                break;
              } // case 144
              case 152: {
                outsideRth_ = input.readBool();
                bitField0_ |= 0x00040000;
                break;
              } // case 152
              case 160: {
                sweepToFill_ = input.readBool();
                bitField0_ |= 0x00080000;
                break;
              } // case 160
              case 169: {
                percentOffset_ = input.readDouble();
                bitField0_ |= 0x00100000;
                break;
              } // case 169
              case 177: {
                trailingPercent_ = input.readDouble();
                bitField0_ |= 0x00200000;
                break;
              } // case 177
              case 185: {
                trailStopPrice_ = input.readDouble();
                bitField0_ |= 0x00400000;
                break;
              } // case 185
              case 192: {
                minQty_ = input.readInt32();
                bitField0_ |= 0x00800000;
                break;
              } // case 192
              case 202: {
                goodAfterTime_ = input.readStringRequireUtf8();
                bitField0_ |= 0x01000000;
                break;
              } // case 202
              case 210: {
                goodTillDate_ = input.readStringRequireUtf8();
                bitField0_ |= 0x02000000;
                break;
              } // case 210
              case 218: {
                ocaGroup_ = input.readStringRequireUtf8();
                bitField0_ |= 0x04000000;
                break;
              } // case 218
              case 226: {
                orderRef_ = input.readStringRequireUtf8();
                bitField0_ |= 0x08000000;
                break;
              } // case 226
              case 234: {
                rule80A_ = input.readStringRequireUtf8();
                bitField0_ |= 0x10000000;
                break;
              } // case 234
              case 240: {
                ocaType_ = input.readInt32();
                bitField0_ |= 0x20000000;
                break;
              } // case 240
              case 248: {
                triggerMethod_ = input.readInt32();
                bitField0_ |= 0x40000000;
                break;
              } // case 248
              case 258: {
                activeStartTime_ = input.readStringRequireUtf8();
                bitField0_ |= 0x80000000;
                break;
              } // case 258
              case 266: {
                activeStopTime_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00000001;
                break;
              } // case 266
              case 274: {
                faGroup_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00000002;
                break;
              } // case 274
              case 282: {
                faMethod_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00000004;
                break;
              } // case 282
              case 290: {
                faPercentage_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00000008;
                break;
              } // case 290
              case 297: {
                volatility_ = input.readDouble();
                bitField1_ |= 0x00000010;
                break;
              } // case 297
              case 304: {
                volatilityType_ = input.readInt32();
                bitField1_ |= 0x00000020;
                break;
              } // case 304
              case 312: {
                continuousUpdate_ = input.readBool();
                bitField1_ |= 0x00000040;
                break;
              } // case 312
              case 320: {
                referencePriceType_ = input.readInt32();
                bitField1_ |= 0x00000080;
                break;
              } // case 320
              case 330: {
                deltaNeutralOrderType_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00000100;
                break;
              } // case 330
              case 337: {
                deltaNeutralAuxPrice_ = input.readDouble();
                bitField1_ |= 0x00000200;
                break;
              } // case 337
              case 344: {
                deltaNeutralConId_ = input.readInt32();
                bitField1_ |= 0x00000400;
                break;
              } // case 344
              case 354: {
                deltaNeutralOpenClose_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00000800;
                break;
              } // case 354
              case 360: {
                deltaNeutralShortSale_ = input.readBool();
                bitField1_ |= 0x00001000;
                break;
              } // case 360
              case 368: {
                deltaNeutralShortSaleSlot_ = input.readInt32();
                bitField1_ |= 0x00002000;
                break;
              } // case 368
              case 378: {
                deltaNeutralDesignatedLocation_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00004000;
                break;
              } // case 378
              case 384: {
                scaleInitLevelSize_ = input.readInt32();
                bitField1_ |= 0x00008000;
                break;
              } // case 384
              case 392: {
                scaleSubsLevelSize_ = input.readInt32();
                bitField1_ |= 0x00010000;
                break;
              } // case 392
              case 401: {
                scalePriceIncrement_ = input.readDouble();
                bitField1_ |= 0x00020000;
                break;
              } // case 401
              case 409: {
                scalePriceAdjustValue_ = input.readDouble();
                bitField1_ |= 0x00040000;
                break;
              } // case 409
              case 416: {
                scalePriceAdjustInterval_ = input.readInt32();
                bitField1_ |= 0x00080000;
                break;
              } // case 416
              case 425: {
                scaleProfitOffset_ = input.readDouble();
                bitField1_ |= 0x00100000;
                break;
              } // case 425
              case 432: {
                scaleAutoReset_ = input.readBool();
                bitField1_ |= 0x00200000;
                break;
              } // case 432
              case 440: {
                scaleInitPosition_ = input.readInt32();
                bitField1_ |= 0x00400000;
                break;
              } // case 440
              case 448: {
                scaleInitFillQty_ = input.readInt32();
                bitField1_ |= 0x00800000;
                break;
              } // case 448
              case 456: {
                scaleRandomPercent_ = input.readBool();
                bitField1_ |= 0x01000000;
                break;
              } // case 456
              case 466: {
                scaleTable_ = input.readStringRequireUtf8();
                bitField1_ |= 0x02000000;
                break;
              } // case 466
              case 474: {
                hedgeType_ = input.readStringRequireUtf8();
                bitField1_ |= 0x04000000;
                break;
              } // case 474
              case 482: {
                hedgeParam_ = input.readStringRequireUtf8();
                bitField1_ |= 0x08000000;
                break;
              } // case 482
              case 490: {
                algoStrategy_ = input.readStringRequireUtf8();
                bitField1_ |= 0x10000000;
                break;
              } // case 490
              case 498: {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
                algoParams__ = input.readMessage(
                    AlgoParamsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableAlgoParams().getMutableMap().put(
                    algoParams__.getKey(), algoParams__.getValue());
                bitField1_ |= 0x20000000;
                break;
              } // case 498
              case 506: {
                algoId_ = input.readStringRequireUtf8();
                bitField1_ |= 0x40000000;
                break;
              } // case 506
              case 514: {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
                smartComboRoutingParams__ = input.readMessage(
                    SmartComboRoutingParamsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableSmartComboRoutingParams().getMutableMap().put(
                    smartComboRoutingParams__.getKey(), smartComboRoutingParams__.getValue());
                bitField1_ |= 0x80000000;
                break;
              } // case 514
              case 520: {
                whatIf_ = input.readBool();
                bitField2_ |= 0x00000001;
                break;
              } // case 520
              case 528: {
                transmit_ = input.readBool();
                bitField2_ |= 0x00000002;
                break;
              } // case 528
              case 536: {
                overridePercentageConstraints_ = input.readBool();
                bitField2_ |= 0x00000004;
                break;
              } // case 536
              case 546: {
                openClose_ = input.readStringRequireUtf8();
                bitField2_ |= 0x00000008;
                break;
              } // case 546
              case 552: {
                origin_ = input.readInt32();
                bitField2_ |= 0x00000010;
                break;
              } // case 552
              case 560: {
                shortSaleSlot_ = input.readInt32();
                bitField2_ |= 0x00000020;
                break;
              } // case 560
              case 570: {
                designatedLocation_ = input.readStringRequireUtf8();
                bitField2_ |= 0x00000040;
                break;
              } // case 570
              case 576: {
                exemptCode_ = input.readInt32();
                bitField2_ |= 0x00000080;
                break;
              } // case 576
              case 586: {
                deltaNeutralSettlingFirm_ = input.readStringRequireUtf8();
                bitField2_ |= 0x00000100;
                break;
              } // case 586
              case 594: {
                deltaNeutralClearingAccount_ = input.readStringRequireUtf8();
                bitField2_ |= 0x00000200;
                break;
              } // case 594
              case 602: {
                deltaNeutralClearingIntent_ = input.readStringRequireUtf8();
                bitField2_ |= 0x00000400;
                break;
              } // case 602
              case 609: {
                discretionaryAmt_ = input.readDouble();
                bitField2_ |= 0x00000800;
                break;
              } // case 609
              case 616: {
                optOutSmartRouting_ = input.readBool();
                bitField2_ |= 0x00001000;
                break;
              } // case 616
              case 625: {
                startingPrice_ = input.readDouble();
                bitField2_ |= 0x00002000;
                break;
              } // case 625
              case 633: {
                stockRefPrice_ = input.readDouble();
                bitField2_ |= 0x00004000;
                break;
              } // case 633
              case 641: {
                delta_ = input.readDouble();
                bitField2_ |= 0x00008000;
                break;
              } // case 641
              case 649: {
                stockRangeLower_ = input.readDouble();
                bitField2_ |= 0x00010000;
                break;
              } // case 649
              case 657: {
                stockRangeUpper_ = input.readDouble();
                bitField2_ |= 0x00020000;
                break;
              } // case 657
              case 664: {
                notHeld_ = input.readBool();
                bitField2_ |= 0x00040000;
                break;
              } // case 664
              case 674: {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
                orderMiscOptions__ = input.readMessage(
                    OrderMiscOptionsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableOrderMiscOptions().getMutableMap().put(
                    orderMiscOptions__.getKey(), orderMiscOptions__.getValue());
                bitField2_ |= 0x00080000;
                break;
              } // case 674
              case 680: {
                solicited_ = input.readBool();
                bitField2_ |= 0x00100000;
                break;
              } // case 680
              case 688: {
                randomizeSize_ = input.readBool();
                bitField2_ |= 0x00200000;
                break;
              } // case 688
              case 696: {
                randomizePrice_ = input.readBool();
                bitField2_ |= 0x00400000;
                break;
              } // case 696
              case 704: {
                referenceContractId_ = input.readInt32();
                bitField2_ |= 0x00800000;
                break;
              } // case 704
              case 713: {
                peggedChangeAmount_ = input.readDouble();
                bitField2_ |= 0x01000000;
                break;
              } // case 713
              case 720: {
                isPeggedChangeAmountDecrease_ = input.readBool();
                bitField2_ |= 0x02000000;
                break;
              } // case 720
              case 729: {
                referenceChangeAmount_ = input.readDouble();
                bitField2_ |= 0x04000000;
                break;
              } // case 729
              case 738: {
                referenceExchangeId_ = input.readStringRequireUtf8();
                bitField2_ |= 0x08000000;
                break;
              } // case 738
              case 746: {
                adjustedOrderType_ = input.readStringRequireUtf8();
                bitField2_ |= 0x10000000;
                break;
              } // case 746
              case 753: {
                triggerPrice_ = input.readDouble();
                bitField2_ |= 0x20000000;
                break;
              } // case 753
              case 761: {
                adjustedStopPrice_ = input.readDouble();
                bitField2_ |= 0x40000000;
                break;
              } // case 761
              case 769: {
                adjustedStopLimitPrice_ = input.readDouble();
                bitField2_ |= 0x80000000;
                break;
              } // case 769
              case 777: {
                adjustedTrailingAmount_ = input.readDouble();
                bitField3_ |= 0x00000001;
                break;
              } // case 777
              case 784: {
                adjustableTrailingUnit_ = input.readInt32();
                bitField3_ |= 0x00000002;
                break;
              } // case 784
              case 793: {
                lmtPriceOffset_ = input.readDouble();
                bitField3_ |= 0x00000004;
                break;
              } // case 793
              case 802: {
                com.ib.client.protobuf.OrderConditionProto.OrderCondition m =
                    input.readMessage(
                        com.ib.client.protobuf.OrderConditionProto.OrderCondition.parser(),
                        extensionRegistry);
                if (conditionsBuilder_ == null) {
                  ensureConditionsIsMutable();
                  conditions_.add(m);
                } else {
                  conditionsBuilder_.addMessage(m);
                }
                break;
              } // case 802
              case 808: {
                conditionsCancelOrder_ = input.readBool();
                bitField3_ |= 0x00000010;
                break;
              } // case 808
              case 816: {
                conditionsIgnoreRth_ = input.readBool();
                bitField3_ |= 0x00000020;
                break;
              } // case 816
              case 826: {
                modelCode_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00000040;
                break;
              } // case 826
              case 834: {
                extOperator_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00000080;
                break;
              } // case 834
              case 842: {
                input.readMessage(
                    getSoftDollarTierFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField3_ |= 0x00000100;
                break;
              } // case 842
              case 849: {
                cashQty_ = input.readDouble();
                bitField3_ |= 0x00000200;
                break;
              } // case 849
              case 858: {
                mifid2DecisionMaker_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00000400;
                break;
              } // case 858
              case 866: {
                mifid2DecisionAlgo_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00000800;
                break;
              } // case 866
              case 874: {
                mifid2ExecutionTrader_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00001000;
                break;
              } // case 874
              case 882: {
                mifid2ExecutionAlgo_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00002000;
                break;
              } // case 882
              case 888: {
                dontUseAutoPriceForHedge_ = input.readBool();
                bitField3_ |= 0x00004000;
                break;
              } // case 888
              case 896: {
                isOmsContainer_ = input.readBool();
                bitField3_ |= 0x00008000;
                break;
              } // case 896
              case 904: {
                discretionaryUpToLimitPrice_ = input.readBool();
                bitField3_ |= 0x00010000;
                break;
              } // case 904
              case 914: {
                autoCancelDate_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00020000;
                break;
              } // case 914
              case 922: {
                filledQuantity_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00040000;
                break;
              } // case 922
              case 928: {
                refFuturesConId_ = input.readInt32();
                bitField3_ |= 0x00080000;
                break;
              } // case 928
              case 936: {
                autoCancelParent_ = input.readBool();
                bitField3_ |= 0x00100000;
                break;
              } // case 936
              case 946: {
                shareholder_ = input.readStringRequireUtf8();
                bitField3_ |= 0x00200000;
                break;
              } // case 946
              case 952: {
                imbalanceOnly_ = input.readBool();
                bitField3_ |= 0x00400000;
                break;
              } // case 952
              case 960: {
                routeMarketableToBbo_ = input.readBool();
                bitField3_ |= 0x00800000;
                break;
              } // case 960
              case 968: {
                parentPermId_ = input.readInt64();
                bitField3_ |= 0x01000000;
                break;
              } // case 968
              case 976: {
                usePriceMgmtAlgo_ = input.readInt32();
                bitField3_ |= 0x02000000;
                break;
              } // case 976
              case 984: {
                duration_ = input.readInt32();
                bitField3_ |= 0x04000000;
                break;
              } // case 984
              case 992: {
                postToAts_ = input.readInt32();
                bitField3_ |= 0x08000000;
                break;
              } // case 992
              case 1002: {
                advancedErrorOverride_ = input.readStringRequireUtf8();
                bitField3_ |= 0x10000000;
                break;
              } // case 1002
              case 1010: {
                manualOrderTime_ = input.readStringRequireUtf8();
                bitField3_ |= 0x20000000;
                break;
              } // case 1010
              case 1016: {
                minTradeQty_ = input.readInt32();
                bitField3_ |= 0x40000000;
                break;
              } // case 1016
              case 1024: {
                minCompeteSize_ = input.readInt32();
                bitField3_ |= 0x80000000;
                break;
              } // case 1024
              case 1033: {
                competeAgainstBestOffset_ = input.readDouble();
                bitField4_ |= 0x00000001;
                break;
              } // case 1033
              case 1041: {
                midOffsetAtWhole_ = input.readDouble();
                bitField4_ |= 0x00000002;
                break;
              } // case 1041
              case 1049: {
                midOffsetAtHalf_ = input.readDouble();
                bitField4_ |= 0x00000004;
                break;
              } // case 1049
              case 1058: {
                customerAccount_ = input.readStringRequireUtf8();
                bitField4_ |= 0x00000008;
                break;
              } // case 1058
              case 1064: {
                professionalCustomer_ = input.readBool();
                bitField4_ |= 0x00000010;
                break;
              } // case 1064
              case 1074: {
                bondAccruedInterest_ = input.readStringRequireUtf8();
                bitField4_ |= 0x00000020;
                break;
              } // case 1074
              case 1080: {
                includeOvernight_ = input.readBool();
                bitField4_ |= 0x00000040;
                break;
              } // case 1080
              case 1088: {
                manualOrderIndicator_ = input.readInt32();
                bitField4_ |= 0x00000080;
                break;
              } // case 1088
              case 1098: {
                submitter_ = input.readStringRequireUtf8();
                bitField4_ |= 0x00000100;
                break;
              } // case 1098
              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 bitField1_;
      private int bitField2_;
      private int bitField3_;
      private int bitField4_;

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

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

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

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

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

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

      private int parentId_ ;
      /**
       * <code>optional int32 parentId = 4;</code>
       * @return Whether the parentId field is set.
       */
      @java.lang.Override
      public boolean hasParentId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional int32 parentId = 4;</code>
       * @return The parentId.
       */
      @java.lang.Override
      public int getParentId() {
        return parentId_;
      }
      /**
       * <code>optional int32 parentId = 4;</code>
       * @param value The parentId to set.
       * @return This builder for chaining.
       */
      public Builder setParentId(int value) {

        parentId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 parentId = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        parentId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object action_ = "";
      /**
       * <pre>
       * primary attributes
       * </pre>
       *
       * <code>optional string action = 5;</code>
       * @return Whether the action field is set.
       */
      public boolean hasAction() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * primary attributes
       * </pre>
       *
       * <code>optional string action = 5;</code>
       * @return The action.
       */
      public java.lang.String getAction() {
        java.lang.Object ref = action_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          action_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * primary attributes
       * </pre>
       *
       * <code>optional string action = 5;</code>
       * @return The bytes for action.
       */
      public com.google.protobuf.ByteString
          getActionBytes() {
        java.lang.Object ref = action_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          action_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * primary attributes
       * </pre>
       *
       * <code>optional string action = 5;</code>
       * @param value The action to set.
       * @return This builder for chaining.
       */
      public Builder setAction(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        action_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * primary attributes
       * </pre>
       *
       * <code>optional string action = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearAction() {
        action_ = getDefaultInstance().getAction();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * primary attributes
       * </pre>
       *
       * <code>optional string action = 5;</code>
       * @param value The bytes for action to set.
       * @return This builder for chaining.
       */
      public Builder setActionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        action_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }

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

      private int displaySize_ ;
      /**
       * <code>optional int32 displaySize = 7;</code>
       * @return Whether the displaySize field is set.
       */
      @java.lang.Override
      public boolean hasDisplaySize() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int32 displaySize = 7;</code>
       * @return The displaySize.
       */
      @java.lang.Override
      public int getDisplaySize() {
        return displaySize_;
      }
      /**
       * <code>optional int32 displaySize = 7;</code>
       * @param value The displaySize to set.
       * @return This builder for chaining.
       */
      public Builder setDisplaySize(int value) {

        displaySize_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 displaySize = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearDisplaySize() {
        bitField0_ = (bitField0_ & ~0x00000040);
        displaySize_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object orderType_ = "";
      /**
       * <code>optional string orderType = 8;</code>
       * @return Whether the orderType field is set.
       */
      public boolean hasOrderType() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional string orderType = 8;</code>
       * @return The orderType.
       */
      public java.lang.String getOrderType() {
        java.lang.Object ref = orderType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          orderType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string orderType = 8;</code>
       * @return The bytes for orderType.
       */
      public com.google.protobuf.ByteString
          getOrderTypeBytes() {
        java.lang.Object ref = orderType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          orderType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string orderType = 8;</code>
       * @param value The orderType to set.
       * @return This builder for chaining.
       */
      public Builder setOrderType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        orderType_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional string orderType = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderType() {
        orderType_ = getDefaultInstance().getOrderType();
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>optional string orderType = 8;</code>
       * @param value The bytes for orderType to set.
       * @return This builder for chaining.
       */
      public Builder setOrderTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        orderType_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }

      private double lmtPrice_ ;
      /**
       * <code>optional double lmtPrice = 9;</code>
       * @return Whether the lmtPrice field is set.
       */
      @java.lang.Override
      public boolean hasLmtPrice() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional double lmtPrice = 9;</code>
       * @return The lmtPrice.
       */
      @java.lang.Override
      public double getLmtPrice() {
        return lmtPrice_;
      }
      /**
       * <code>optional double lmtPrice = 9;</code>
       * @param value The lmtPrice to set.
       * @return This builder for chaining.
       */
      public Builder setLmtPrice(double value) {

        lmtPrice_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional double lmtPrice = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearLmtPrice() {
        bitField0_ = (bitField0_ & ~0x00000100);
        lmtPrice_ = 0D;
        onChanged();
        return this;
      }

      private double auxPrice_ ;
      /**
       * <code>optional double auxPrice = 10;</code>
       * @return Whether the auxPrice field is set.
       */
      @java.lang.Override
      public boolean hasAuxPrice() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional double auxPrice = 10;</code>
       * @return The auxPrice.
       */
      @java.lang.Override
      public double getAuxPrice() {
        return auxPrice_;
      }
      /**
       * <code>optional double auxPrice = 10;</code>
       * @param value The auxPrice to set.
       * @return This builder for chaining.
       */
      public Builder setAuxPrice(double value) {

        auxPrice_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional double auxPrice = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearAuxPrice() {
        bitField0_ = (bitField0_ & ~0x00000200);
        auxPrice_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object tif_ = "";
      /**
       * <code>optional string tif = 11;</code>
       * @return Whether the tif field is set.
       */
      public boolean hasTif() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional string tif = 11;</code>
       * @return The tif.
       */
      public java.lang.String getTif() {
        java.lang.Object ref = tif_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          tif_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string tif = 11;</code>
       * @return The bytes for tif.
       */
      public com.google.protobuf.ByteString
          getTifBytes() {
        java.lang.Object ref = tif_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tif_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string tif = 11;</code>
       * @param value The tif to set.
       * @return This builder for chaining.
       */
      public Builder setTif(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        tif_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional string tif = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearTif() {
        tif_ = getDefaultInstance().getTif();
        bitField0_ = (bitField0_ & ~0x00000400);
        onChanged();
        return this;
      }
      /**
       * <code>optional string tif = 11;</code>
       * @param value The bytes for tif to set.
       * @return This builder for chaining.
       */
      public Builder setTifBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        tif_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }

      private java.lang.Object account_ = "";
      /**
       * <pre>
       * clearing info
       * </pre>
       *
       * <code>optional string account = 12;</code>
       * @return Whether the account field is set.
       */
      public boolean hasAccount() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * clearing info
       * </pre>
       *
       * <code>optional string account = 12;</code>
       * @return The account.
       */
      public java.lang.String getAccount() {
        java.lang.Object ref = account_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          account_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * clearing info
       * </pre>
       *
       * <code>optional string account = 12;</code>
       * @return The bytes for account.
       */
      public com.google.protobuf.ByteString
          getAccountBytes() {
        java.lang.Object ref = account_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          account_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * clearing info
       * </pre>
       *
       * <code>optional string account = 12;</code>
       * @param value The account to set.
       * @return This builder for chaining.
       */
      public Builder setAccount(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        account_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * clearing info
       * </pre>
       *
       * <code>optional string account = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccount() {
        account_ = getDefaultInstance().getAccount();
        bitField0_ = (bitField0_ & ~0x00000800);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * clearing info
       * </pre>
       *
       * <code>optional string account = 12;</code>
       * @param value The bytes for account to set.
       * @return This builder for chaining.
       */
      public Builder setAccountBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        account_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }

      private java.lang.Object settlingFirm_ = "";
      /**
       * <code>optional string settlingFirm = 13;</code>
       * @return Whether the settlingFirm field is set.
       */
      public boolean hasSettlingFirm() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional string settlingFirm = 13;</code>
       * @return The settlingFirm.
       */
      public java.lang.String getSettlingFirm() {
        java.lang.Object ref = settlingFirm_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          settlingFirm_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string settlingFirm = 13;</code>
       * @return The bytes for settlingFirm.
       */
      public com.google.protobuf.ByteString
          getSettlingFirmBytes() {
        java.lang.Object ref = settlingFirm_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          settlingFirm_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string settlingFirm = 13;</code>
       * @param value The settlingFirm to set.
       * @return This builder for chaining.
       */
      public Builder setSettlingFirm(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        settlingFirm_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string settlingFirm = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearSettlingFirm() {
        settlingFirm_ = getDefaultInstance().getSettlingFirm();
        bitField0_ = (bitField0_ & ~0x00001000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string settlingFirm = 13;</code>
       * @param value The bytes for settlingFirm to set.
       * @return This builder for chaining.
       */
      public Builder setSettlingFirmBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        settlingFirm_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }

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

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

      private boolean allOrNone_ ;
      /**
       * <pre>
       * secondary attributes
       * </pre>
       *
       * <code>optional bool allOrNone = 16;</code>
       * @return Whether the allOrNone field is set.
       */
      @java.lang.Override
      public boolean hasAllOrNone() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * secondary attributes
       * </pre>
       *
       * <code>optional bool allOrNone = 16;</code>
       * @return The allOrNone.
       */
      @java.lang.Override
      public boolean getAllOrNone() {
        return allOrNone_;
      }
      /**
       * <pre>
       * secondary attributes
       * </pre>
       *
       * <code>optional bool allOrNone = 16;</code>
       * @param value The allOrNone to set.
       * @return This builder for chaining.
       */
      public Builder setAllOrNone(boolean value) {

        allOrNone_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * secondary attributes
       * </pre>
       *
       * <code>optional bool allOrNone = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearAllOrNone() {
        bitField0_ = (bitField0_ & ~0x00008000);
        allOrNone_ = false;
        onChanged();
        return this;
      }

      private boolean blockOrder_ ;
      /**
       * <code>optional bool blockOrder = 17;</code>
       * @return Whether the blockOrder field is set.
       */
      @java.lang.Override
      public boolean hasBlockOrder() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <code>optional bool blockOrder = 17;</code>
       * @return The blockOrder.
       */
      @java.lang.Override
      public boolean getBlockOrder() {
        return blockOrder_;
      }
      /**
       * <code>optional bool blockOrder = 17;</code>
       * @param value The blockOrder to set.
       * @return This builder for chaining.
       */
      public Builder setBlockOrder(boolean value) {

        blockOrder_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool blockOrder = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearBlockOrder() {
        bitField0_ = (bitField0_ & ~0x00010000);
        blockOrder_ = false;
        onChanged();
        return this;
      }

      private boolean hidden_ ;
      /**
       * <code>optional bool hidden = 18;</code>
       * @return Whether the hidden field is set.
       */
      @java.lang.Override
      public boolean hasHidden() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <code>optional bool hidden = 18;</code>
       * @return The hidden.
       */
      @java.lang.Override
      public boolean getHidden() {
        return hidden_;
      }
      /**
       * <code>optional bool hidden = 18;</code>
       * @param value The hidden to set.
       * @return This builder for chaining.
       */
      public Builder setHidden(boolean value) {

        hidden_ = value;
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool hidden = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearHidden() {
        bitField0_ = (bitField0_ & ~0x00020000);
        hidden_ = false;
        onChanged();
        return this;
      }

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

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

      private boolean sweepToFill_ ;
      /**
       * <code>optional bool sweepToFill = 20;</code>
       * @return Whether the sweepToFill field is set.
       */
      @java.lang.Override
      public boolean hasSweepToFill() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>optional bool sweepToFill = 20;</code>
       * @return The sweepToFill.
       */
      @java.lang.Override
      public boolean getSweepToFill() {
        return sweepToFill_;
      }
      /**
       * <code>optional bool sweepToFill = 20;</code>
       * @param value The sweepToFill to set.
       * @return This builder for chaining.
       */
      public Builder setSweepToFill(boolean value) {

        sweepToFill_ = value;
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool sweepToFill = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearSweepToFill() {
        bitField0_ = (bitField0_ & ~0x00080000);
        sweepToFill_ = false;
        onChanged();
        return this;
      }

      private double percentOffset_ ;
      /**
       * <code>optional double percentOffset = 21;</code>
       * @return Whether the percentOffset field is set.
       */
      @java.lang.Override
      public boolean hasPercentOffset() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional double percentOffset = 21;</code>
       * @return The percentOffset.
       */
      @java.lang.Override
      public double getPercentOffset() {
        return percentOffset_;
      }
      /**
       * <code>optional double percentOffset = 21;</code>
       * @param value The percentOffset to set.
       * @return This builder for chaining.
       */
      public Builder setPercentOffset(double value) {

        percentOffset_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double percentOffset = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearPercentOffset() {
        bitField0_ = (bitField0_ & ~0x00100000);
        percentOffset_ = 0D;
        onChanged();
        return this;
      }

      private double trailingPercent_ ;
      /**
       * <code>optional double trailingPercent = 22;</code>
       * @return Whether the trailingPercent field is set.
       */
      @java.lang.Override
      public boolean hasTrailingPercent() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <code>optional double trailingPercent = 22;</code>
       * @return The trailingPercent.
       */
      @java.lang.Override
      public double getTrailingPercent() {
        return trailingPercent_;
      }
      /**
       * <code>optional double trailingPercent = 22;</code>
       * @param value The trailingPercent to set.
       * @return This builder for chaining.
       */
      public Builder setTrailingPercent(double value) {

        trailingPercent_ = value;
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double trailingPercent = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearTrailingPercent() {
        bitField0_ = (bitField0_ & ~0x00200000);
        trailingPercent_ = 0D;
        onChanged();
        return this;
      }

      private double trailStopPrice_ ;
      /**
       * <code>optional double trailStopPrice = 23;</code>
       * @return Whether the trailStopPrice field is set.
       */
      @java.lang.Override
      public boolean hasTrailStopPrice() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <code>optional double trailStopPrice = 23;</code>
       * @return The trailStopPrice.
       */
      @java.lang.Override
      public double getTrailStopPrice() {
        return trailStopPrice_;
      }
      /**
       * <code>optional double trailStopPrice = 23;</code>
       * @param value The trailStopPrice to set.
       * @return This builder for chaining.
       */
      public Builder setTrailStopPrice(double value) {

        trailStopPrice_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double trailStopPrice = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearTrailStopPrice() {
        bitField0_ = (bitField0_ & ~0x00400000);
        trailStopPrice_ = 0D;
        onChanged();
        return this;
      }

      private int minQty_ ;
      /**
       * <code>optional int32 minQty = 24;</code>
       * @return Whether the minQty field is set.
       */
      @java.lang.Override
      public boolean hasMinQty() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <code>optional int32 minQty = 24;</code>
       * @return The minQty.
       */
      @java.lang.Override
      public int getMinQty() {
        return minQty_;
      }
      /**
       * <code>optional int32 minQty = 24;</code>
       * @param value The minQty to set.
       * @return This builder for chaining.
       */
      public Builder setMinQty(int value) {

        minQty_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 minQty = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinQty() {
        bitField0_ = (bitField0_ & ~0x00800000);
        minQty_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object goodAfterTime_ = "";
      /**
       * <code>optional string goodAfterTime = 25;</code>
       * @return Whether the goodAfterTime field is set.
       */
      public boolean hasGoodAfterTime() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <code>optional string goodAfterTime = 25;</code>
       * @return The goodAfterTime.
       */
      public java.lang.String getGoodAfterTime() {
        java.lang.Object ref = goodAfterTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          goodAfterTime_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string goodAfterTime = 25;</code>
       * @return The bytes for goodAfterTime.
       */
      public com.google.protobuf.ByteString
          getGoodAfterTimeBytes() {
        java.lang.Object ref = goodAfterTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          goodAfterTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string goodAfterTime = 25;</code>
       * @param value The goodAfterTime to set.
       * @return This builder for chaining.
       */
      public Builder setGoodAfterTime(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        goodAfterTime_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string goodAfterTime = 25;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodAfterTime() {
        goodAfterTime_ = getDefaultInstance().getGoodAfterTime();
        bitField0_ = (bitField0_ & ~0x01000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string goodAfterTime = 25;</code>
       * @param value The bytes for goodAfterTime to set.
       * @return This builder for chaining.
       */
      public Builder setGoodAfterTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        goodAfterTime_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }

      private java.lang.Object goodTillDate_ = "";
      /**
       * <code>optional string goodTillDate = 26;</code>
       * @return Whether the goodTillDate field is set.
       */
      public boolean hasGoodTillDate() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <code>optional string goodTillDate = 26;</code>
       * @return The goodTillDate.
       */
      public java.lang.String getGoodTillDate() {
        java.lang.Object ref = goodTillDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          goodTillDate_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string goodTillDate = 26;</code>
       * @return The bytes for goodTillDate.
       */
      public com.google.protobuf.ByteString
          getGoodTillDateBytes() {
        java.lang.Object ref = goodTillDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          goodTillDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string goodTillDate = 26;</code>
       * @param value The goodTillDate to set.
       * @return This builder for chaining.
       */
      public Builder setGoodTillDate(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        goodTillDate_ = value;
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string goodTillDate = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoodTillDate() {
        goodTillDate_ = getDefaultInstance().getGoodTillDate();
        bitField0_ = (bitField0_ & ~0x02000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string goodTillDate = 26;</code>
       * @param value The bytes for goodTillDate to set.
       * @return This builder for chaining.
       */
      public Builder setGoodTillDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        goodTillDate_ = value;
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }

      private java.lang.Object ocaGroup_ = "";
      /**
       * <code>optional string ocaGroup = 27;</code>
       * @return Whether the ocaGroup field is set.
       */
      public boolean hasOcaGroup() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <code>optional string ocaGroup = 27;</code>
       * @return The ocaGroup.
       */
      public java.lang.String getOcaGroup() {
        java.lang.Object ref = ocaGroup_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ocaGroup_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string ocaGroup = 27;</code>
       * @return The bytes for ocaGroup.
       */
      public com.google.protobuf.ByteString
          getOcaGroupBytes() {
        java.lang.Object ref = ocaGroup_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ocaGroup_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string ocaGroup = 27;</code>
       * @param value The ocaGroup to set.
       * @return This builder for chaining.
       */
      public Builder setOcaGroup(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ocaGroup_ = value;
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string ocaGroup = 27;</code>
       * @return This builder for chaining.
       */
      public Builder clearOcaGroup() {
        ocaGroup_ = getDefaultInstance().getOcaGroup();
        bitField0_ = (bitField0_ & ~0x04000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string ocaGroup = 27;</code>
       * @param value The bytes for ocaGroup to set.
       * @return This builder for chaining.
       */
      public Builder setOcaGroupBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ocaGroup_ = value;
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }

      private java.lang.Object orderRef_ = "";
      /**
       * <code>optional string orderRef = 28;</code>
       * @return Whether the orderRef field is set.
       */
      public boolean hasOrderRef() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <code>optional string orderRef = 28;</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 = 28;</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 = 28;</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_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string orderRef = 28;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrderRef() {
        orderRef_ = getDefaultInstance().getOrderRef();
        bitField0_ = (bitField0_ & ~0x08000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string orderRef = 28;</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_ |= 0x08000000;
        onChanged();
        return this;
      }

      private java.lang.Object rule80A_ = "";
      /**
       * <code>optional string rule80A = 29;</code>
       * @return Whether the rule80A field is set.
       */
      public boolean hasRule80A() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <code>optional string rule80A = 29;</code>
       * @return The rule80A.
       */
      public java.lang.String getRule80A() {
        java.lang.Object ref = rule80A_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          rule80A_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string rule80A = 29;</code>
       * @return The bytes for rule80A.
       */
      public com.google.protobuf.ByteString
          getRule80ABytes() {
        java.lang.Object ref = rule80A_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rule80A_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string rule80A = 29;</code>
       * @param value The rule80A to set.
       * @return This builder for chaining.
       */
      public Builder setRule80A(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        rule80A_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string rule80A = 29;</code>
       * @return This builder for chaining.
       */
      public Builder clearRule80A() {
        rule80A_ = getDefaultInstance().getRule80A();
        bitField0_ = (bitField0_ & ~0x10000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string rule80A = 29;</code>
       * @param value The bytes for rule80A to set.
       * @return This builder for chaining.
       */
      public Builder setRule80ABytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        rule80A_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }

      private int ocaType_ ;
      /**
       * <code>optional int32 ocaType = 30;</code>
       * @return Whether the ocaType field is set.
       */
      @java.lang.Override
      public boolean hasOcaType() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <code>optional int32 ocaType = 30;</code>
       * @return The ocaType.
       */
      @java.lang.Override
      public int getOcaType() {
        return ocaType_;
      }
      /**
       * <code>optional int32 ocaType = 30;</code>
       * @param value The ocaType to set.
       * @return This builder for chaining.
       */
      public Builder setOcaType(int value) {

        ocaType_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 ocaType = 30;</code>
       * @return This builder for chaining.
       */
      public Builder clearOcaType() {
        bitField0_ = (bitField0_ & ~0x20000000);
        ocaType_ = 0;
        onChanged();
        return this;
      }

      private int triggerMethod_ ;
      /**
       * <code>optional int32 triggerMethod = 31;</code>
       * @return Whether the triggerMethod field is set.
       */
      @java.lang.Override
      public boolean hasTriggerMethod() {
        return ((bitField0_ & 0x40000000) != 0);
      }
      /**
       * <code>optional int32 triggerMethod = 31;</code>
       * @return The triggerMethod.
       */
      @java.lang.Override
      public int getTriggerMethod() {
        return triggerMethod_;
      }
      /**
       * <code>optional int32 triggerMethod = 31;</code>
       * @param value The triggerMethod to set.
       * @return This builder for chaining.
       */
      public Builder setTriggerMethod(int value) {

        triggerMethod_ = value;
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 triggerMethod = 31;</code>
       * @return This builder for chaining.
       */
      public Builder clearTriggerMethod() {
        bitField0_ = (bitField0_ & ~0x40000000);
        triggerMethod_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object activeStartTime_ = "";
      /**
       * <pre>
       * extended order fields
       * </pre>
       *
       * <code>optional string activeStartTime = 32;</code>
       * @return Whether the activeStartTime field is set.
       */
      public boolean hasActiveStartTime() {
        return ((bitField0_ & 0x80000000) != 0);
      }
      /**
       * <pre>
       * extended order fields
       * </pre>
       *
       * <code>optional string activeStartTime = 32;</code>
       * @return The activeStartTime.
       */
      public java.lang.String getActiveStartTime() {
        java.lang.Object ref = activeStartTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          activeStartTime_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * extended order fields
       * </pre>
       *
       * <code>optional string activeStartTime = 32;</code>
       * @return The bytes for activeStartTime.
       */
      public com.google.protobuf.ByteString
          getActiveStartTimeBytes() {
        java.lang.Object ref = activeStartTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          activeStartTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * extended order fields
       * </pre>
       *
       * <code>optional string activeStartTime = 32;</code>
       * @param value The activeStartTime to set.
       * @return This builder for chaining.
       */
      public Builder setActiveStartTime(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        activeStartTime_ = value;
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * extended order fields
       * </pre>
       *
       * <code>optional string activeStartTime = 32;</code>
       * @return This builder for chaining.
       */
      public Builder clearActiveStartTime() {
        activeStartTime_ = getDefaultInstance().getActiveStartTime();
        bitField0_ = (bitField0_ & ~0x80000000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * extended order fields
       * </pre>
       *
       * <code>optional string activeStartTime = 32;</code>
       * @param value The bytes for activeStartTime to set.
       * @return This builder for chaining.
       */
      public Builder setActiveStartTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        activeStartTime_ = value;
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }

      private java.lang.Object activeStopTime_ = "";
      /**
       * <code>optional string activeStopTime = 33;</code>
       * @return Whether the activeStopTime field is set.
       */
      public boolean hasActiveStopTime() {
        return ((bitField1_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string activeStopTime = 33;</code>
       * @return The activeStopTime.
       */
      public java.lang.String getActiveStopTime() {
        java.lang.Object ref = activeStopTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          activeStopTime_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string activeStopTime = 33;</code>
       * @return The bytes for activeStopTime.
       */
      public com.google.protobuf.ByteString
          getActiveStopTimeBytes() {
        java.lang.Object ref = activeStopTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          activeStopTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string activeStopTime = 33;</code>
       * @param value The activeStopTime to set.
       * @return This builder for chaining.
       */
      public Builder setActiveStopTime(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        activeStopTime_ = value;
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional string activeStopTime = 33;</code>
       * @return This builder for chaining.
       */
      public Builder clearActiveStopTime() {
        activeStopTime_ = getDefaultInstance().getActiveStopTime();
        bitField1_ = (bitField1_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>optional string activeStopTime = 33;</code>
       * @param value The bytes for activeStopTime to set.
       * @return This builder for chaining.
       */
      public Builder setActiveStopTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        activeStopTime_ = value;
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object faGroup_ = "";
      /**
       * <pre>
       * advisor allocation orders
       * </pre>
       *
       * <code>optional string faGroup = 34;</code>
       * @return Whether the faGroup field is set.
       */
      public boolean hasFaGroup() {
        return ((bitField1_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * advisor allocation orders
       * </pre>
       *
       * <code>optional string faGroup = 34;</code>
       * @return The faGroup.
       */
      public java.lang.String getFaGroup() {
        java.lang.Object ref = faGroup_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          faGroup_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * advisor allocation orders
       * </pre>
       *
       * <code>optional string faGroup = 34;</code>
       * @return The bytes for faGroup.
       */
      public com.google.protobuf.ByteString
          getFaGroupBytes() {
        java.lang.Object ref = faGroup_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          faGroup_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * advisor allocation orders
       * </pre>
       *
       * <code>optional string faGroup = 34;</code>
       * @param value The faGroup to set.
       * @return This builder for chaining.
       */
      public Builder setFaGroup(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        faGroup_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * advisor allocation orders
       * </pre>
       *
       * <code>optional string faGroup = 34;</code>
       * @return This builder for chaining.
       */
      public Builder clearFaGroup() {
        faGroup_ = getDefaultInstance().getFaGroup();
        bitField1_ = (bitField1_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * advisor allocation orders
       * </pre>
       *
       * <code>optional string faGroup = 34;</code>
       * @param value The bytes for faGroup to set.
       * @return This builder for chaining.
       */
      public Builder setFaGroupBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        faGroup_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.lang.Object faMethod_ = "";
      /**
       * <code>optional string faMethod = 35;</code>
       * @return Whether the faMethod field is set.
       */
      public boolean hasFaMethod() {
        return ((bitField1_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string faMethod = 35;</code>
       * @return The faMethod.
       */
      public java.lang.String getFaMethod() {
        java.lang.Object ref = faMethod_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          faMethod_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string faMethod = 35;</code>
       * @return The bytes for faMethod.
       */
      public com.google.protobuf.ByteString
          getFaMethodBytes() {
        java.lang.Object ref = faMethod_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          faMethod_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string faMethod = 35;</code>
       * @param value The faMethod to set.
       * @return This builder for chaining.
       */
      public Builder setFaMethod(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        faMethod_ = value;
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional string faMethod = 35;</code>
       * @return This builder for chaining.
       */
      public Builder clearFaMethod() {
        faMethod_ = getDefaultInstance().getFaMethod();
        bitField1_ = (bitField1_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>optional string faMethod = 35;</code>
       * @param value The bytes for faMethod to set.
       * @return This builder for chaining.
       */
      public Builder setFaMethodBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        faMethod_ = value;
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }

      private java.lang.Object faPercentage_ = "";
      /**
       * <code>optional string faPercentage = 36;</code>
       * @return Whether the faPercentage field is set.
       */
      public boolean hasFaPercentage() {
        return ((bitField1_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string faPercentage = 36;</code>
       * @return The faPercentage.
       */
      public java.lang.String getFaPercentage() {
        java.lang.Object ref = faPercentage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          faPercentage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string faPercentage = 36;</code>
       * @return The bytes for faPercentage.
       */
      public com.google.protobuf.ByteString
          getFaPercentageBytes() {
        java.lang.Object ref = faPercentage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          faPercentage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string faPercentage = 36;</code>
       * @param value The faPercentage to set.
       * @return This builder for chaining.
       */
      public Builder setFaPercentage(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        faPercentage_ = value;
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional string faPercentage = 36;</code>
       * @return This builder for chaining.
       */
      public Builder clearFaPercentage() {
        faPercentage_ = getDefaultInstance().getFaPercentage();
        bitField1_ = (bitField1_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>optional string faPercentage = 36;</code>
       * @param value The bytes for faPercentage to set.
       * @return This builder for chaining.
       */
      public Builder setFaPercentageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        faPercentage_ = value;
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }

      private double volatility_ ;
      /**
       * <pre>
       * volatility orders
       * </pre>
       *
       * <code>optional double volatility = 37;</code>
       * @return Whether the volatility field is set.
       */
      @java.lang.Override
      public boolean hasVolatility() {
        return ((bitField1_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * volatility orders
       * </pre>
       *
       * <code>optional double volatility = 37;</code>
       * @return The volatility.
       */
      @java.lang.Override
      public double getVolatility() {
        return volatility_;
      }
      /**
       * <pre>
       * volatility orders
       * </pre>
       *
       * <code>optional double volatility = 37;</code>
       * @param value The volatility to set.
       * @return This builder for chaining.
       */
      public Builder setVolatility(double value) {

        volatility_ = value;
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * volatility orders
       * </pre>
       *
       * <code>optional double volatility = 37;</code>
       * @return This builder for chaining.
       */
      public Builder clearVolatility() {
        bitField1_ = (bitField1_ & ~0x00000010);
        volatility_ = 0D;
        onChanged();
        return this;
      }

      private int volatilityType_ ;
      /**
       * <code>optional int32 volatilityType = 38;</code>
       * @return Whether the volatilityType field is set.
       */
      @java.lang.Override
      public boolean hasVolatilityType() {
        return ((bitField1_ & 0x00000020) != 0);
      }
      /**
       * <code>optional int32 volatilityType = 38;</code>
       * @return The volatilityType.
       */
      @java.lang.Override
      public int getVolatilityType() {
        return volatilityType_;
      }
      /**
       * <code>optional int32 volatilityType = 38;</code>
       * @param value The volatilityType to set.
       * @return This builder for chaining.
       */
      public Builder setVolatilityType(int value) {

        volatilityType_ = value;
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 volatilityType = 38;</code>
       * @return This builder for chaining.
       */
      public Builder clearVolatilityType() {
        bitField1_ = (bitField1_ & ~0x00000020);
        volatilityType_ = 0;
        onChanged();
        return this;
      }

      private boolean continuousUpdate_ ;
      /**
       * <code>optional bool continuousUpdate = 39;</code>
       * @return Whether the continuousUpdate field is set.
       */
      @java.lang.Override
      public boolean hasContinuousUpdate() {
        return ((bitField1_ & 0x00000040) != 0);
      }
      /**
       * <code>optional bool continuousUpdate = 39;</code>
       * @return The continuousUpdate.
       */
      @java.lang.Override
      public boolean getContinuousUpdate() {
        return continuousUpdate_;
      }
      /**
       * <code>optional bool continuousUpdate = 39;</code>
       * @param value The continuousUpdate to set.
       * @return This builder for chaining.
       */
      public Builder setContinuousUpdate(boolean value) {

        continuousUpdate_ = value;
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool continuousUpdate = 39;</code>
       * @return This builder for chaining.
       */
      public Builder clearContinuousUpdate() {
        bitField1_ = (bitField1_ & ~0x00000040);
        continuousUpdate_ = false;
        onChanged();
        return this;
      }

      private int referencePriceType_ ;
      /**
       * <code>optional int32 referencePriceType = 40;</code>
       * @return Whether the referencePriceType field is set.
       */
      @java.lang.Override
      public boolean hasReferencePriceType() {
        return ((bitField1_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int32 referencePriceType = 40;</code>
       * @return The referencePriceType.
       */
      @java.lang.Override
      public int getReferencePriceType() {
        return referencePriceType_;
      }
      /**
       * <code>optional int32 referencePriceType = 40;</code>
       * @param value The referencePriceType to set.
       * @return This builder for chaining.
       */
      public Builder setReferencePriceType(int value) {

        referencePriceType_ = value;
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 referencePriceType = 40;</code>
       * @return This builder for chaining.
       */
      public Builder clearReferencePriceType() {
        bitField1_ = (bitField1_ & ~0x00000080);
        referencePriceType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object deltaNeutralOrderType_ = "";
      /**
       * <code>optional string deltaNeutralOrderType = 41;</code>
       * @return Whether the deltaNeutralOrderType field is set.
       */
      public boolean hasDeltaNeutralOrderType() {
        return ((bitField1_ & 0x00000100) != 0);
      }
      /**
       * <code>optional string deltaNeutralOrderType = 41;</code>
       * @return The deltaNeutralOrderType.
       */
      public java.lang.String getDeltaNeutralOrderType() {
        java.lang.Object ref = deltaNeutralOrderType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deltaNeutralOrderType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralOrderType = 41;</code>
       * @return The bytes for deltaNeutralOrderType.
       */
      public com.google.protobuf.ByteString
          getDeltaNeutralOrderTypeBytes() {
        java.lang.Object ref = deltaNeutralOrderType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deltaNeutralOrderType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralOrderType = 41;</code>
       * @param value The deltaNeutralOrderType to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralOrderType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        deltaNeutralOrderType_ = value;
        bitField1_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralOrderType = 41;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralOrderType() {
        deltaNeutralOrderType_ = getDefaultInstance().getDeltaNeutralOrderType();
        bitField1_ = (bitField1_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralOrderType = 41;</code>
       * @param value The bytes for deltaNeutralOrderType to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralOrderTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        deltaNeutralOrderType_ = value;
        bitField1_ |= 0x00000100;
        onChanged();
        return this;
      }

      private double deltaNeutralAuxPrice_ ;
      /**
       * <code>optional double deltaNeutralAuxPrice = 42;</code>
       * @return Whether the deltaNeutralAuxPrice field is set.
       */
      @java.lang.Override
      public boolean hasDeltaNeutralAuxPrice() {
        return ((bitField1_ & 0x00000200) != 0);
      }
      /**
       * <code>optional double deltaNeutralAuxPrice = 42;</code>
       * @return The deltaNeutralAuxPrice.
       */
      @java.lang.Override
      public double getDeltaNeutralAuxPrice() {
        return deltaNeutralAuxPrice_;
      }
      /**
       * <code>optional double deltaNeutralAuxPrice = 42;</code>
       * @param value The deltaNeutralAuxPrice to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralAuxPrice(double value) {

        deltaNeutralAuxPrice_ = value;
        bitField1_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional double deltaNeutralAuxPrice = 42;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralAuxPrice() {
        bitField1_ = (bitField1_ & ~0x00000200);
        deltaNeutralAuxPrice_ = 0D;
        onChanged();
        return this;
      }

      private int deltaNeutralConId_ ;
      /**
       * <code>optional int32 deltaNeutralConId = 43;</code>
       * @return Whether the deltaNeutralConId field is set.
       */
      @java.lang.Override
      public boolean hasDeltaNeutralConId() {
        return ((bitField1_ & 0x00000400) != 0);
      }
      /**
       * <code>optional int32 deltaNeutralConId = 43;</code>
       * @return The deltaNeutralConId.
       */
      @java.lang.Override
      public int getDeltaNeutralConId() {
        return deltaNeutralConId_;
      }
      /**
       * <code>optional int32 deltaNeutralConId = 43;</code>
       * @param value The deltaNeutralConId to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralConId(int value) {

        deltaNeutralConId_ = value;
        bitField1_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deltaNeutralConId = 43;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralConId() {
        bitField1_ = (bitField1_ & ~0x00000400);
        deltaNeutralConId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object deltaNeutralOpenClose_ = "";
      /**
       * <code>optional string deltaNeutralOpenClose = 44;</code>
       * @return Whether the deltaNeutralOpenClose field is set.
       */
      public boolean hasDeltaNeutralOpenClose() {
        return ((bitField1_ & 0x00000800) != 0);
      }
      /**
       * <code>optional string deltaNeutralOpenClose = 44;</code>
       * @return The deltaNeutralOpenClose.
       */
      public java.lang.String getDeltaNeutralOpenClose() {
        java.lang.Object ref = deltaNeutralOpenClose_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deltaNeutralOpenClose_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralOpenClose = 44;</code>
       * @return The bytes for deltaNeutralOpenClose.
       */
      public com.google.protobuf.ByteString
          getDeltaNeutralOpenCloseBytes() {
        java.lang.Object ref = deltaNeutralOpenClose_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deltaNeutralOpenClose_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralOpenClose = 44;</code>
       * @param value The deltaNeutralOpenClose to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralOpenClose(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        deltaNeutralOpenClose_ = value;
        bitField1_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralOpenClose = 44;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralOpenClose() {
        deltaNeutralOpenClose_ = getDefaultInstance().getDeltaNeutralOpenClose();
        bitField1_ = (bitField1_ & ~0x00000800);
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralOpenClose = 44;</code>
       * @param value The bytes for deltaNeutralOpenClose to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralOpenCloseBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        deltaNeutralOpenClose_ = value;
        bitField1_ |= 0x00000800;
        onChanged();
        return this;
      }

      private boolean deltaNeutralShortSale_ ;
      /**
       * <code>optional bool deltaNeutralShortSale = 45;</code>
       * @return Whether the deltaNeutralShortSale field is set.
       */
      @java.lang.Override
      public boolean hasDeltaNeutralShortSale() {
        return ((bitField1_ & 0x00001000) != 0);
      }
      /**
       * <code>optional bool deltaNeutralShortSale = 45;</code>
       * @return The deltaNeutralShortSale.
       */
      @java.lang.Override
      public boolean getDeltaNeutralShortSale() {
        return deltaNeutralShortSale_;
      }
      /**
       * <code>optional bool deltaNeutralShortSale = 45;</code>
       * @param value The deltaNeutralShortSale to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralShortSale(boolean value) {

        deltaNeutralShortSale_ = value;
        bitField1_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool deltaNeutralShortSale = 45;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralShortSale() {
        bitField1_ = (bitField1_ & ~0x00001000);
        deltaNeutralShortSale_ = false;
        onChanged();
        return this;
      }

      private int deltaNeutralShortSaleSlot_ ;
      /**
       * <code>optional int32 deltaNeutralShortSaleSlot = 46;</code>
       * @return Whether the deltaNeutralShortSaleSlot field is set.
       */
      @java.lang.Override
      public boolean hasDeltaNeutralShortSaleSlot() {
        return ((bitField1_ & 0x00002000) != 0);
      }
      /**
       * <code>optional int32 deltaNeutralShortSaleSlot = 46;</code>
       * @return The deltaNeutralShortSaleSlot.
       */
      @java.lang.Override
      public int getDeltaNeutralShortSaleSlot() {
        return deltaNeutralShortSaleSlot_;
      }
      /**
       * <code>optional int32 deltaNeutralShortSaleSlot = 46;</code>
       * @param value The deltaNeutralShortSaleSlot to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralShortSaleSlot(int value) {

        deltaNeutralShortSaleSlot_ = value;
        bitField1_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deltaNeutralShortSaleSlot = 46;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralShortSaleSlot() {
        bitField1_ = (bitField1_ & ~0x00002000);
        deltaNeutralShortSaleSlot_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object deltaNeutralDesignatedLocation_ = "";
      /**
       * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
       * @return Whether the deltaNeutralDesignatedLocation field is set.
       */
      public boolean hasDeltaNeutralDesignatedLocation() {
        return ((bitField1_ & 0x00004000) != 0);
      }
      /**
       * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
       * @return The deltaNeutralDesignatedLocation.
       */
      public java.lang.String getDeltaNeutralDesignatedLocation() {
        java.lang.Object ref = deltaNeutralDesignatedLocation_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deltaNeutralDesignatedLocation_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
       * @return The bytes for deltaNeutralDesignatedLocation.
       */
      public com.google.protobuf.ByteString
          getDeltaNeutralDesignatedLocationBytes() {
        java.lang.Object ref = deltaNeutralDesignatedLocation_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deltaNeutralDesignatedLocation_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
       * @param value The deltaNeutralDesignatedLocation to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralDesignatedLocation(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        deltaNeutralDesignatedLocation_ = value;
        bitField1_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralDesignatedLocation() {
        deltaNeutralDesignatedLocation_ = getDefaultInstance().getDeltaNeutralDesignatedLocation();
        bitField1_ = (bitField1_ & ~0x00004000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralDesignatedLocation = 47;</code>
       * @param value The bytes for deltaNeutralDesignatedLocation to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralDesignatedLocationBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        deltaNeutralDesignatedLocation_ = value;
        bitField1_ |= 0x00004000;
        onChanged();
        return this;
      }

      private int scaleInitLevelSize_ ;
      /**
       * <pre>
       * scale orders
       * </pre>
       *
       * <code>optional int32 scaleInitLevelSize = 48;</code>
       * @return Whether the scaleInitLevelSize field is set.
       */
      @java.lang.Override
      public boolean hasScaleInitLevelSize() {
        return ((bitField1_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * scale orders
       * </pre>
       *
       * <code>optional int32 scaleInitLevelSize = 48;</code>
       * @return The scaleInitLevelSize.
       */
      @java.lang.Override
      public int getScaleInitLevelSize() {
        return scaleInitLevelSize_;
      }
      /**
       * <pre>
       * scale orders
       * </pre>
       *
       * <code>optional int32 scaleInitLevelSize = 48;</code>
       * @param value The scaleInitLevelSize to set.
       * @return This builder for chaining.
       */
      public Builder setScaleInitLevelSize(int value) {

        scaleInitLevelSize_ = value;
        bitField1_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * scale orders
       * </pre>
       *
       * <code>optional int32 scaleInitLevelSize = 48;</code>
       * @return This builder for chaining.
       */
      public Builder clearScaleInitLevelSize() {
        bitField1_ = (bitField1_ & ~0x00008000);
        scaleInitLevelSize_ = 0;
        onChanged();
        return this;
      }

      private int scaleSubsLevelSize_ ;
      /**
       * <code>optional int32 scaleSubsLevelSize = 49;</code>
       * @return Whether the scaleSubsLevelSize field is set.
       */
      @java.lang.Override
      public boolean hasScaleSubsLevelSize() {
        return ((bitField1_ & 0x00010000) != 0);
      }
      /**
       * <code>optional int32 scaleSubsLevelSize = 49;</code>
       * @return The scaleSubsLevelSize.
       */
      @java.lang.Override
      public int getScaleSubsLevelSize() {
        return scaleSubsLevelSize_;
      }
      /**
       * <code>optional int32 scaleSubsLevelSize = 49;</code>
       * @param value The scaleSubsLevelSize to set.
       * @return This builder for chaining.
       */
      public Builder setScaleSubsLevelSize(int value) {

        scaleSubsLevelSize_ = value;
        bitField1_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 scaleSubsLevelSize = 49;</code>
       * @return This builder for chaining.
       */
      public Builder clearScaleSubsLevelSize() {
        bitField1_ = (bitField1_ & ~0x00010000);
        scaleSubsLevelSize_ = 0;
        onChanged();
        return this;
      }

      private double scalePriceIncrement_ ;
      /**
       * <code>optional double scalePriceIncrement = 50;</code>
       * @return Whether the scalePriceIncrement field is set.
       */
      @java.lang.Override
      public boolean hasScalePriceIncrement() {
        return ((bitField1_ & 0x00020000) != 0);
      }
      /**
       * <code>optional double scalePriceIncrement = 50;</code>
       * @return The scalePriceIncrement.
       */
      @java.lang.Override
      public double getScalePriceIncrement() {
        return scalePriceIncrement_;
      }
      /**
       * <code>optional double scalePriceIncrement = 50;</code>
       * @param value The scalePriceIncrement to set.
       * @return This builder for chaining.
       */
      public Builder setScalePriceIncrement(double value) {

        scalePriceIncrement_ = value;
        bitField1_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double scalePriceIncrement = 50;</code>
       * @return This builder for chaining.
       */
      public Builder clearScalePriceIncrement() {
        bitField1_ = (bitField1_ & ~0x00020000);
        scalePriceIncrement_ = 0D;
        onChanged();
        return this;
      }

      private double scalePriceAdjustValue_ ;
      /**
       * <code>optional double scalePriceAdjustValue = 51;</code>
       * @return Whether the scalePriceAdjustValue field is set.
       */
      @java.lang.Override
      public boolean hasScalePriceAdjustValue() {
        return ((bitField1_ & 0x00040000) != 0);
      }
      /**
       * <code>optional double scalePriceAdjustValue = 51;</code>
       * @return The scalePriceAdjustValue.
       */
      @java.lang.Override
      public double getScalePriceAdjustValue() {
        return scalePriceAdjustValue_;
      }
      /**
       * <code>optional double scalePriceAdjustValue = 51;</code>
       * @param value The scalePriceAdjustValue to set.
       * @return This builder for chaining.
       */
      public Builder setScalePriceAdjustValue(double value) {

        scalePriceAdjustValue_ = value;
        bitField1_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double scalePriceAdjustValue = 51;</code>
       * @return This builder for chaining.
       */
      public Builder clearScalePriceAdjustValue() {
        bitField1_ = (bitField1_ & ~0x00040000);
        scalePriceAdjustValue_ = 0D;
        onChanged();
        return this;
      }

      private int scalePriceAdjustInterval_ ;
      /**
       * <code>optional int32 scalePriceAdjustInterval = 52;</code>
       * @return Whether the scalePriceAdjustInterval field is set.
       */
      @java.lang.Override
      public boolean hasScalePriceAdjustInterval() {
        return ((bitField1_ & 0x00080000) != 0);
      }
      /**
       * <code>optional int32 scalePriceAdjustInterval = 52;</code>
       * @return The scalePriceAdjustInterval.
       */
      @java.lang.Override
      public int getScalePriceAdjustInterval() {
        return scalePriceAdjustInterval_;
      }
      /**
       * <code>optional int32 scalePriceAdjustInterval = 52;</code>
       * @param value The scalePriceAdjustInterval to set.
       * @return This builder for chaining.
       */
      public Builder setScalePriceAdjustInterval(int value) {

        scalePriceAdjustInterval_ = value;
        bitField1_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 scalePriceAdjustInterval = 52;</code>
       * @return This builder for chaining.
       */
      public Builder clearScalePriceAdjustInterval() {
        bitField1_ = (bitField1_ & ~0x00080000);
        scalePriceAdjustInterval_ = 0;
        onChanged();
        return this;
      }

      private double scaleProfitOffset_ ;
      /**
       * <code>optional double scaleProfitOffset = 53;</code>
       * @return Whether the scaleProfitOffset field is set.
       */
      @java.lang.Override
      public boolean hasScaleProfitOffset() {
        return ((bitField1_ & 0x00100000) != 0);
      }
      /**
       * <code>optional double scaleProfitOffset = 53;</code>
       * @return The scaleProfitOffset.
       */
      @java.lang.Override
      public double getScaleProfitOffset() {
        return scaleProfitOffset_;
      }
      /**
       * <code>optional double scaleProfitOffset = 53;</code>
       * @param value The scaleProfitOffset to set.
       * @return This builder for chaining.
       */
      public Builder setScaleProfitOffset(double value) {

        scaleProfitOffset_ = value;
        bitField1_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double scaleProfitOffset = 53;</code>
       * @return This builder for chaining.
       */
      public Builder clearScaleProfitOffset() {
        bitField1_ = (bitField1_ & ~0x00100000);
        scaleProfitOffset_ = 0D;
        onChanged();
        return this;
      }

      private boolean scaleAutoReset_ ;
      /**
       * <code>optional bool scaleAutoReset = 54;</code>
       * @return Whether the scaleAutoReset field is set.
       */
      @java.lang.Override
      public boolean hasScaleAutoReset() {
        return ((bitField1_ & 0x00200000) != 0);
      }
      /**
       * <code>optional bool scaleAutoReset = 54;</code>
       * @return The scaleAutoReset.
       */
      @java.lang.Override
      public boolean getScaleAutoReset() {
        return scaleAutoReset_;
      }
      /**
       * <code>optional bool scaleAutoReset = 54;</code>
       * @param value The scaleAutoReset to set.
       * @return This builder for chaining.
       */
      public Builder setScaleAutoReset(boolean value) {

        scaleAutoReset_ = value;
        bitField1_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool scaleAutoReset = 54;</code>
       * @return This builder for chaining.
       */
      public Builder clearScaleAutoReset() {
        bitField1_ = (bitField1_ & ~0x00200000);
        scaleAutoReset_ = false;
        onChanged();
        return this;
      }

      private int scaleInitPosition_ ;
      /**
       * <code>optional int32 scaleInitPosition = 55;</code>
       * @return Whether the scaleInitPosition field is set.
       */
      @java.lang.Override
      public boolean hasScaleInitPosition() {
        return ((bitField1_ & 0x00400000) != 0);
      }
      /**
       * <code>optional int32 scaleInitPosition = 55;</code>
       * @return The scaleInitPosition.
       */
      @java.lang.Override
      public int getScaleInitPosition() {
        return scaleInitPosition_;
      }
      /**
       * <code>optional int32 scaleInitPosition = 55;</code>
       * @param value The scaleInitPosition to set.
       * @return This builder for chaining.
       */
      public Builder setScaleInitPosition(int value) {

        scaleInitPosition_ = value;
        bitField1_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 scaleInitPosition = 55;</code>
       * @return This builder for chaining.
       */
      public Builder clearScaleInitPosition() {
        bitField1_ = (bitField1_ & ~0x00400000);
        scaleInitPosition_ = 0;
        onChanged();
        return this;
      }

      private int scaleInitFillQty_ ;
      /**
       * <code>optional int32 scaleInitFillQty = 56;</code>
       * @return Whether the scaleInitFillQty field is set.
       */
      @java.lang.Override
      public boolean hasScaleInitFillQty() {
        return ((bitField1_ & 0x00800000) != 0);
      }
      /**
       * <code>optional int32 scaleInitFillQty = 56;</code>
       * @return The scaleInitFillQty.
       */
      @java.lang.Override
      public int getScaleInitFillQty() {
        return scaleInitFillQty_;
      }
      /**
       * <code>optional int32 scaleInitFillQty = 56;</code>
       * @param value The scaleInitFillQty to set.
       * @return This builder for chaining.
       */
      public Builder setScaleInitFillQty(int value) {

        scaleInitFillQty_ = value;
        bitField1_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 scaleInitFillQty = 56;</code>
       * @return This builder for chaining.
       */
      public Builder clearScaleInitFillQty() {
        bitField1_ = (bitField1_ & ~0x00800000);
        scaleInitFillQty_ = 0;
        onChanged();
        return this;
      }

      private boolean scaleRandomPercent_ ;
      /**
       * <code>optional bool scaleRandomPercent = 57;</code>
       * @return Whether the scaleRandomPercent field is set.
       */
      @java.lang.Override
      public boolean hasScaleRandomPercent() {
        return ((bitField1_ & 0x01000000) != 0);
      }
      /**
       * <code>optional bool scaleRandomPercent = 57;</code>
       * @return The scaleRandomPercent.
       */
      @java.lang.Override
      public boolean getScaleRandomPercent() {
        return scaleRandomPercent_;
      }
      /**
       * <code>optional bool scaleRandomPercent = 57;</code>
       * @param value The scaleRandomPercent to set.
       * @return This builder for chaining.
       */
      public Builder setScaleRandomPercent(boolean value) {

        scaleRandomPercent_ = value;
        bitField1_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool scaleRandomPercent = 57;</code>
       * @return This builder for chaining.
       */
      public Builder clearScaleRandomPercent() {
        bitField1_ = (bitField1_ & ~0x01000000);
        scaleRandomPercent_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object scaleTable_ = "";
      /**
       * <code>optional string scaleTable = 58;</code>
       * @return Whether the scaleTable field is set.
       */
      public boolean hasScaleTable() {
        return ((bitField1_ & 0x02000000) != 0);
      }
      /**
       * <code>optional string scaleTable = 58;</code>
       * @return The scaleTable.
       */
      public java.lang.String getScaleTable() {
        java.lang.Object ref = scaleTable_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          scaleTable_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string scaleTable = 58;</code>
       * @return The bytes for scaleTable.
       */
      public com.google.protobuf.ByteString
          getScaleTableBytes() {
        java.lang.Object ref = scaleTable_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          scaleTable_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string scaleTable = 58;</code>
       * @param value The scaleTable to set.
       * @return This builder for chaining.
       */
      public Builder setScaleTable(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        scaleTable_ = value;
        bitField1_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string scaleTable = 58;</code>
       * @return This builder for chaining.
       */
      public Builder clearScaleTable() {
        scaleTable_ = getDefaultInstance().getScaleTable();
        bitField1_ = (bitField1_ & ~0x02000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string scaleTable = 58;</code>
       * @param value The bytes for scaleTable to set.
       * @return This builder for chaining.
       */
      public Builder setScaleTableBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        scaleTable_ = value;
        bitField1_ |= 0x02000000;
        onChanged();
        return this;
      }

      private java.lang.Object hedgeType_ = "";
      /**
       * <pre>
       * hedge orders
       * </pre>
       *
       * <code>optional string hedgeType = 59;</code>
       * @return Whether the hedgeType field is set.
       */
      public boolean hasHedgeType() {
        return ((bitField1_ & 0x04000000) != 0);
      }
      /**
       * <pre>
       * hedge orders
       * </pre>
       *
       * <code>optional string hedgeType = 59;</code>
       * @return The hedgeType.
       */
      public java.lang.String getHedgeType() {
        java.lang.Object ref = hedgeType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hedgeType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * hedge orders
       * </pre>
       *
       * <code>optional string hedgeType = 59;</code>
       * @return The bytes for hedgeType.
       */
      public com.google.protobuf.ByteString
          getHedgeTypeBytes() {
        java.lang.Object ref = hedgeType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hedgeType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * hedge orders
       * </pre>
       *
       * <code>optional string hedgeType = 59;</code>
       * @param value The hedgeType to set.
       * @return This builder for chaining.
       */
      public Builder setHedgeType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        hedgeType_ = value;
        bitField1_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * hedge orders
       * </pre>
       *
       * <code>optional string hedgeType = 59;</code>
       * @return This builder for chaining.
       */
      public Builder clearHedgeType() {
        hedgeType_ = getDefaultInstance().getHedgeType();
        bitField1_ = (bitField1_ & ~0x04000000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * hedge orders
       * </pre>
       *
       * <code>optional string hedgeType = 59;</code>
       * @param value The bytes for hedgeType to set.
       * @return This builder for chaining.
       */
      public Builder setHedgeTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        hedgeType_ = value;
        bitField1_ |= 0x04000000;
        onChanged();
        return this;
      }

      private java.lang.Object hedgeParam_ = "";
      /**
       * <code>optional string hedgeParam = 60;</code>
       * @return Whether the hedgeParam field is set.
       */
      public boolean hasHedgeParam() {
        return ((bitField1_ & 0x08000000) != 0);
      }
      /**
       * <code>optional string hedgeParam = 60;</code>
       * @return The hedgeParam.
       */
      public java.lang.String getHedgeParam() {
        java.lang.Object ref = hedgeParam_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hedgeParam_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string hedgeParam = 60;</code>
       * @return The bytes for hedgeParam.
       */
      public com.google.protobuf.ByteString
          getHedgeParamBytes() {
        java.lang.Object ref = hedgeParam_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hedgeParam_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string hedgeParam = 60;</code>
       * @param value The hedgeParam to set.
       * @return This builder for chaining.
       */
      public Builder setHedgeParam(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        hedgeParam_ = value;
        bitField1_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string hedgeParam = 60;</code>
       * @return This builder for chaining.
       */
      public Builder clearHedgeParam() {
        hedgeParam_ = getDefaultInstance().getHedgeParam();
        bitField1_ = (bitField1_ & ~0x08000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string hedgeParam = 60;</code>
       * @param value The bytes for hedgeParam to set.
       * @return This builder for chaining.
       */
      public Builder setHedgeParamBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        hedgeParam_ = value;
        bitField1_ |= 0x08000000;
        onChanged();
        return this;
      }

      private java.lang.Object algoStrategy_ = "";
      /**
       * <pre>
       * algo orders
       * </pre>
       *
       * <code>optional string algoStrategy = 61;</code>
       * @return Whether the algoStrategy field is set.
       */
      public boolean hasAlgoStrategy() {
        return ((bitField1_ & 0x10000000) != 0);
      }
      /**
       * <pre>
       * algo orders
       * </pre>
       *
       * <code>optional string algoStrategy = 61;</code>
       * @return The algoStrategy.
       */
      public java.lang.String getAlgoStrategy() {
        java.lang.Object ref = algoStrategy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          algoStrategy_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * algo orders
       * </pre>
       *
       * <code>optional string algoStrategy = 61;</code>
       * @return The bytes for algoStrategy.
       */
      public com.google.protobuf.ByteString
          getAlgoStrategyBytes() {
        java.lang.Object ref = algoStrategy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          algoStrategy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * algo orders
       * </pre>
       *
       * <code>optional string algoStrategy = 61;</code>
       * @param value The algoStrategy to set.
       * @return This builder for chaining.
       */
      public Builder setAlgoStrategy(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        algoStrategy_ = value;
        bitField1_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * algo orders
       * </pre>
       *
       * <code>optional string algoStrategy = 61;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlgoStrategy() {
        algoStrategy_ = getDefaultInstance().getAlgoStrategy();
        bitField1_ = (bitField1_ & ~0x10000000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * algo orders
       * </pre>
       *
       * <code>optional string algoStrategy = 61;</code>
       * @param value The bytes for algoStrategy to set.
       * @return This builder for chaining.
       */
      public Builder setAlgoStrategyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        algoStrategy_ = value;
        bitField1_ |= 0x10000000;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> algoParams_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetAlgoParams() {
        if (algoParams_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AlgoParamsDefaultEntryHolder.defaultEntry);
        }
        return algoParams_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableAlgoParams() {
        if (algoParams_ == null) {
          algoParams_ = com.google.protobuf.MapField.newMapField(
              AlgoParamsDefaultEntryHolder.defaultEntry);
        }
        if (!algoParams_.isMutable()) {
          algoParams_ = algoParams_.copy();
        }
        bitField1_ |= 0x20000000;
        onChanged();
        return algoParams_;
      }
      public int getAlgoParamsCount() {
        return internalGetAlgoParams().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; algoParams = 62;</code>
       */
      @java.lang.Override
      public boolean containsAlgoParams(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetAlgoParams().getMap().containsKey(key);
      }
      /**
       * Use {@link #getAlgoParamsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getAlgoParams() {
        return getAlgoParamsMap();
      }
      /**
       * <code>map&lt;string, string&gt; algoParams = 62;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.String> getAlgoParamsMap() {
        return internalGetAlgoParams().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; algoParams = 62;</code>
       */
      @java.lang.Override
      public /* nullable */
java.lang.String getAlgoParamsOrDefault(
          java.lang.String key,
          /* nullable */
java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAlgoParams().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; algoParams = 62;</code>
       */
      @java.lang.Override
      public java.lang.String getAlgoParamsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetAlgoParams().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearAlgoParams() {
        bitField1_ = (bitField1_ & ~0x20000000);
        internalGetMutableAlgoParams().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; algoParams = 62;</code>
       */
      public Builder removeAlgoParams(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableAlgoParams().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
          getMutableAlgoParams() {
        bitField1_ |= 0x20000000;
        return internalGetMutableAlgoParams().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; algoParams = 62;</code>
       */
      public Builder putAlgoParams(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableAlgoParams().getMutableMap()
            .put(key, value);
        bitField1_ |= 0x20000000;
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; algoParams = 62;</code>
       */
      public Builder putAllAlgoParams(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableAlgoParams().getMutableMap()
            .putAll(values);
        bitField1_ |= 0x20000000;
        return this;
      }

      private java.lang.Object algoId_ = "";
      /**
       * <code>optional string algoId = 63;</code>
       * @return Whether the algoId field is set.
       */
      public boolean hasAlgoId() {
        return ((bitField1_ & 0x40000000) != 0);
      }
      /**
       * <code>optional string algoId = 63;</code>
       * @return The algoId.
       */
      public java.lang.String getAlgoId() {
        java.lang.Object ref = algoId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          algoId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string algoId = 63;</code>
       * @return The bytes for algoId.
       */
      public com.google.protobuf.ByteString
          getAlgoIdBytes() {
        java.lang.Object ref = algoId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          algoId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string algoId = 63;</code>
       * @param value The algoId to set.
       * @return This builder for chaining.
       */
      public Builder setAlgoId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        algoId_ = value;
        bitField1_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string algoId = 63;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlgoId() {
        algoId_ = getDefaultInstance().getAlgoId();
        bitField1_ = (bitField1_ & ~0x40000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string algoId = 63;</code>
       * @param value The bytes for algoId to set.
       * @return This builder for chaining.
       */
      public Builder setAlgoIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        algoId_ = value;
        bitField1_ |= 0x40000000;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> smartComboRoutingParams_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetSmartComboRoutingParams() {
        if (smartComboRoutingParams_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SmartComboRoutingParamsDefaultEntryHolder.defaultEntry);
        }
        return smartComboRoutingParams_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableSmartComboRoutingParams() {
        if (smartComboRoutingParams_ == null) {
          smartComboRoutingParams_ = com.google.protobuf.MapField.newMapField(
              SmartComboRoutingParamsDefaultEntryHolder.defaultEntry);
        }
        if (!smartComboRoutingParams_.isMutable()) {
          smartComboRoutingParams_ = smartComboRoutingParams_.copy();
        }
        bitField1_ |= 0x80000000;
        onChanged();
        return smartComboRoutingParams_;
      }
      public int getSmartComboRoutingParamsCount() {
        return internalGetSmartComboRoutingParams().getMap().size();
      }
      /**
       * <pre>
       * combo orders
       * </pre>
       *
       * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
       */
      @java.lang.Override
      public boolean containsSmartComboRoutingParams(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetSmartComboRoutingParams().getMap().containsKey(key);
      }
      /**
       * Use {@link #getSmartComboRoutingParamsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getSmartComboRoutingParams() {
        return getSmartComboRoutingParamsMap();
      }
      /**
       * <pre>
       * combo orders
       * </pre>
       *
       * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.String> getSmartComboRoutingParamsMap() {
        return internalGetSmartComboRoutingParams().getMap();
      }
      /**
       * <pre>
       * combo orders
       * </pre>
       *
       * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
       */
      @java.lang.Override
      public /* nullable */
java.lang.String getSmartComboRoutingParamsOrDefault(
          java.lang.String key,
          /* nullable */
java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetSmartComboRoutingParams().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * combo orders
       * </pre>
       *
       * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
       */
      @java.lang.Override
      public java.lang.String getSmartComboRoutingParamsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetSmartComboRoutingParams().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearSmartComboRoutingParams() {
        bitField1_ = (bitField1_ & ~0x80000000);
        internalGetMutableSmartComboRoutingParams().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * combo orders
       * </pre>
       *
       * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
       */
      public Builder removeSmartComboRoutingParams(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableSmartComboRoutingParams().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
          getMutableSmartComboRoutingParams() {
        bitField1_ |= 0x80000000;
        return internalGetMutableSmartComboRoutingParams().getMutableMap();
      }
      /**
       * <pre>
       * combo orders
       * </pre>
       *
       * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
       */
      public Builder putSmartComboRoutingParams(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableSmartComboRoutingParams().getMutableMap()
            .put(key, value);
        bitField1_ |= 0x80000000;
        return this;
      }
      /**
       * <pre>
       * combo orders
       * </pre>
       *
       * <code>map&lt;string, string&gt; smartComboRoutingParams = 64;</code>
       */
      public Builder putAllSmartComboRoutingParams(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableSmartComboRoutingParams().getMutableMap()
            .putAll(values);
        bitField1_ |= 0x80000000;
        return this;
      }

      private boolean whatIf_ ;
      /**
       * <pre>
       * processing control
       * </pre>
       *
       * <code>optional bool whatIf = 65;</code>
       * @return Whether the whatIf field is set.
       */
      @java.lang.Override
      public boolean hasWhatIf() {
        return ((bitField2_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * processing control
       * </pre>
       *
       * <code>optional bool whatIf = 65;</code>
       * @return The whatIf.
       */
      @java.lang.Override
      public boolean getWhatIf() {
        return whatIf_;
      }
      /**
       * <pre>
       * processing control
       * </pre>
       *
       * <code>optional bool whatIf = 65;</code>
       * @param value The whatIf to set.
       * @return This builder for chaining.
       */
      public Builder setWhatIf(boolean value) {

        whatIf_ = value;
        bitField2_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * processing control
       * </pre>
       *
       * <code>optional bool whatIf = 65;</code>
       * @return This builder for chaining.
       */
      public Builder clearWhatIf() {
        bitField2_ = (bitField2_ & ~0x00000001);
        whatIf_ = false;
        onChanged();
        return this;
      }

      private boolean transmit_ ;
      /**
       * <code>optional bool transmit = 66;</code>
       * @return Whether the transmit field is set.
       */
      @java.lang.Override
      public boolean hasTransmit() {
        return ((bitField2_ & 0x00000002) != 0);
      }
      /**
       * <code>optional bool transmit = 66;</code>
       * @return The transmit.
       */
      @java.lang.Override
      public boolean getTransmit() {
        return transmit_;
      }
      /**
       * <code>optional bool transmit = 66;</code>
       * @param value The transmit to set.
       * @return This builder for chaining.
       */
      public Builder setTransmit(boolean value) {

        transmit_ = value;
        bitField2_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool transmit = 66;</code>
       * @return This builder for chaining.
       */
      public Builder clearTransmit() {
        bitField2_ = (bitField2_ & ~0x00000002);
        transmit_ = false;
        onChanged();
        return this;
      }

      private boolean overridePercentageConstraints_ ;
      /**
       * <code>optional bool overridePercentageConstraints = 67;</code>
       * @return Whether the overridePercentageConstraints field is set.
       */
      @java.lang.Override
      public boolean hasOverridePercentageConstraints() {
        return ((bitField2_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bool overridePercentageConstraints = 67;</code>
       * @return The overridePercentageConstraints.
       */
      @java.lang.Override
      public boolean getOverridePercentageConstraints() {
        return overridePercentageConstraints_;
      }
      /**
       * <code>optional bool overridePercentageConstraints = 67;</code>
       * @param value The overridePercentageConstraints to set.
       * @return This builder for chaining.
       */
      public Builder setOverridePercentageConstraints(boolean value) {

        overridePercentageConstraints_ = value;
        bitField2_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool overridePercentageConstraints = 67;</code>
       * @return This builder for chaining.
       */
      public Builder clearOverridePercentageConstraints() {
        bitField2_ = (bitField2_ & ~0x00000004);
        overridePercentageConstraints_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object openClose_ = "";
      /**
       * <pre>
       * Institutional orders only
       * </pre>
       *
       * <code>optional string openClose = 68;</code>
       * @return Whether the openClose field is set.
       */
      public boolean hasOpenClose() {
        return ((bitField2_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * Institutional orders only
       * </pre>
       *
       * <code>optional string openClose = 68;</code>
       * @return The openClose.
       */
      public java.lang.String getOpenClose() {
        java.lang.Object ref = openClose_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          openClose_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Institutional orders only
       * </pre>
       *
       * <code>optional string openClose = 68;</code>
       * @return The bytes for openClose.
       */
      public com.google.protobuf.ByteString
          getOpenCloseBytes() {
        java.lang.Object ref = openClose_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          openClose_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Institutional orders only
       * </pre>
       *
       * <code>optional string openClose = 68;</code>
       * @param value The openClose to set.
       * @return This builder for chaining.
       */
      public Builder setOpenClose(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        openClose_ = value;
        bitField2_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Institutional orders only
       * </pre>
       *
       * <code>optional string openClose = 68;</code>
       * @return This builder for chaining.
       */
      public Builder clearOpenClose() {
        openClose_ = getDefaultInstance().getOpenClose();
        bitField2_ = (bitField2_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Institutional orders only
       * </pre>
       *
       * <code>optional string openClose = 68;</code>
       * @param value The bytes for openClose to set.
       * @return This builder for chaining.
       */
      public Builder setOpenCloseBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        openClose_ = value;
        bitField2_ |= 0x00000008;
        onChanged();
        return this;
      }

      private int origin_ ;
      /**
       * <code>optional int32 origin = 69;</code>
       * @return Whether the origin field is set.
       */
      @java.lang.Override
      public boolean hasOrigin() {
        return ((bitField2_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int32 origin = 69;</code>
       * @return The origin.
       */
      @java.lang.Override
      public int getOrigin() {
        return origin_;
      }
      /**
       * <code>optional int32 origin = 69;</code>
       * @param value The origin to set.
       * @return This builder for chaining.
       */
      public Builder setOrigin(int value) {

        origin_ = value;
        bitField2_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 origin = 69;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrigin() {
        bitField2_ = (bitField2_ & ~0x00000010);
        origin_ = 0;
        onChanged();
        return this;
      }

      private int shortSaleSlot_ ;
      /**
       * <code>optional int32 shortSaleSlot = 70;</code>
       * @return Whether the shortSaleSlot field is set.
       */
      @java.lang.Override
      public boolean hasShortSaleSlot() {
        return ((bitField2_ & 0x00000020) != 0);
      }
      /**
       * <code>optional int32 shortSaleSlot = 70;</code>
       * @return The shortSaleSlot.
       */
      @java.lang.Override
      public int getShortSaleSlot() {
        return shortSaleSlot_;
      }
      /**
       * <code>optional int32 shortSaleSlot = 70;</code>
       * @param value The shortSaleSlot to set.
       * @return This builder for chaining.
       */
      public Builder setShortSaleSlot(int value) {

        shortSaleSlot_ = value;
        bitField2_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 shortSaleSlot = 70;</code>
       * @return This builder for chaining.
       */
      public Builder clearShortSaleSlot() {
        bitField2_ = (bitField2_ & ~0x00000020);
        shortSaleSlot_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object designatedLocation_ = "";
      /**
       * <code>optional string designatedLocation = 71;</code>
       * @return Whether the designatedLocation field is set.
       */
      public boolean hasDesignatedLocation() {
        return ((bitField2_ & 0x00000040) != 0);
      }
      /**
       * <code>optional string designatedLocation = 71;</code>
       * @return The designatedLocation.
       */
      public java.lang.String getDesignatedLocation() {
        java.lang.Object ref = designatedLocation_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          designatedLocation_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string designatedLocation = 71;</code>
       * @return The bytes for designatedLocation.
       */
      public com.google.protobuf.ByteString
          getDesignatedLocationBytes() {
        java.lang.Object ref = designatedLocation_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          designatedLocation_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string designatedLocation = 71;</code>
       * @param value The designatedLocation to set.
       * @return This builder for chaining.
       */
      public Builder setDesignatedLocation(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        designatedLocation_ = value;
        bitField2_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional string designatedLocation = 71;</code>
       * @return This builder for chaining.
       */
      public Builder clearDesignatedLocation() {
        designatedLocation_ = getDefaultInstance().getDesignatedLocation();
        bitField2_ = (bitField2_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>optional string designatedLocation = 71;</code>
       * @param value The bytes for designatedLocation to set.
       * @return This builder for chaining.
       */
      public Builder setDesignatedLocationBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        designatedLocation_ = value;
        bitField2_ |= 0x00000040;
        onChanged();
        return this;
      }

      private int exemptCode_ ;
      /**
       * <code>optional int32 exemptCode = 72;</code>
       * @return Whether the exemptCode field is set.
       */
      @java.lang.Override
      public boolean hasExemptCode() {
        return ((bitField2_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int32 exemptCode = 72;</code>
       * @return The exemptCode.
       */
      @java.lang.Override
      public int getExemptCode() {
        return exemptCode_;
      }
      /**
       * <code>optional int32 exemptCode = 72;</code>
       * @param value The exemptCode to set.
       * @return This builder for chaining.
       */
      public Builder setExemptCode(int value) {

        exemptCode_ = value;
        bitField2_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 exemptCode = 72;</code>
       * @return This builder for chaining.
       */
      public Builder clearExemptCode() {
        bitField2_ = (bitField2_ & ~0x00000080);
        exemptCode_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object deltaNeutralSettlingFirm_ = "";
      /**
       * <code>optional string deltaNeutralSettlingFirm = 73;</code>
       * @return Whether the deltaNeutralSettlingFirm field is set.
       */
      public boolean hasDeltaNeutralSettlingFirm() {
        return ((bitField2_ & 0x00000100) != 0);
      }
      /**
       * <code>optional string deltaNeutralSettlingFirm = 73;</code>
       * @return The deltaNeutralSettlingFirm.
       */
      public java.lang.String getDeltaNeutralSettlingFirm() {
        java.lang.Object ref = deltaNeutralSettlingFirm_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deltaNeutralSettlingFirm_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralSettlingFirm = 73;</code>
       * @return The bytes for deltaNeutralSettlingFirm.
       */
      public com.google.protobuf.ByteString
          getDeltaNeutralSettlingFirmBytes() {
        java.lang.Object ref = deltaNeutralSettlingFirm_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deltaNeutralSettlingFirm_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralSettlingFirm = 73;</code>
       * @param value The deltaNeutralSettlingFirm to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralSettlingFirm(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        deltaNeutralSettlingFirm_ = value;
        bitField2_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralSettlingFirm = 73;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralSettlingFirm() {
        deltaNeutralSettlingFirm_ = getDefaultInstance().getDeltaNeutralSettlingFirm();
        bitField2_ = (bitField2_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralSettlingFirm = 73;</code>
       * @param value The bytes for deltaNeutralSettlingFirm to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralSettlingFirmBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        deltaNeutralSettlingFirm_ = value;
        bitField2_ |= 0x00000100;
        onChanged();
        return this;
      }

      private java.lang.Object deltaNeutralClearingAccount_ = "";
      /**
       * <code>optional string deltaNeutralClearingAccount = 74;</code>
       * @return Whether the deltaNeutralClearingAccount field is set.
       */
      public boolean hasDeltaNeutralClearingAccount() {
        return ((bitField2_ & 0x00000200) != 0);
      }
      /**
       * <code>optional string deltaNeutralClearingAccount = 74;</code>
       * @return The deltaNeutralClearingAccount.
       */
      public java.lang.String getDeltaNeutralClearingAccount() {
        java.lang.Object ref = deltaNeutralClearingAccount_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deltaNeutralClearingAccount_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralClearingAccount = 74;</code>
       * @return The bytes for deltaNeutralClearingAccount.
       */
      public com.google.protobuf.ByteString
          getDeltaNeutralClearingAccountBytes() {
        java.lang.Object ref = deltaNeutralClearingAccount_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deltaNeutralClearingAccount_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralClearingAccount = 74;</code>
       * @param value The deltaNeutralClearingAccount to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralClearingAccount(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        deltaNeutralClearingAccount_ = value;
        bitField2_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralClearingAccount = 74;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralClearingAccount() {
        deltaNeutralClearingAccount_ = getDefaultInstance().getDeltaNeutralClearingAccount();
        bitField2_ = (bitField2_ & ~0x00000200);
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralClearingAccount = 74;</code>
       * @param value The bytes for deltaNeutralClearingAccount to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralClearingAccountBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        deltaNeutralClearingAccount_ = value;
        bitField2_ |= 0x00000200;
        onChanged();
        return this;
      }

      private java.lang.Object deltaNeutralClearingIntent_ = "";
      /**
       * <code>optional string deltaNeutralClearingIntent = 75;</code>
       * @return Whether the deltaNeutralClearingIntent field is set.
       */
      public boolean hasDeltaNeutralClearingIntent() {
        return ((bitField2_ & 0x00000400) != 0);
      }
      /**
       * <code>optional string deltaNeutralClearingIntent = 75;</code>
       * @return The deltaNeutralClearingIntent.
       */
      public java.lang.String getDeltaNeutralClearingIntent() {
        java.lang.Object ref = deltaNeutralClearingIntent_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          deltaNeutralClearingIntent_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralClearingIntent = 75;</code>
       * @return The bytes for deltaNeutralClearingIntent.
       */
      public com.google.protobuf.ByteString
          getDeltaNeutralClearingIntentBytes() {
        java.lang.Object ref = deltaNeutralClearingIntent_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deltaNeutralClearingIntent_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deltaNeutralClearingIntent = 75;</code>
       * @param value The deltaNeutralClearingIntent to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralClearingIntent(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        deltaNeutralClearingIntent_ = value;
        bitField2_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralClearingIntent = 75;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeltaNeutralClearingIntent() {
        deltaNeutralClearingIntent_ = getDefaultInstance().getDeltaNeutralClearingIntent();
        bitField2_ = (bitField2_ & ~0x00000400);
        onChanged();
        return this;
      }
      /**
       * <code>optional string deltaNeutralClearingIntent = 75;</code>
       * @param value The bytes for deltaNeutralClearingIntent to set.
       * @return This builder for chaining.
       */
      public Builder setDeltaNeutralClearingIntentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        deltaNeutralClearingIntent_ = value;
        bitField2_ |= 0x00000400;
        onChanged();
        return this;
      }

      private double discretionaryAmt_ ;
      /**
       * <pre>
       * SMART routing only
       * </pre>
       *
       * <code>optional double discretionaryAmt = 76;</code>
       * @return Whether the discretionaryAmt field is set.
       */
      @java.lang.Override
      public boolean hasDiscretionaryAmt() {
        return ((bitField2_ & 0x00000800) != 0);
      }
      /**
       * <pre>
       * SMART routing only
       * </pre>
       *
       * <code>optional double discretionaryAmt = 76;</code>
       * @return The discretionaryAmt.
       */
      @java.lang.Override
      public double getDiscretionaryAmt() {
        return discretionaryAmt_;
      }
      /**
       * <pre>
       * SMART routing only
       * </pre>
       *
       * <code>optional double discretionaryAmt = 76;</code>
       * @param value The discretionaryAmt to set.
       * @return This builder for chaining.
       */
      public Builder setDiscretionaryAmt(double value) {

        discretionaryAmt_ = value;
        bitField2_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SMART routing only
       * </pre>
       *
       * <code>optional double discretionaryAmt = 76;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiscretionaryAmt() {
        bitField2_ = (bitField2_ & ~0x00000800);
        discretionaryAmt_ = 0D;
        onChanged();
        return this;
      }

      private boolean optOutSmartRouting_ ;
      /**
       * <code>optional bool optOutSmartRouting = 77;</code>
       * @return Whether the optOutSmartRouting field is set.
       */
      @java.lang.Override
      public boolean hasOptOutSmartRouting() {
        return ((bitField2_ & 0x00001000) != 0);
      }
      /**
       * <code>optional bool optOutSmartRouting = 77;</code>
       * @return The optOutSmartRouting.
       */
      @java.lang.Override
      public boolean getOptOutSmartRouting() {
        return optOutSmartRouting_;
      }
      /**
       * <code>optional bool optOutSmartRouting = 77;</code>
       * @param value The optOutSmartRouting to set.
       * @return This builder for chaining.
       */
      public Builder setOptOutSmartRouting(boolean value) {

        optOutSmartRouting_ = value;
        bitField2_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool optOutSmartRouting = 77;</code>
       * @return This builder for chaining.
       */
      public Builder clearOptOutSmartRouting() {
        bitField2_ = (bitField2_ & ~0x00001000);
        optOutSmartRouting_ = false;
        onChanged();
        return this;
      }

      private double startingPrice_ ;
      /**
       * <pre>
       * BOX ORDERS ONLY
       * </pre>
       *
       * <code>optional double startingPrice = 78;</code>
       * @return Whether the startingPrice field is set.
       */
      @java.lang.Override
      public boolean hasStartingPrice() {
        return ((bitField2_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * BOX ORDERS ONLY
       * </pre>
       *
       * <code>optional double startingPrice = 78;</code>
       * @return The startingPrice.
       */
      @java.lang.Override
      public double getStartingPrice() {
        return startingPrice_;
      }
      /**
       * <pre>
       * BOX ORDERS ONLY
       * </pre>
       *
       * <code>optional double startingPrice = 78;</code>
       * @param value The startingPrice to set.
       * @return This builder for chaining.
       */
      public Builder setStartingPrice(double value) {

        startingPrice_ = value;
        bitField2_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * BOX ORDERS ONLY
       * </pre>
       *
       * <code>optional double startingPrice = 78;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartingPrice() {
        bitField2_ = (bitField2_ & ~0x00002000);
        startingPrice_ = 0D;
        onChanged();
        return this;
      }

      private double stockRefPrice_ ;
      /**
       * <code>optional double stockRefPrice = 79;</code>
       * @return Whether the stockRefPrice field is set.
       */
      @java.lang.Override
      public boolean hasStockRefPrice() {
        return ((bitField2_ & 0x00004000) != 0);
      }
      /**
       * <code>optional double stockRefPrice = 79;</code>
       * @return The stockRefPrice.
       */
      @java.lang.Override
      public double getStockRefPrice() {
        return stockRefPrice_;
      }
      /**
       * <code>optional double stockRefPrice = 79;</code>
       * @param value The stockRefPrice to set.
       * @return This builder for chaining.
       */
      public Builder setStockRefPrice(double value) {

        stockRefPrice_ = value;
        bitField2_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double stockRefPrice = 79;</code>
       * @return This builder for chaining.
       */
      public Builder clearStockRefPrice() {
        bitField2_ = (bitField2_ & ~0x00004000);
        stockRefPrice_ = 0D;
        onChanged();
        return this;
      }

      private double delta_ ;
      /**
       * <code>optional double delta = 80;</code>
       * @return Whether the delta field is set.
       */
      @java.lang.Override
      public boolean hasDelta() {
        return ((bitField2_ & 0x00008000) != 0);
      }
      /**
       * <code>optional double delta = 80;</code>
       * @return The delta.
       */
      @java.lang.Override
      public double getDelta() {
        return delta_;
      }
      /**
       * <code>optional double delta = 80;</code>
       * @param value The delta to set.
       * @return This builder for chaining.
       */
      public Builder setDelta(double value) {

        delta_ = value;
        bitField2_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double delta = 80;</code>
       * @return This builder for chaining.
       */
      public Builder clearDelta() {
        bitField2_ = (bitField2_ & ~0x00008000);
        delta_ = 0D;
        onChanged();
        return this;
      }

      private double stockRangeLower_ ;
      /**
       * <pre>
       * pegged to stock or VOL orders
       * </pre>
       *
       * <code>optional double stockRangeLower = 81;</code>
       * @return Whether the stockRangeLower field is set.
       */
      @java.lang.Override
      public boolean hasStockRangeLower() {
        return ((bitField2_ & 0x00010000) != 0);
      }
      /**
       * <pre>
       * pegged to stock or VOL orders
       * </pre>
       *
       * <code>optional double stockRangeLower = 81;</code>
       * @return The stockRangeLower.
       */
      @java.lang.Override
      public double getStockRangeLower() {
        return stockRangeLower_;
      }
      /**
       * <pre>
       * pegged to stock or VOL orders
       * </pre>
       *
       * <code>optional double stockRangeLower = 81;</code>
       * @param value The stockRangeLower to set.
       * @return This builder for chaining.
       */
      public Builder setStockRangeLower(double value) {

        stockRangeLower_ = value;
        bitField2_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * pegged to stock or VOL orders
       * </pre>
       *
       * <code>optional double stockRangeLower = 81;</code>
       * @return This builder for chaining.
       */
      public Builder clearStockRangeLower() {
        bitField2_ = (bitField2_ & ~0x00010000);
        stockRangeLower_ = 0D;
        onChanged();
        return this;
      }

      private double stockRangeUpper_ ;
      /**
       * <code>optional double stockRangeUpper = 82;</code>
       * @return Whether the stockRangeUpper field is set.
       */
      @java.lang.Override
      public boolean hasStockRangeUpper() {
        return ((bitField2_ & 0x00020000) != 0);
      }
      /**
       * <code>optional double stockRangeUpper = 82;</code>
       * @return The stockRangeUpper.
       */
      @java.lang.Override
      public double getStockRangeUpper() {
        return stockRangeUpper_;
      }
      /**
       * <code>optional double stockRangeUpper = 82;</code>
       * @param value The stockRangeUpper to set.
       * @return This builder for chaining.
       */
      public Builder setStockRangeUpper(double value) {

        stockRangeUpper_ = value;
        bitField2_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double stockRangeUpper = 82;</code>
       * @return This builder for chaining.
       */
      public Builder clearStockRangeUpper() {
        bitField2_ = (bitField2_ & ~0x00020000);
        stockRangeUpper_ = 0D;
        onChanged();
        return this;
      }

      private boolean notHeld_ ;
      /**
       * <pre>
       * Not Held
       * </pre>
       *
       * <code>optional bool notHeld = 83;</code>
       * @return Whether the notHeld field is set.
       */
      @java.lang.Override
      public boolean hasNotHeld() {
        return ((bitField2_ & 0x00040000) != 0);
      }
      /**
       * <pre>
       * Not Held
       * </pre>
       *
       * <code>optional bool notHeld = 83;</code>
       * @return The notHeld.
       */
      @java.lang.Override
      public boolean getNotHeld() {
        return notHeld_;
      }
      /**
       * <pre>
       * Not Held
       * </pre>
       *
       * <code>optional bool notHeld = 83;</code>
       * @param value The notHeld to set.
       * @return This builder for chaining.
       */
      public Builder setNotHeld(boolean value) {

        notHeld_ = value;
        bitField2_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Not Held
       * </pre>
       *
       * <code>optional bool notHeld = 83;</code>
       * @return This builder for chaining.
       */
      public Builder clearNotHeld() {
        bitField2_ = (bitField2_ & ~0x00040000);
        notHeld_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> orderMiscOptions_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetOrderMiscOptions() {
        if (orderMiscOptions_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              OrderMiscOptionsDefaultEntryHolder.defaultEntry);
        }
        return orderMiscOptions_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableOrderMiscOptions() {
        if (orderMiscOptions_ == null) {
          orderMiscOptions_ = com.google.protobuf.MapField.newMapField(
              OrderMiscOptionsDefaultEntryHolder.defaultEntry);
        }
        if (!orderMiscOptions_.isMutable()) {
          orderMiscOptions_ = orderMiscOptions_.copy();
        }
        bitField2_ |= 0x00080000;
        onChanged();
        return orderMiscOptions_;
      }
      public int getOrderMiscOptionsCount() {
        return internalGetOrderMiscOptions().getMap().size();
      }
      /**
       * <pre>
       * order misc options
       * </pre>
       *
       * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
       */
      @java.lang.Override
      public boolean containsOrderMiscOptions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetOrderMiscOptions().getMap().containsKey(key);
      }
      /**
       * Use {@link #getOrderMiscOptionsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getOrderMiscOptions() {
        return getOrderMiscOptionsMap();
      }
      /**
       * <pre>
       * order misc options
       * </pre>
       *
       * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.String> getOrderMiscOptionsMap() {
        return internalGetOrderMiscOptions().getMap();
      }
      /**
       * <pre>
       * order misc options
       * </pre>
       *
       * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
       */
      @java.lang.Override
      public /* nullable */
java.lang.String getOrderMiscOptionsOrDefault(
          java.lang.String key,
          /* nullable */
java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetOrderMiscOptions().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * order misc options
       * </pre>
       *
       * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
       */
      @java.lang.Override
      public java.lang.String getOrderMiscOptionsOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetOrderMiscOptions().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearOrderMiscOptions() {
        bitField2_ = (bitField2_ & ~0x00080000);
        internalGetMutableOrderMiscOptions().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <pre>
       * order misc options
       * </pre>
       *
       * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
       */
      public Builder removeOrderMiscOptions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableOrderMiscOptions().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
          getMutableOrderMiscOptions() {
        bitField2_ |= 0x00080000;
        return internalGetMutableOrderMiscOptions().getMutableMap();
      }
      /**
       * <pre>
       * order misc options
       * </pre>
       *
       * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
       */
      public Builder putOrderMiscOptions(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) { throw new NullPointerException("map value"); }
        internalGetMutableOrderMiscOptions().getMutableMap()
            .put(key, value);
        bitField2_ |= 0x00080000;
        return this;
      }
      /**
       * <pre>
       * order misc options
       * </pre>
       *
       * <code>map&lt;string, string&gt; orderMiscOptions = 84;</code>
       */
      public Builder putAllOrderMiscOptions(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableOrderMiscOptions().getMutableMap()
            .putAll(values);
        bitField2_ |= 0x00080000;
        return this;
      }

      private boolean solicited_ ;
      /**
       * <pre>
       * order algo id
       * </pre>
       *
       * <code>optional bool solicited = 85;</code>
       * @return Whether the solicited field is set.
       */
      @java.lang.Override
      public boolean hasSolicited() {
        return ((bitField2_ & 0x00100000) != 0);
      }
      /**
       * <pre>
       * order algo id
       * </pre>
       *
       * <code>optional bool solicited = 85;</code>
       * @return The solicited.
       */
      @java.lang.Override
      public boolean getSolicited() {
        return solicited_;
      }
      /**
       * <pre>
       * order algo id
       * </pre>
       *
       * <code>optional bool solicited = 85;</code>
       * @param value The solicited to set.
       * @return This builder for chaining.
       */
      public Builder setSolicited(boolean value) {

        solicited_ = value;
        bitField2_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * order algo id
       * </pre>
       *
       * <code>optional bool solicited = 85;</code>
       * @return This builder for chaining.
       */
      public Builder clearSolicited() {
        bitField2_ = (bitField2_ & ~0x00100000);
        solicited_ = false;
        onChanged();
        return this;
      }

      private boolean randomizeSize_ ;
      /**
       * <code>optional bool randomizeSize = 86;</code>
       * @return Whether the randomizeSize field is set.
       */
      @java.lang.Override
      public boolean hasRandomizeSize() {
        return ((bitField2_ & 0x00200000) != 0);
      }
      /**
       * <code>optional bool randomizeSize = 86;</code>
       * @return The randomizeSize.
       */
      @java.lang.Override
      public boolean getRandomizeSize() {
        return randomizeSize_;
      }
      /**
       * <code>optional bool randomizeSize = 86;</code>
       * @param value The randomizeSize to set.
       * @return This builder for chaining.
       */
      public Builder setRandomizeSize(boolean value) {

        randomizeSize_ = value;
        bitField2_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool randomizeSize = 86;</code>
       * @return This builder for chaining.
       */
      public Builder clearRandomizeSize() {
        bitField2_ = (bitField2_ & ~0x00200000);
        randomizeSize_ = false;
        onChanged();
        return this;
      }

      private boolean randomizePrice_ ;
      /**
       * <code>optional bool randomizePrice = 87;</code>
       * @return Whether the randomizePrice field is set.
       */
      @java.lang.Override
      public boolean hasRandomizePrice() {
        return ((bitField2_ & 0x00400000) != 0);
      }
      /**
       * <code>optional bool randomizePrice = 87;</code>
       * @return The randomizePrice.
       */
      @java.lang.Override
      public boolean getRandomizePrice() {
        return randomizePrice_;
      }
      /**
       * <code>optional bool randomizePrice = 87;</code>
       * @param value The randomizePrice to set.
       * @return This builder for chaining.
       */
      public Builder setRandomizePrice(boolean value) {

        randomizePrice_ = value;
        bitField2_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool randomizePrice = 87;</code>
       * @return This builder for chaining.
       */
      public Builder clearRandomizePrice() {
        bitField2_ = (bitField2_ & ~0x00400000);
        randomizePrice_ = false;
        onChanged();
        return this;
      }

      private int referenceContractId_ ;
      /**
       * <pre>
       * PEG2BENCH fields
       * </pre>
       *
       * <code>optional int32 referenceContractId = 88;</code>
       * @return Whether the referenceContractId field is set.
       */
      @java.lang.Override
      public boolean hasReferenceContractId() {
        return ((bitField2_ & 0x00800000) != 0);
      }
      /**
       * <pre>
       * PEG2BENCH fields
       * </pre>
       *
       * <code>optional int32 referenceContractId = 88;</code>
       * @return The referenceContractId.
       */
      @java.lang.Override
      public int getReferenceContractId() {
        return referenceContractId_;
      }
      /**
       * <pre>
       * PEG2BENCH fields
       * </pre>
       *
       * <code>optional int32 referenceContractId = 88;</code>
       * @param value The referenceContractId to set.
       * @return This builder for chaining.
       */
      public Builder setReferenceContractId(int value) {

        referenceContractId_ = value;
        bitField2_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * PEG2BENCH fields
       * </pre>
       *
       * <code>optional int32 referenceContractId = 88;</code>
       * @return This builder for chaining.
       */
      public Builder clearReferenceContractId() {
        bitField2_ = (bitField2_ & ~0x00800000);
        referenceContractId_ = 0;
        onChanged();
        return this;
      }

      private double peggedChangeAmount_ ;
      /**
       * <code>optional double peggedChangeAmount = 89;</code>
       * @return Whether the peggedChangeAmount field is set.
       */
      @java.lang.Override
      public boolean hasPeggedChangeAmount() {
        return ((bitField2_ & 0x01000000) != 0);
      }
      /**
       * <code>optional double peggedChangeAmount = 89;</code>
       * @return The peggedChangeAmount.
       */
      @java.lang.Override
      public double getPeggedChangeAmount() {
        return peggedChangeAmount_;
      }
      /**
       * <code>optional double peggedChangeAmount = 89;</code>
       * @param value The peggedChangeAmount to set.
       * @return This builder for chaining.
       */
      public Builder setPeggedChangeAmount(double value) {

        peggedChangeAmount_ = value;
        bitField2_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double peggedChangeAmount = 89;</code>
       * @return This builder for chaining.
       */
      public Builder clearPeggedChangeAmount() {
        bitField2_ = (bitField2_ & ~0x01000000);
        peggedChangeAmount_ = 0D;
        onChanged();
        return this;
      }

      private boolean isPeggedChangeAmountDecrease_ ;
      /**
       * <code>optional bool isPeggedChangeAmountDecrease = 90;</code>
       * @return Whether the isPeggedChangeAmountDecrease field is set.
       */
      @java.lang.Override
      public boolean hasIsPeggedChangeAmountDecrease() {
        return ((bitField2_ & 0x02000000) != 0);
      }
      /**
       * <code>optional bool isPeggedChangeAmountDecrease = 90;</code>
       * @return The isPeggedChangeAmountDecrease.
       */
      @java.lang.Override
      public boolean getIsPeggedChangeAmountDecrease() {
        return isPeggedChangeAmountDecrease_;
      }
      /**
       * <code>optional bool isPeggedChangeAmountDecrease = 90;</code>
       * @param value The isPeggedChangeAmountDecrease to set.
       * @return This builder for chaining.
       */
      public Builder setIsPeggedChangeAmountDecrease(boolean value) {

        isPeggedChangeAmountDecrease_ = value;
        bitField2_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool isPeggedChangeAmountDecrease = 90;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsPeggedChangeAmountDecrease() {
        bitField2_ = (bitField2_ & ~0x02000000);
        isPeggedChangeAmountDecrease_ = false;
        onChanged();
        return this;
      }

      private double referenceChangeAmount_ ;
      /**
       * <code>optional double referenceChangeAmount = 91;</code>
       * @return Whether the referenceChangeAmount field is set.
       */
      @java.lang.Override
      public boolean hasReferenceChangeAmount() {
        return ((bitField2_ & 0x04000000) != 0);
      }
      /**
       * <code>optional double referenceChangeAmount = 91;</code>
       * @return The referenceChangeAmount.
       */
      @java.lang.Override
      public double getReferenceChangeAmount() {
        return referenceChangeAmount_;
      }
      /**
       * <code>optional double referenceChangeAmount = 91;</code>
       * @param value The referenceChangeAmount to set.
       * @return This builder for chaining.
       */
      public Builder setReferenceChangeAmount(double value) {

        referenceChangeAmount_ = value;
        bitField2_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double referenceChangeAmount = 91;</code>
       * @return This builder for chaining.
       */
      public Builder clearReferenceChangeAmount() {
        bitField2_ = (bitField2_ & ~0x04000000);
        referenceChangeAmount_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object referenceExchangeId_ = "";
      /**
       * <code>optional string referenceExchangeId = 92;</code>
       * @return Whether the referenceExchangeId field is set.
       */
      public boolean hasReferenceExchangeId() {
        return ((bitField2_ & 0x08000000) != 0);
      }
      /**
       * <code>optional string referenceExchangeId = 92;</code>
       * @return The referenceExchangeId.
       */
      public java.lang.String getReferenceExchangeId() {
        java.lang.Object ref = referenceExchangeId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          referenceExchangeId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string referenceExchangeId = 92;</code>
       * @return The bytes for referenceExchangeId.
       */
      public com.google.protobuf.ByteString
          getReferenceExchangeIdBytes() {
        java.lang.Object ref = referenceExchangeId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          referenceExchangeId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string referenceExchangeId = 92;</code>
       * @param value The referenceExchangeId to set.
       * @return This builder for chaining.
       */
      public Builder setReferenceExchangeId(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        referenceExchangeId_ = value;
        bitField2_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string referenceExchangeId = 92;</code>
       * @return This builder for chaining.
       */
      public Builder clearReferenceExchangeId() {
        referenceExchangeId_ = getDefaultInstance().getReferenceExchangeId();
        bitField2_ = (bitField2_ & ~0x08000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string referenceExchangeId = 92;</code>
       * @param value The bytes for referenceExchangeId to set.
       * @return This builder for chaining.
       */
      public Builder setReferenceExchangeIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        referenceExchangeId_ = value;
        bitField2_ |= 0x08000000;
        onChanged();
        return this;
      }

      private java.lang.Object adjustedOrderType_ = "";
      /**
       * <code>optional string adjustedOrderType = 93;</code>
       * @return Whether the adjustedOrderType field is set.
       */
      public boolean hasAdjustedOrderType() {
        return ((bitField2_ & 0x10000000) != 0);
      }
      /**
       * <code>optional string adjustedOrderType = 93;</code>
       * @return The adjustedOrderType.
       */
      public java.lang.String getAdjustedOrderType() {
        java.lang.Object ref = adjustedOrderType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          adjustedOrderType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string adjustedOrderType = 93;</code>
       * @return The bytes for adjustedOrderType.
       */
      public com.google.protobuf.ByteString
          getAdjustedOrderTypeBytes() {
        java.lang.Object ref = adjustedOrderType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          adjustedOrderType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string adjustedOrderType = 93;</code>
       * @param value The adjustedOrderType to set.
       * @return This builder for chaining.
       */
      public Builder setAdjustedOrderType(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        adjustedOrderType_ = value;
        bitField2_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string adjustedOrderType = 93;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdjustedOrderType() {
        adjustedOrderType_ = getDefaultInstance().getAdjustedOrderType();
        bitField2_ = (bitField2_ & ~0x10000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string adjustedOrderType = 93;</code>
       * @param value The bytes for adjustedOrderType to set.
       * @return This builder for chaining.
       */
      public Builder setAdjustedOrderTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        adjustedOrderType_ = value;
        bitField2_ |= 0x10000000;
        onChanged();
        return this;
      }

      private double triggerPrice_ ;
      /**
       * <code>optional double triggerPrice = 94;</code>
       * @return Whether the triggerPrice field is set.
       */
      @java.lang.Override
      public boolean hasTriggerPrice() {
        return ((bitField2_ & 0x20000000) != 0);
      }
      /**
       * <code>optional double triggerPrice = 94;</code>
       * @return The triggerPrice.
       */
      @java.lang.Override
      public double getTriggerPrice() {
        return triggerPrice_;
      }
      /**
       * <code>optional double triggerPrice = 94;</code>
       * @param value The triggerPrice to set.
       * @return This builder for chaining.
       */
      public Builder setTriggerPrice(double value) {

        triggerPrice_ = value;
        bitField2_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double triggerPrice = 94;</code>
       * @return This builder for chaining.
       */
      public Builder clearTriggerPrice() {
        bitField2_ = (bitField2_ & ~0x20000000);
        triggerPrice_ = 0D;
        onChanged();
        return this;
      }

      private double adjustedStopPrice_ ;
      /**
       * <code>optional double adjustedStopPrice = 95;</code>
       * @return Whether the adjustedStopPrice field is set.
       */
      @java.lang.Override
      public boolean hasAdjustedStopPrice() {
        return ((bitField2_ & 0x40000000) != 0);
      }
      /**
       * <code>optional double adjustedStopPrice = 95;</code>
       * @return The adjustedStopPrice.
       */
      @java.lang.Override
      public double getAdjustedStopPrice() {
        return adjustedStopPrice_;
      }
      /**
       * <code>optional double adjustedStopPrice = 95;</code>
       * @param value The adjustedStopPrice to set.
       * @return This builder for chaining.
       */
      public Builder setAdjustedStopPrice(double value) {

        adjustedStopPrice_ = value;
        bitField2_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double adjustedStopPrice = 95;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdjustedStopPrice() {
        bitField2_ = (bitField2_ & ~0x40000000);
        adjustedStopPrice_ = 0D;
        onChanged();
        return this;
      }

      private double adjustedStopLimitPrice_ ;
      /**
       * <code>optional double adjustedStopLimitPrice = 96;</code>
       * @return Whether the adjustedStopLimitPrice field is set.
       */
      @java.lang.Override
      public boolean hasAdjustedStopLimitPrice() {
        return ((bitField2_ & 0x80000000) != 0);
      }
      /**
       * <code>optional double adjustedStopLimitPrice = 96;</code>
       * @return The adjustedStopLimitPrice.
       */
      @java.lang.Override
      public double getAdjustedStopLimitPrice() {
        return adjustedStopLimitPrice_;
      }
      /**
       * <code>optional double adjustedStopLimitPrice = 96;</code>
       * @param value The adjustedStopLimitPrice to set.
       * @return This builder for chaining.
       */
      public Builder setAdjustedStopLimitPrice(double value) {

        adjustedStopLimitPrice_ = value;
        bitField2_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional double adjustedStopLimitPrice = 96;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdjustedStopLimitPrice() {
        bitField2_ = (bitField2_ & ~0x80000000);
        adjustedStopLimitPrice_ = 0D;
        onChanged();
        return this;
      }

      private double adjustedTrailingAmount_ ;
      /**
       * <code>optional double adjustedTrailingAmount = 97;</code>
       * @return Whether the adjustedTrailingAmount field is set.
       */
      @java.lang.Override
      public boolean hasAdjustedTrailingAmount() {
        return ((bitField3_ & 0x00000001) != 0);
      }
      /**
       * <code>optional double adjustedTrailingAmount = 97;</code>
       * @return The adjustedTrailingAmount.
       */
      @java.lang.Override
      public double getAdjustedTrailingAmount() {
        return adjustedTrailingAmount_;
      }
      /**
       * <code>optional double adjustedTrailingAmount = 97;</code>
       * @param value The adjustedTrailingAmount to set.
       * @return This builder for chaining.
       */
      public Builder setAdjustedTrailingAmount(double value) {

        adjustedTrailingAmount_ = value;
        bitField3_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional double adjustedTrailingAmount = 97;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdjustedTrailingAmount() {
        bitField3_ = (bitField3_ & ~0x00000001);
        adjustedTrailingAmount_ = 0D;
        onChanged();
        return this;
      }

      private int adjustableTrailingUnit_ ;
      /**
       * <code>optional int32 adjustableTrailingUnit = 98;</code>
       * @return Whether the adjustableTrailingUnit field is set.
       */
      @java.lang.Override
      public boolean hasAdjustableTrailingUnit() {
        return ((bitField3_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int32 adjustableTrailingUnit = 98;</code>
       * @return The adjustableTrailingUnit.
       */
      @java.lang.Override
      public int getAdjustableTrailingUnit() {
        return adjustableTrailingUnit_;
      }
      /**
       * <code>optional int32 adjustableTrailingUnit = 98;</code>
       * @param value The adjustableTrailingUnit to set.
       * @return This builder for chaining.
       */
      public Builder setAdjustableTrailingUnit(int value) {

        adjustableTrailingUnit_ = value;
        bitField3_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 adjustableTrailingUnit = 98;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdjustableTrailingUnit() {
        bitField3_ = (bitField3_ & ~0x00000002);
        adjustableTrailingUnit_ = 0;
        onChanged();
        return this;
      }

      private double lmtPriceOffset_ ;
      /**
       * <code>optional double lmtPriceOffset = 99;</code>
       * @return Whether the lmtPriceOffset field is set.
       */
      @java.lang.Override
      public boolean hasLmtPriceOffset() {
        return ((bitField3_ & 0x00000004) != 0);
      }
      /**
       * <code>optional double lmtPriceOffset = 99;</code>
       * @return The lmtPriceOffset.
       */
      @java.lang.Override
      public double getLmtPriceOffset() {
        return lmtPriceOffset_;
      }
      /**
       * <code>optional double lmtPriceOffset = 99;</code>
       * @param value The lmtPriceOffset to set.
       * @return This builder for chaining.
       */
      public Builder setLmtPriceOffset(double value) {

        lmtPriceOffset_ = value;
        bitField3_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional double lmtPriceOffset = 99;</code>
       * @return This builder for chaining.
       */
      public Builder clearLmtPriceOffset() {
        bitField3_ = (bitField3_ & ~0x00000004);
        lmtPriceOffset_ = 0D;
        onChanged();
        return this;
      }

      private java.util.List<com.ib.client.protobuf.OrderConditionProto.OrderCondition> conditions_ =
        java.util.Collections.emptyList();
      private void ensureConditionsIsMutable() {
        if (!((bitField3_ & 0x00000008) != 0)) {
          conditions_ = new java.util.ArrayList<com.ib.client.protobuf.OrderConditionProto.OrderCondition>(conditions_);
          bitField3_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.ib.client.protobuf.OrderConditionProto.OrderCondition, com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder, com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder> conditionsBuilder_;

      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public java.util.List<com.ib.client.protobuf.OrderConditionProto.OrderCondition> getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public com.ib.client.protobuf.OrderConditionProto.OrderCondition getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder setConditions(
          int index, com.ib.client.protobuf.OrderConditionProto.OrderCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder setConditions(
          int index, com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder addConditions(com.ib.client.protobuf.OrderConditionProto.OrderCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder addConditions(
          int index, com.ib.client.protobuf.OrderConditionProto.OrderCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder addConditions(
          com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder addConditions(
          int index, com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<? extends com.ib.client.protobuf.OrderConditionProto.OrderCondition> values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField3_ = (bitField3_ & ~0x00000008);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder getConditionsBuilder(
          int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder getConditionsOrBuilder(
          int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);  } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public java.util.List<? extends com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder> 
           getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder addConditionsBuilder() {
        return getConditionsFieldBuilder().addBuilder(
            com.ib.client.protobuf.OrderConditionProto.OrderCondition.getDefaultInstance());
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder addConditionsBuilder(
          int index) {
        return getConditionsFieldBuilder().addBuilder(
            index, com.ib.client.protobuf.OrderConditionProto.OrderCondition.getDefaultInstance());
      }
      /**
       * <code>repeated .protobuf.OrderCondition conditions = 100;</code>
       */
      public java.util.List<com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder> 
           getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.ib.client.protobuf.OrderConditionProto.OrderCondition, com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder, com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder> 
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.ib.client.protobuf.OrderConditionProto.OrderCondition, com.ib.client.protobuf.OrderConditionProto.OrderCondition.Builder, com.ib.client.protobuf.OrderConditionProto.OrderConditionOrBuilder>(
                  conditions_,
                  ((bitField3_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }

      private boolean conditionsCancelOrder_ ;
      /**
       * <code>optional bool conditionsCancelOrder = 101;</code>
       * @return Whether the conditionsCancelOrder field is set.
       */
      @java.lang.Override
      public boolean hasConditionsCancelOrder() {
        return ((bitField3_ & 0x00000010) != 0);
      }
      /**
       * <code>optional bool conditionsCancelOrder = 101;</code>
       * @return The conditionsCancelOrder.
       */
      @java.lang.Override
      public boolean getConditionsCancelOrder() {
        return conditionsCancelOrder_;
      }
      /**
       * <code>optional bool conditionsCancelOrder = 101;</code>
       * @param value The conditionsCancelOrder to set.
       * @return This builder for chaining.
       */
      public Builder setConditionsCancelOrder(boolean value) {

        conditionsCancelOrder_ = value;
        bitField3_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool conditionsCancelOrder = 101;</code>
       * @return This builder for chaining.
       */
      public Builder clearConditionsCancelOrder() {
        bitField3_ = (bitField3_ & ~0x00000010);
        conditionsCancelOrder_ = false;
        onChanged();
        return this;
      }

      private boolean conditionsIgnoreRth_ ;
      /**
       * <code>optional bool conditionsIgnoreRth = 102;</code>
       * @return Whether the conditionsIgnoreRth field is set.
       */
      @java.lang.Override
      public boolean hasConditionsIgnoreRth() {
        return ((bitField3_ & 0x00000020) != 0);
      }
      /**
       * <code>optional bool conditionsIgnoreRth = 102;</code>
       * @return The conditionsIgnoreRth.
       */
      @java.lang.Override
      public boolean getConditionsIgnoreRth() {
        return conditionsIgnoreRth_;
      }
      /**
       * <code>optional bool conditionsIgnoreRth = 102;</code>
       * @param value The conditionsIgnoreRth to set.
       * @return This builder for chaining.
       */
      public Builder setConditionsIgnoreRth(boolean value) {

        conditionsIgnoreRth_ = value;
        bitField3_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool conditionsIgnoreRth = 102;</code>
       * @return This builder for chaining.
       */
      public Builder clearConditionsIgnoreRth() {
        bitField3_ = (bitField3_ & ~0x00000020);
        conditionsIgnoreRth_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object modelCode_ = "";
      /**
       * <pre>
       * models
       * </pre>
       *
       * <code>optional string modelCode = 103;</code>
       * @return Whether the modelCode field is set.
       */
      public boolean hasModelCode() {
        return ((bitField3_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * models
       * </pre>
       *
       * <code>optional string modelCode = 103;</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;
        }
      }
      /**
       * <pre>
       * models
       * </pre>
       *
       * <code>optional string modelCode = 103;</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;
        }
      }
      /**
       * <pre>
       * models
       * </pre>
       *
       * <code>optional string modelCode = 103;</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;
        bitField3_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * models
       * </pre>
       *
       * <code>optional string modelCode = 103;</code>
       * @return This builder for chaining.
       */
      public Builder clearModelCode() {
        modelCode_ = getDefaultInstance().getModelCode();
        bitField3_ = (bitField3_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * models
       * </pre>
       *
       * <code>optional string modelCode = 103;</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;
        bitField3_ |= 0x00000040;
        onChanged();
        return this;
      }

      private java.lang.Object extOperator_ = "";
      /**
       * <code>optional string extOperator = 104;</code>
       * @return Whether the extOperator field is set.
       */
      public boolean hasExtOperator() {
        return ((bitField3_ & 0x00000080) != 0);
      }
      /**
       * <code>optional string extOperator = 104;</code>
       * @return The extOperator.
       */
      public java.lang.String getExtOperator() {
        java.lang.Object ref = extOperator_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          extOperator_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string extOperator = 104;</code>
       * @return The bytes for extOperator.
       */
      public com.google.protobuf.ByteString
          getExtOperatorBytes() {
        java.lang.Object ref = extOperator_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          extOperator_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string extOperator = 104;</code>
       * @param value The extOperator to set.
       * @return This builder for chaining.
       */
      public Builder setExtOperator(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        extOperator_ = value;
        bitField3_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional string extOperator = 104;</code>
       * @return This builder for chaining.
       */
      public Builder clearExtOperator() {
        extOperator_ = getDefaultInstance().getExtOperator();
        bitField3_ = (bitField3_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>optional string extOperator = 104;</code>
       * @param value The bytes for extOperator to set.
       * @return This builder for chaining.
       */
      public Builder setExtOperatorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        extOperator_ = value;
        bitField3_ |= 0x00000080;
        onChanged();
        return this;
      }

      private com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier softDollarTier_;
      private com.google.protobuf.SingleFieldBuilder<
          com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier, com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.Builder, com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTierOrBuilder> softDollarTierBuilder_;
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       * @return Whether the softDollarTier field is set.
       */
      public boolean hasSoftDollarTier() {
        return ((bitField3_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       * @return The softDollarTier.
       */
      public com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier getSoftDollarTier() {
        if (softDollarTierBuilder_ == null) {
          return softDollarTier_ == null ? com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.getDefaultInstance() : softDollarTier_;
        } else {
          return softDollarTierBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       */
      public Builder setSoftDollarTier(com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier value) {
        if (softDollarTierBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          softDollarTier_ = value;
        } else {
          softDollarTierBuilder_.setMessage(value);
        }
        bitField3_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       */
      public Builder setSoftDollarTier(
          com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.Builder builderForValue) {
        if (softDollarTierBuilder_ == null) {
          softDollarTier_ = builderForValue.build();
        } else {
          softDollarTierBuilder_.setMessage(builderForValue.build());
        }
        bitField3_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       */
      public Builder mergeSoftDollarTier(com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier value) {
        if (softDollarTierBuilder_ == null) {
          if (((bitField3_ & 0x00000100) != 0) &&
            softDollarTier_ != null &&
            softDollarTier_ != com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.getDefaultInstance()) {
            getSoftDollarTierBuilder().mergeFrom(value);
          } else {
            softDollarTier_ = value;
          }
        } else {
          softDollarTierBuilder_.mergeFrom(value);
        }
        if (softDollarTier_ != null) {
          bitField3_ |= 0x00000100;
          onChanged();
        }
        return this;
      }
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       */
      public Builder clearSoftDollarTier() {
        bitField3_ = (bitField3_ & ~0x00000100);
        softDollarTier_ = null;
        if (softDollarTierBuilder_ != null) {
          softDollarTierBuilder_.dispose();
          softDollarTierBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       */
      public com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.Builder getSoftDollarTierBuilder() {
        bitField3_ |= 0x00000100;
        onChanged();
        return getSoftDollarTierFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       */
      public com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTierOrBuilder getSoftDollarTierOrBuilder() {
        if (softDollarTierBuilder_ != null) {
          return softDollarTierBuilder_.getMessageOrBuilder();
        } else {
          return softDollarTier_ == null ?
              com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.getDefaultInstance() : softDollarTier_;
        }
      }
      /**
       * <code>optional .protobuf.SoftDollarTier softDollarTier = 105;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier, com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.Builder, com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTierOrBuilder> 
          getSoftDollarTierFieldBuilder() {
        if (softDollarTierBuilder_ == null) {
          softDollarTierBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier, com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTier.Builder, com.ib.client.protobuf.SoftDollarTierProto.SoftDollarTierOrBuilder>(
                  getSoftDollarTier(),
                  getParentForChildren(),
                  isClean());
          softDollarTier_ = null;
        }
        return softDollarTierBuilder_;
      }

      private double cashQty_ ;
      /**
       * <pre>
       * native cash quantity
       * </pre>
       *
       * <code>optional double cashQty = 106;</code>
       * @return Whether the cashQty field is set.
       */
      @java.lang.Override
      public boolean hasCashQty() {
        return ((bitField3_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * native cash quantity
       * </pre>
       *
       * <code>optional double cashQty = 106;</code>
       * @return The cashQty.
       */
      @java.lang.Override
      public double getCashQty() {
        return cashQty_;
      }
      /**
       * <pre>
       * native cash quantity
       * </pre>
       *
       * <code>optional double cashQty = 106;</code>
       * @param value The cashQty to set.
       * @return This builder for chaining.
       */
      public Builder setCashQty(double value) {

        cashQty_ = value;
        bitField3_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * native cash quantity
       * </pre>
       *
       * <code>optional double cashQty = 106;</code>
       * @return This builder for chaining.
       */
      public Builder clearCashQty() {
        bitField3_ = (bitField3_ & ~0x00000200);
        cashQty_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object mifid2DecisionMaker_ = "";
      /**
       * <code>optional string mifid2DecisionMaker = 107;</code>
       * @return Whether the mifid2DecisionMaker field is set.
       */
      public boolean hasMifid2DecisionMaker() {
        return ((bitField3_ & 0x00000400) != 0);
      }
      /**
       * <code>optional string mifid2DecisionMaker = 107;</code>
       * @return The mifid2DecisionMaker.
       */
      public java.lang.String getMifid2DecisionMaker() {
        java.lang.Object ref = mifid2DecisionMaker_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mifid2DecisionMaker_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string mifid2DecisionMaker = 107;</code>
       * @return The bytes for mifid2DecisionMaker.
       */
      public com.google.protobuf.ByteString
          getMifid2DecisionMakerBytes() {
        java.lang.Object ref = mifid2DecisionMaker_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mifid2DecisionMaker_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string mifid2DecisionMaker = 107;</code>
       * @param value The mifid2DecisionMaker to set.
       * @return This builder for chaining.
       */
      public Builder setMifid2DecisionMaker(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        mifid2DecisionMaker_ = value;
        bitField3_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional string mifid2DecisionMaker = 107;</code>
       * @return This builder for chaining.
       */
      public Builder clearMifid2DecisionMaker() {
        mifid2DecisionMaker_ = getDefaultInstance().getMifid2DecisionMaker();
        bitField3_ = (bitField3_ & ~0x00000400);
        onChanged();
        return this;
      }
      /**
       * <code>optional string mifid2DecisionMaker = 107;</code>
       * @param value The bytes for mifid2DecisionMaker to set.
       * @return This builder for chaining.
       */
      public Builder setMifid2DecisionMakerBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        mifid2DecisionMaker_ = value;
        bitField3_ |= 0x00000400;
        onChanged();
        return this;
      }

      private java.lang.Object mifid2DecisionAlgo_ = "";
      /**
       * <code>optional string mifid2DecisionAlgo = 108;</code>
       * @return Whether the mifid2DecisionAlgo field is set.
       */
      public boolean hasMifid2DecisionAlgo() {
        return ((bitField3_ & 0x00000800) != 0);
      }
      /**
       * <code>optional string mifid2DecisionAlgo = 108;</code>
       * @return The mifid2DecisionAlgo.
       */
      public java.lang.String getMifid2DecisionAlgo() {
        java.lang.Object ref = mifid2DecisionAlgo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mifid2DecisionAlgo_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string mifid2DecisionAlgo = 108;</code>
       * @return The bytes for mifid2DecisionAlgo.
       */
      public com.google.protobuf.ByteString
          getMifid2DecisionAlgoBytes() {
        java.lang.Object ref = mifid2DecisionAlgo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mifid2DecisionAlgo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string mifid2DecisionAlgo = 108;</code>
       * @param value The mifid2DecisionAlgo to set.
       * @return This builder for chaining.
       */
      public Builder setMifid2DecisionAlgo(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        mifid2DecisionAlgo_ = value;
        bitField3_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional string mifid2DecisionAlgo = 108;</code>
       * @return This builder for chaining.
       */
      public Builder clearMifid2DecisionAlgo() {
        mifid2DecisionAlgo_ = getDefaultInstance().getMifid2DecisionAlgo();
        bitField3_ = (bitField3_ & ~0x00000800);
        onChanged();
        return this;
      }
      /**
       * <code>optional string mifid2DecisionAlgo = 108;</code>
       * @param value The bytes for mifid2DecisionAlgo to set.
       * @return This builder for chaining.
       */
      public Builder setMifid2DecisionAlgoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        mifid2DecisionAlgo_ = value;
        bitField3_ |= 0x00000800;
        onChanged();
        return this;
      }

      private java.lang.Object mifid2ExecutionTrader_ = "";
      /**
       * <code>optional string mifid2ExecutionTrader = 109;</code>
       * @return Whether the mifid2ExecutionTrader field is set.
       */
      public boolean hasMifid2ExecutionTrader() {
        return ((bitField3_ & 0x00001000) != 0);
      }
      /**
       * <code>optional string mifid2ExecutionTrader = 109;</code>
       * @return The mifid2ExecutionTrader.
       */
      public java.lang.String getMifid2ExecutionTrader() {
        java.lang.Object ref = mifid2ExecutionTrader_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mifid2ExecutionTrader_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string mifid2ExecutionTrader = 109;</code>
       * @return The bytes for mifid2ExecutionTrader.
       */
      public com.google.protobuf.ByteString
          getMifid2ExecutionTraderBytes() {
        java.lang.Object ref = mifid2ExecutionTrader_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mifid2ExecutionTrader_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string mifid2ExecutionTrader = 109;</code>
       * @param value The mifid2ExecutionTrader to set.
       * @return This builder for chaining.
       */
      public Builder setMifid2ExecutionTrader(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        mifid2ExecutionTrader_ = value;
        bitField3_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string mifid2ExecutionTrader = 109;</code>
       * @return This builder for chaining.
       */
      public Builder clearMifid2ExecutionTrader() {
        mifid2ExecutionTrader_ = getDefaultInstance().getMifid2ExecutionTrader();
        bitField3_ = (bitField3_ & ~0x00001000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string mifid2ExecutionTrader = 109;</code>
       * @param value The bytes for mifid2ExecutionTrader to set.
       * @return This builder for chaining.
       */
      public Builder setMifid2ExecutionTraderBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        mifid2ExecutionTrader_ = value;
        bitField3_ |= 0x00001000;
        onChanged();
        return this;
      }

      private java.lang.Object mifid2ExecutionAlgo_ = "";
      /**
       * <code>optional string mifid2ExecutionAlgo = 110;</code>
       * @return Whether the mifid2ExecutionAlgo field is set.
       */
      public boolean hasMifid2ExecutionAlgo() {
        return ((bitField3_ & 0x00002000) != 0);
      }
      /**
       * <code>optional string mifid2ExecutionAlgo = 110;</code>
       * @return The mifid2ExecutionAlgo.
       */
      public java.lang.String getMifid2ExecutionAlgo() {
        java.lang.Object ref = mifid2ExecutionAlgo_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mifid2ExecutionAlgo_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string mifid2ExecutionAlgo = 110;</code>
       * @return The bytes for mifid2ExecutionAlgo.
       */
      public com.google.protobuf.ByteString
          getMifid2ExecutionAlgoBytes() {
        java.lang.Object ref = mifid2ExecutionAlgo_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mifid2ExecutionAlgo_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string mifid2ExecutionAlgo = 110;</code>
       * @param value The mifid2ExecutionAlgo to set.
       * @return This builder for chaining.
       */
      public Builder setMifid2ExecutionAlgo(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        mifid2ExecutionAlgo_ = value;
        bitField3_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string mifid2ExecutionAlgo = 110;</code>
       * @return This builder for chaining.
       */
      public Builder clearMifid2ExecutionAlgo() {
        mifid2ExecutionAlgo_ = getDefaultInstance().getMifid2ExecutionAlgo();
        bitField3_ = (bitField3_ & ~0x00002000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string mifid2ExecutionAlgo = 110;</code>
       * @param value The bytes for mifid2ExecutionAlgo to set.
       * @return This builder for chaining.
       */
      public Builder setMifid2ExecutionAlgoBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        mifid2ExecutionAlgo_ = value;
        bitField3_ |= 0x00002000;
        onChanged();
        return this;
      }

      private boolean dontUseAutoPriceForHedge_ ;
      /**
       * <pre>
       * don't use auto price for hedge
       * </pre>
       *
       * <code>optional bool dontUseAutoPriceForHedge = 111;</code>
       * @return Whether the dontUseAutoPriceForHedge field is set.
       */
      @java.lang.Override
      public boolean hasDontUseAutoPriceForHedge() {
        return ((bitField3_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * don't use auto price for hedge
       * </pre>
       *
       * <code>optional bool dontUseAutoPriceForHedge = 111;</code>
       * @return The dontUseAutoPriceForHedge.
       */
      @java.lang.Override
      public boolean getDontUseAutoPriceForHedge() {
        return dontUseAutoPriceForHedge_;
      }
      /**
       * <pre>
       * don't use auto price for hedge
       * </pre>
       *
       * <code>optional bool dontUseAutoPriceForHedge = 111;</code>
       * @param value The dontUseAutoPriceForHedge to set.
       * @return This builder for chaining.
       */
      public Builder setDontUseAutoPriceForHedge(boolean value) {

        dontUseAutoPriceForHedge_ = value;
        bitField3_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * don't use auto price for hedge
       * </pre>
       *
       * <code>optional bool dontUseAutoPriceForHedge = 111;</code>
       * @return This builder for chaining.
       */
      public Builder clearDontUseAutoPriceForHedge() {
        bitField3_ = (bitField3_ & ~0x00004000);
        dontUseAutoPriceForHedge_ = false;
        onChanged();
        return this;
      }

      private boolean isOmsContainer_ ;
      /**
       * <code>optional bool isOmsContainer = 112;</code>
       * @return Whether the isOmsContainer field is set.
       */
      @java.lang.Override
      public boolean hasIsOmsContainer() {
        return ((bitField3_ & 0x00008000) != 0);
      }
      /**
       * <code>optional bool isOmsContainer = 112;</code>
       * @return The isOmsContainer.
       */
      @java.lang.Override
      public boolean getIsOmsContainer() {
        return isOmsContainer_;
      }
      /**
       * <code>optional bool isOmsContainer = 112;</code>
       * @param value The isOmsContainer to set.
       * @return This builder for chaining.
       */
      public Builder setIsOmsContainer(boolean value) {

        isOmsContainer_ = value;
        bitField3_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool isOmsContainer = 112;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsOmsContainer() {
        bitField3_ = (bitField3_ & ~0x00008000);
        isOmsContainer_ = false;
        onChanged();
        return this;
      }

      private boolean discretionaryUpToLimitPrice_ ;
      /**
       * <code>optional bool discretionaryUpToLimitPrice = 113;</code>
       * @return Whether the discretionaryUpToLimitPrice field is set.
       */
      @java.lang.Override
      public boolean hasDiscretionaryUpToLimitPrice() {
        return ((bitField3_ & 0x00010000) != 0);
      }
      /**
       * <code>optional bool discretionaryUpToLimitPrice = 113;</code>
       * @return The discretionaryUpToLimitPrice.
       */
      @java.lang.Override
      public boolean getDiscretionaryUpToLimitPrice() {
        return discretionaryUpToLimitPrice_;
      }
      /**
       * <code>optional bool discretionaryUpToLimitPrice = 113;</code>
       * @param value The discretionaryUpToLimitPrice to set.
       * @return This builder for chaining.
       */
      public Builder setDiscretionaryUpToLimitPrice(boolean value) {

        discretionaryUpToLimitPrice_ = value;
        bitField3_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool discretionaryUpToLimitPrice = 113;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiscretionaryUpToLimitPrice() {
        bitField3_ = (bitField3_ & ~0x00010000);
        discretionaryUpToLimitPrice_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object autoCancelDate_ = "";
      /**
       * <code>optional string autoCancelDate = 114;</code>
       * @return Whether the autoCancelDate field is set.
       */
      public boolean hasAutoCancelDate() {
        return ((bitField3_ & 0x00020000) != 0);
      }
      /**
       * <code>optional string autoCancelDate = 114;</code>
       * @return The autoCancelDate.
       */
      public java.lang.String getAutoCancelDate() {
        java.lang.Object ref = autoCancelDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          autoCancelDate_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string autoCancelDate = 114;</code>
       * @return The bytes for autoCancelDate.
       */
      public com.google.protobuf.ByteString
          getAutoCancelDateBytes() {
        java.lang.Object ref = autoCancelDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          autoCancelDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string autoCancelDate = 114;</code>
       * @param value The autoCancelDate to set.
       * @return This builder for chaining.
       */
      public Builder setAutoCancelDate(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        autoCancelDate_ = value;
        bitField3_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string autoCancelDate = 114;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoCancelDate() {
        autoCancelDate_ = getDefaultInstance().getAutoCancelDate();
        bitField3_ = (bitField3_ & ~0x00020000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string autoCancelDate = 114;</code>
       * @param value The bytes for autoCancelDate to set.
       * @return This builder for chaining.
       */
      public Builder setAutoCancelDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        autoCancelDate_ = value;
        bitField3_ |= 0x00020000;
        onChanged();
        return this;
      }

      private java.lang.Object filledQuantity_ = "";
      /**
       * <code>optional string filledQuantity = 115;</code>
       * @return Whether the filledQuantity field is set.
       */
      public boolean hasFilledQuantity() {
        return ((bitField3_ & 0x00040000) != 0);
      }
      /**
       * <code>optional string filledQuantity = 115;</code>
       * @return The filledQuantity.
       */
      public java.lang.String getFilledQuantity() {
        java.lang.Object ref = filledQuantity_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          filledQuantity_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string filledQuantity = 115;</code>
       * @return The bytes for filledQuantity.
       */
      public com.google.protobuf.ByteString
          getFilledQuantityBytes() {
        java.lang.Object ref = filledQuantity_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          filledQuantity_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string filledQuantity = 115;</code>
       * @param value The filledQuantity to set.
       * @return This builder for chaining.
       */
      public Builder setFilledQuantity(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        filledQuantity_ = value;
        bitField3_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string filledQuantity = 115;</code>
       * @return This builder for chaining.
       */
      public Builder clearFilledQuantity() {
        filledQuantity_ = getDefaultInstance().getFilledQuantity();
        bitField3_ = (bitField3_ & ~0x00040000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string filledQuantity = 115;</code>
       * @param value The bytes for filledQuantity to set.
       * @return This builder for chaining.
       */
      public Builder setFilledQuantityBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        filledQuantity_ = value;
        bitField3_ |= 0x00040000;
        onChanged();
        return this;
      }

      private int refFuturesConId_ ;
      /**
       * <code>optional int32 refFuturesConId = 116;</code>
       * @return Whether the refFuturesConId field is set.
       */
      @java.lang.Override
      public boolean hasRefFuturesConId() {
        return ((bitField3_ & 0x00080000) != 0);
      }
      /**
       * <code>optional int32 refFuturesConId = 116;</code>
       * @return The refFuturesConId.
       */
      @java.lang.Override
      public int getRefFuturesConId() {
        return refFuturesConId_;
      }
      /**
       * <code>optional int32 refFuturesConId = 116;</code>
       * @param value The refFuturesConId to set.
       * @return This builder for chaining.
       */
      public Builder setRefFuturesConId(int value) {

        refFuturesConId_ = value;
        bitField3_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 refFuturesConId = 116;</code>
       * @return This builder for chaining.
       */
      public Builder clearRefFuturesConId() {
        bitField3_ = (bitField3_ & ~0x00080000);
        refFuturesConId_ = 0;
        onChanged();
        return this;
      }

      private boolean autoCancelParent_ ;
      /**
       * <code>optional bool autoCancelParent = 117;</code>
       * @return Whether the autoCancelParent field is set.
       */
      @java.lang.Override
      public boolean hasAutoCancelParent() {
        return ((bitField3_ & 0x00100000) != 0);
      }
      /**
       * <code>optional bool autoCancelParent = 117;</code>
       * @return The autoCancelParent.
       */
      @java.lang.Override
      public boolean getAutoCancelParent() {
        return autoCancelParent_;
      }
      /**
       * <code>optional bool autoCancelParent = 117;</code>
       * @param value The autoCancelParent to set.
       * @return This builder for chaining.
       */
      public Builder setAutoCancelParent(boolean value) {

        autoCancelParent_ = value;
        bitField3_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool autoCancelParent = 117;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoCancelParent() {
        bitField3_ = (bitField3_ & ~0x00100000);
        autoCancelParent_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object shareholder_ = "";
      /**
       * <code>optional string shareholder = 118;</code>
       * @return Whether the shareholder field is set.
       */
      public boolean hasShareholder() {
        return ((bitField3_ & 0x00200000) != 0);
      }
      /**
       * <code>optional string shareholder = 118;</code>
       * @return The shareholder.
       */
      public java.lang.String getShareholder() {
        java.lang.Object ref = shareholder_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          shareholder_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string shareholder = 118;</code>
       * @return The bytes for shareholder.
       */
      public com.google.protobuf.ByteString
          getShareholderBytes() {
        java.lang.Object ref = shareholder_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          shareholder_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string shareholder = 118;</code>
       * @param value The shareholder to set.
       * @return This builder for chaining.
       */
      public Builder setShareholder(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        shareholder_ = value;
        bitField3_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string shareholder = 118;</code>
       * @return This builder for chaining.
       */
      public Builder clearShareholder() {
        shareholder_ = getDefaultInstance().getShareholder();
        bitField3_ = (bitField3_ & ~0x00200000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string shareholder = 118;</code>
       * @param value The bytes for shareholder to set.
       * @return This builder for chaining.
       */
      public Builder setShareholderBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        shareholder_ = value;
        bitField3_ |= 0x00200000;
        onChanged();
        return this;
      }

      private boolean imbalanceOnly_ ;
      /**
       * <code>optional bool imbalanceOnly = 119;</code>
       * @return Whether the imbalanceOnly field is set.
       */
      @java.lang.Override
      public boolean hasImbalanceOnly() {
        return ((bitField3_ & 0x00400000) != 0);
      }
      /**
       * <code>optional bool imbalanceOnly = 119;</code>
       * @return The imbalanceOnly.
       */
      @java.lang.Override
      public boolean getImbalanceOnly() {
        return imbalanceOnly_;
      }
      /**
       * <code>optional bool imbalanceOnly = 119;</code>
       * @param value The imbalanceOnly to set.
       * @return This builder for chaining.
       */
      public Builder setImbalanceOnly(boolean value) {

        imbalanceOnly_ = value;
        bitField3_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool imbalanceOnly = 119;</code>
       * @return This builder for chaining.
       */
      public Builder clearImbalanceOnly() {
        bitField3_ = (bitField3_ & ~0x00400000);
        imbalanceOnly_ = false;
        onChanged();
        return this;
      }

      private boolean routeMarketableToBbo_ ;
      /**
       * <code>optional bool routeMarketableToBbo = 120;</code>
       * @return Whether the routeMarketableToBbo field is set.
       */
      @java.lang.Override
      public boolean hasRouteMarketableToBbo() {
        return ((bitField3_ & 0x00800000) != 0);
      }
      /**
       * <code>optional bool routeMarketableToBbo = 120;</code>
       * @return The routeMarketableToBbo.
       */
      @java.lang.Override
      public boolean getRouteMarketableToBbo() {
        return routeMarketableToBbo_;
      }
      /**
       * <code>optional bool routeMarketableToBbo = 120;</code>
       * @param value The routeMarketableToBbo to set.
       * @return This builder for chaining.
       */
      public Builder setRouteMarketableToBbo(boolean value) {

        routeMarketableToBbo_ = value;
        bitField3_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool routeMarketableToBbo = 120;</code>
       * @return This builder for chaining.
       */
      public Builder clearRouteMarketableToBbo() {
        bitField3_ = (bitField3_ & ~0x00800000);
        routeMarketableToBbo_ = false;
        onChanged();
        return this;
      }

      private long parentPermId_ ;
      /**
       * <code>optional int64 parentPermId = 121;</code>
       * @return Whether the parentPermId field is set.
       */
      @java.lang.Override
      public boolean hasParentPermId() {
        return ((bitField3_ & 0x01000000) != 0);
      }
      /**
       * <code>optional int64 parentPermId = 121;</code>
       * @return The parentPermId.
       */
      @java.lang.Override
      public long getParentPermId() {
        return parentPermId_;
      }
      /**
       * <code>optional int64 parentPermId = 121;</code>
       * @param value The parentPermId to set.
       * @return This builder for chaining.
       */
      public Builder setParentPermId(long value) {

        parentPermId_ = value;
        bitField3_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 parentPermId = 121;</code>
       * @return This builder for chaining.
       */
      public Builder clearParentPermId() {
        bitField3_ = (bitField3_ & ~0x01000000);
        parentPermId_ = 0L;
        onChanged();
        return this;
      }

      private int usePriceMgmtAlgo_ ;
      /**
       * <code>optional int32 usePriceMgmtAlgo = 122;</code>
       * @return Whether the usePriceMgmtAlgo field is set.
       */
      @java.lang.Override
      public boolean hasUsePriceMgmtAlgo() {
        return ((bitField3_ & 0x02000000) != 0);
      }
      /**
       * <code>optional int32 usePriceMgmtAlgo = 122;</code>
       * @return The usePriceMgmtAlgo.
       */
      @java.lang.Override
      public int getUsePriceMgmtAlgo() {
        return usePriceMgmtAlgo_;
      }
      /**
       * <code>optional int32 usePriceMgmtAlgo = 122;</code>
       * @param value The usePriceMgmtAlgo to set.
       * @return This builder for chaining.
       */
      public Builder setUsePriceMgmtAlgo(int value) {

        usePriceMgmtAlgo_ = value;
        bitField3_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 usePriceMgmtAlgo = 122;</code>
       * @return This builder for chaining.
       */
      public Builder clearUsePriceMgmtAlgo() {
        bitField3_ = (bitField3_ & ~0x02000000);
        usePriceMgmtAlgo_ = 0;
        onChanged();
        return this;
      }

      private int duration_ ;
      /**
       * <code>optional int32 duration = 123;</code>
       * @return Whether the duration field is set.
       */
      @java.lang.Override
      public boolean hasDuration() {
        return ((bitField3_ & 0x04000000) != 0);
      }
      /**
       * <code>optional int32 duration = 123;</code>
       * @return The duration.
       */
      @java.lang.Override
      public int getDuration() {
        return duration_;
      }
      /**
       * <code>optional int32 duration = 123;</code>
       * @param value The duration to set.
       * @return This builder for chaining.
       */
      public Builder setDuration(int value) {

        duration_ = value;
        bitField3_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 duration = 123;</code>
       * @return This builder for chaining.
       */
      public Builder clearDuration() {
        bitField3_ = (bitField3_ & ~0x04000000);
        duration_ = 0;
        onChanged();
        return this;
      }

      private int postToAts_ ;
      /**
       * <code>optional int32 postToAts = 124;</code>
       * @return Whether the postToAts field is set.
       */
      @java.lang.Override
      public boolean hasPostToAts() {
        return ((bitField3_ & 0x08000000) != 0);
      }
      /**
       * <code>optional int32 postToAts = 124;</code>
       * @return The postToAts.
       */
      @java.lang.Override
      public int getPostToAts() {
        return postToAts_;
      }
      /**
       * <code>optional int32 postToAts = 124;</code>
       * @param value The postToAts to set.
       * @return This builder for chaining.
       */
      public Builder setPostToAts(int value) {

        postToAts_ = value;
        bitField3_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 postToAts = 124;</code>
       * @return This builder for chaining.
       */
      public Builder clearPostToAts() {
        bitField3_ = (bitField3_ & ~0x08000000);
        postToAts_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object advancedErrorOverride_ = "";
      /**
       * <code>optional string advancedErrorOverride = 125;</code>
       * @return Whether the advancedErrorOverride field is set.
       */
      public boolean hasAdvancedErrorOverride() {
        return ((bitField3_ & 0x10000000) != 0);
      }
      /**
       * <code>optional string advancedErrorOverride = 125;</code>
       * @return The advancedErrorOverride.
       */
      public java.lang.String getAdvancedErrorOverride() {
        java.lang.Object ref = advancedErrorOverride_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          advancedErrorOverride_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string advancedErrorOverride = 125;</code>
       * @return The bytes for advancedErrorOverride.
       */
      public com.google.protobuf.ByteString
          getAdvancedErrorOverrideBytes() {
        java.lang.Object ref = advancedErrorOverride_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          advancedErrorOverride_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string advancedErrorOverride = 125;</code>
       * @param value The advancedErrorOverride to set.
       * @return This builder for chaining.
       */
      public Builder setAdvancedErrorOverride(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        advancedErrorOverride_ = value;
        bitField3_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string advancedErrorOverride = 125;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdvancedErrorOverride() {
        advancedErrorOverride_ = getDefaultInstance().getAdvancedErrorOverride();
        bitField3_ = (bitField3_ & ~0x10000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string advancedErrorOverride = 125;</code>
       * @param value The bytes for advancedErrorOverride to set.
       * @return This builder for chaining.
       */
      public Builder setAdvancedErrorOverrideBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        advancedErrorOverride_ = value;
        bitField3_ |= 0x10000000;
        onChanged();
        return this;
      }

      private java.lang.Object manualOrderTime_ = "";
      /**
       * <code>optional string manualOrderTime = 126;</code>
       * @return Whether the manualOrderTime field is set.
       */
      public boolean hasManualOrderTime() {
        return ((bitField3_ & 0x20000000) != 0);
      }
      /**
       * <code>optional string manualOrderTime = 126;</code>
       * @return The manualOrderTime.
       */
      public java.lang.String getManualOrderTime() {
        java.lang.Object ref = manualOrderTime_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          manualOrderTime_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string manualOrderTime = 126;</code>
       * @return The bytes for manualOrderTime.
       */
      public com.google.protobuf.ByteString
          getManualOrderTimeBytes() {
        java.lang.Object ref = manualOrderTime_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          manualOrderTime_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string manualOrderTime = 126;</code>
       * @param value The manualOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setManualOrderTime(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        manualOrderTime_ = value;
        bitField3_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional string manualOrderTime = 126;</code>
       * @return This builder for chaining.
       */
      public Builder clearManualOrderTime() {
        manualOrderTime_ = getDefaultInstance().getManualOrderTime();
        bitField3_ = (bitField3_ & ~0x20000000);
        onChanged();
        return this;
      }
      /**
       * <code>optional string manualOrderTime = 126;</code>
       * @param value The bytes for manualOrderTime to set.
       * @return This builder for chaining.
       */
      public Builder setManualOrderTimeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        manualOrderTime_ = value;
        bitField3_ |= 0x20000000;
        onChanged();
        return this;
      }

      private int minTradeQty_ ;
      /**
       * <code>optional int32 minTradeQty = 127;</code>
       * @return Whether the minTradeQty field is set.
       */
      @java.lang.Override
      public boolean hasMinTradeQty() {
        return ((bitField3_ & 0x40000000) != 0);
      }
      /**
       * <code>optional int32 minTradeQty = 127;</code>
       * @return The minTradeQty.
       */
      @java.lang.Override
      public int getMinTradeQty() {
        return minTradeQty_;
      }
      /**
       * <code>optional int32 minTradeQty = 127;</code>
       * @param value The minTradeQty to set.
       * @return This builder for chaining.
       */
      public Builder setMinTradeQty(int value) {

        minTradeQty_ = value;
        bitField3_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 minTradeQty = 127;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinTradeQty() {
        bitField3_ = (bitField3_ & ~0x40000000);
        minTradeQty_ = 0;
        onChanged();
        return this;
      }

      private int minCompeteSize_ ;
      /**
       * <code>optional int32 minCompeteSize = 128;</code>
       * @return Whether the minCompeteSize field is set.
       */
      @java.lang.Override
      public boolean hasMinCompeteSize() {
        return ((bitField3_ & 0x80000000) != 0);
      }
      /**
       * <code>optional int32 minCompeteSize = 128;</code>
       * @return The minCompeteSize.
       */
      @java.lang.Override
      public int getMinCompeteSize() {
        return minCompeteSize_;
      }
      /**
       * <code>optional int32 minCompeteSize = 128;</code>
       * @param value The minCompeteSize to set.
       * @return This builder for chaining.
       */
      public Builder setMinCompeteSize(int value) {

        minCompeteSize_ = value;
        bitField3_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 minCompeteSize = 128;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinCompeteSize() {
        bitField3_ = (bitField3_ & ~0x80000000);
        minCompeteSize_ = 0;
        onChanged();
        return this;
      }

      private double competeAgainstBestOffset_ ;
      /**
       * <code>optional double competeAgainstBestOffset = 129;</code>
       * @return Whether the competeAgainstBestOffset field is set.
       */
      @java.lang.Override
      public boolean hasCompeteAgainstBestOffset() {
        return ((bitField4_ & 0x00000001) != 0);
      }
      /**
       * <code>optional double competeAgainstBestOffset = 129;</code>
       * @return The competeAgainstBestOffset.
       */
      @java.lang.Override
      public double getCompeteAgainstBestOffset() {
        return competeAgainstBestOffset_;
      }
      /**
       * <code>optional double competeAgainstBestOffset = 129;</code>
       * @param value The competeAgainstBestOffset to set.
       * @return This builder for chaining.
       */
      public Builder setCompeteAgainstBestOffset(double value) {

        competeAgainstBestOffset_ = value;
        bitField4_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional double competeAgainstBestOffset = 129;</code>
       * @return This builder for chaining.
       */
      public Builder clearCompeteAgainstBestOffset() {
        bitField4_ = (bitField4_ & ~0x00000001);
        competeAgainstBestOffset_ = 0D;
        onChanged();
        return this;
      }

      private double midOffsetAtWhole_ ;
      /**
       * <code>optional double midOffsetAtWhole = 130;</code>
       * @return Whether the midOffsetAtWhole field is set.
       */
      @java.lang.Override
      public boolean hasMidOffsetAtWhole() {
        return ((bitField4_ & 0x00000002) != 0);
      }
      /**
       * <code>optional double midOffsetAtWhole = 130;</code>
       * @return The midOffsetAtWhole.
       */
      @java.lang.Override
      public double getMidOffsetAtWhole() {
        return midOffsetAtWhole_;
      }
      /**
       * <code>optional double midOffsetAtWhole = 130;</code>
       * @param value The midOffsetAtWhole to set.
       * @return This builder for chaining.
       */
      public Builder setMidOffsetAtWhole(double value) {

        midOffsetAtWhole_ = value;
        bitField4_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional double midOffsetAtWhole = 130;</code>
       * @return This builder for chaining.
       */
      public Builder clearMidOffsetAtWhole() {
        bitField4_ = (bitField4_ & ~0x00000002);
        midOffsetAtWhole_ = 0D;
        onChanged();
        return this;
      }

      private double midOffsetAtHalf_ ;
      /**
       * <code>optional double midOffsetAtHalf = 131;</code>
       * @return Whether the midOffsetAtHalf field is set.
       */
      @java.lang.Override
      public boolean hasMidOffsetAtHalf() {
        return ((bitField4_ & 0x00000004) != 0);
      }
      /**
       * <code>optional double midOffsetAtHalf = 131;</code>
       * @return The midOffsetAtHalf.
       */
      @java.lang.Override
      public double getMidOffsetAtHalf() {
        return midOffsetAtHalf_;
      }
      /**
       * <code>optional double midOffsetAtHalf = 131;</code>
       * @param value The midOffsetAtHalf to set.
       * @return This builder for chaining.
       */
      public Builder setMidOffsetAtHalf(double value) {

        midOffsetAtHalf_ = value;
        bitField4_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional double midOffsetAtHalf = 131;</code>
       * @return This builder for chaining.
       */
      public Builder clearMidOffsetAtHalf() {
        bitField4_ = (bitField4_ & ~0x00000004);
        midOffsetAtHalf_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object customerAccount_ = "";
      /**
       * <code>optional string customerAccount = 132;</code>
       * @return Whether the customerAccount field is set.
       */
      public boolean hasCustomerAccount() {
        return ((bitField4_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string customerAccount = 132;</code>
       * @return The customerAccount.
       */
      public java.lang.String getCustomerAccount() {
        java.lang.Object ref = customerAccount_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          customerAccount_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string customerAccount = 132;</code>
       * @return The bytes for customerAccount.
       */
      public com.google.protobuf.ByteString
          getCustomerAccountBytes() {
        java.lang.Object ref = customerAccount_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          customerAccount_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string customerAccount = 132;</code>
       * @param value The customerAccount to set.
       * @return This builder for chaining.
       */
      public Builder setCustomerAccount(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        customerAccount_ = value;
        bitField4_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional string customerAccount = 132;</code>
       * @return This builder for chaining.
       */
      public Builder clearCustomerAccount() {
        customerAccount_ = getDefaultInstance().getCustomerAccount();
        bitField4_ = (bitField4_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>optional string customerAccount = 132;</code>
       * @param value The bytes for customerAccount to set.
       * @return This builder for chaining.
       */
      public Builder setCustomerAccountBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        customerAccount_ = value;
        bitField4_ |= 0x00000008;
        onChanged();
        return this;
      }

      private boolean professionalCustomer_ ;
      /**
       * <code>optional bool professionalCustomer = 133;</code>
       * @return Whether the professionalCustomer field is set.
       */
      @java.lang.Override
      public boolean hasProfessionalCustomer() {
        return ((bitField4_ & 0x00000010) != 0);
      }
      /**
       * <code>optional bool professionalCustomer = 133;</code>
       * @return The professionalCustomer.
       */
      @java.lang.Override
      public boolean getProfessionalCustomer() {
        return professionalCustomer_;
      }
      /**
       * <code>optional bool professionalCustomer = 133;</code>
       * @param value The professionalCustomer to set.
       * @return This builder for chaining.
       */
      public Builder setProfessionalCustomer(boolean value) {

        professionalCustomer_ = value;
        bitField4_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool professionalCustomer = 133;</code>
       * @return This builder for chaining.
       */
      public Builder clearProfessionalCustomer() {
        bitField4_ = (bitField4_ & ~0x00000010);
        professionalCustomer_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object bondAccruedInterest_ = "";
      /**
       * <code>optional string bondAccruedInterest = 134;</code>
       * @return Whether the bondAccruedInterest field is set.
       */
      public boolean hasBondAccruedInterest() {
        return ((bitField4_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string bondAccruedInterest = 134;</code>
       * @return The bondAccruedInterest.
       */
      public java.lang.String getBondAccruedInterest() {
        java.lang.Object ref = bondAccruedInterest_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          bondAccruedInterest_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string bondAccruedInterest = 134;</code>
       * @return The bytes for bondAccruedInterest.
       */
      public com.google.protobuf.ByteString
          getBondAccruedInterestBytes() {
        java.lang.Object ref = bondAccruedInterest_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          bondAccruedInterest_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string bondAccruedInterest = 134;</code>
       * @param value The bondAccruedInterest to set.
       * @return This builder for chaining.
       */
      public Builder setBondAccruedInterest(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        bondAccruedInterest_ = value;
        bitField4_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional string bondAccruedInterest = 134;</code>
       * @return This builder for chaining.
       */
      public Builder clearBondAccruedInterest() {
        bondAccruedInterest_ = getDefaultInstance().getBondAccruedInterest();
        bitField4_ = (bitField4_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>optional string bondAccruedInterest = 134;</code>
       * @param value The bytes for bondAccruedInterest to set.
       * @return This builder for chaining.
       */
      public Builder setBondAccruedInterestBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        bondAccruedInterest_ = value;
        bitField4_ |= 0x00000020;
        onChanged();
        return this;
      }

      private boolean includeOvernight_ ;
      /**
       * <code>optional bool includeOvernight = 135;</code>
       * @return Whether the includeOvernight field is set.
       */
      @java.lang.Override
      public boolean hasIncludeOvernight() {
        return ((bitField4_ & 0x00000040) != 0);
      }
      /**
       * <code>optional bool includeOvernight = 135;</code>
       * @return The includeOvernight.
       */
      @java.lang.Override
      public boolean getIncludeOvernight() {
        return includeOvernight_;
      }
      /**
       * <code>optional bool includeOvernight = 135;</code>
       * @param value The includeOvernight to set.
       * @return This builder for chaining.
       */
      public Builder setIncludeOvernight(boolean value) {

        includeOvernight_ = value;
        bitField4_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool includeOvernight = 135;</code>
       * @return This builder for chaining.
       */
      public Builder clearIncludeOvernight() {
        bitField4_ = (bitField4_ & ~0x00000040);
        includeOvernight_ = false;
        onChanged();
        return this;
      }

      private int manualOrderIndicator_ ;
      /**
       * <code>optional int32 manualOrderIndicator = 136;</code>
       * @return Whether the manualOrderIndicator field is set.
       */
      @java.lang.Override
      public boolean hasManualOrderIndicator() {
        return ((bitField4_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int32 manualOrderIndicator = 136;</code>
       * @return The manualOrderIndicator.
       */
      @java.lang.Override
      public int getManualOrderIndicator() {
        return manualOrderIndicator_;
      }
      /**
       * <code>optional int32 manualOrderIndicator = 136;</code>
       * @param value The manualOrderIndicator to set.
       * @return This builder for chaining.
       */
      public Builder setManualOrderIndicator(int value) {

        manualOrderIndicator_ = value;
        bitField4_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 manualOrderIndicator = 136;</code>
       * @return This builder for chaining.
       */
      public Builder clearManualOrderIndicator() {
        bitField4_ = (bitField4_ & ~0x00000080);
        manualOrderIndicator_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object submitter_ = "";
      /**
       * <code>optional string submitter = 137;</code>
       * @return Whether the submitter field is set.
       */
      public boolean hasSubmitter() {
        return ((bitField4_ & 0x00000100) != 0);
      }
      /**
       * <code>optional string submitter = 137;</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 = 137;</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 = 137;</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;
        bitField4_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional string submitter = 137;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubmitter() {
        submitter_ = getDefaultInstance().getSubmitter();
        bitField4_ = (bitField4_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * <code>optional string submitter = 137;</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;
        bitField4_ |= 0x00000100;
        onChanged();
        return this;
      }

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

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

    public static com.ib.client.protobuf.OrderProto.Order getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Order>
        PARSER = new com.google.protobuf.AbstractParser<Order>() {
      @java.lang.Override
      public Order 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<Order> parser() {
      return PARSER;
    }

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_protobuf_Order_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_protobuf_Order_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_protobuf_Order_AlgoParamsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_protobuf_Order_AlgoParamsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_protobuf_Order_SmartComboRoutingParamsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_protobuf_Order_SmartComboRoutingParamsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_protobuf_Order_OrderMiscOptionsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_protobuf_Order_OrderMiscOptionsEntry_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\013Order.proto\022\010protobuf\032\024OrderCondition." +
      "proto\032\024SoftDollarTier.proto\"\2776\n\005Order\022\025\n" +
      "\010clientId\030\001 \001(\005H\000\210\001\001\022\024\n\007orderId\030\002 \001(\005H\001\210" +
      "\001\001\022\023\n\006permId\030\003 \001(\003H\002\210\001\001\022\025\n\010parentId\030\004 \001(" +
      "\005H\003\210\001\001\022\023\n\006action\030\005 \001(\tH\004\210\001\001\022\032\n\rtotalQuan" +
      "tity\030\006 \001(\tH\005\210\001\001\022\030\n\013displaySize\030\007 \001(\005H\006\210\001" +
      "\001\022\026\n\torderType\030\010 \001(\tH\007\210\001\001\022\025\n\010lmtPrice\030\t " +
      "\001(\001H\010\210\001\001\022\025\n\010auxPrice\030\n \001(\001H\t\210\001\001\022\020\n\003tif\030\013" +
      " \001(\tH\n\210\001\001\022\024\n\007account\030\014 \001(\tH\013\210\001\001\022\031\n\014settl" +
      "ingFirm\030\r \001(\tH\014\210\001\001\022\034\n\017clearingAccount\030\016 " +
      "\001(\tH\r\210\001\001\022\033\n\016clearingIntent\030\017 \001(\tH\016\210\001\001\022\026\n" +
      "\tallOrNone\030\020 \001(\010H\017\210\001\001\022\027\n\nblockOrder\030\021 \001(" +
      "\010H\020\210\001\001\022\023\n\006hidden\030\022 \001(\010H\021\210\001\001\022\027\n\noutsideRt" +
      "h\030\023 \001(\010H\022\210\001\001\022\030\n\013sweepToFill\030\024 \001(\010H\023\210\001\001\022\032" +
      "\n\rpercentOffset\030\025 \001(\001H\024\210\001\001\022\034\n\017trailingPe" +
      "rcent\030\026 \001(\001H\025\210\001\001\022\033\n\016trailStopPrice\030\027 \001(\001" +
      "H\026\210\001\001\022\023\n\006minQty\030\030 \001(\005H\027\210\001\001\022\032\n\rgoodAfterT" +
      "ime\030\031 \001(\tH\030\210\001\001\022\031\n\014goodTillDate\030\032 \001(\tH\031\210\001" +
      "\001\022\025\n\010ocaGroup\030\033 \001(\tH\032\210\001\001\022\025\n\010orderRef\030\034 \001" +
      "(\tH\033\210\001\001\022\024\n\007rule80A\030\035 \001(\tH\034\210\001\001\022\024\n\007ocaType" +
      "\030\036 \001(\005H\035\210\001\001\022\032\n\rtriggerMethod\030\037 \001(\005H\036\210\001\001\022" +
      "\034\n\017activeStartTime\030  \001(\tH\037\210\001\001\022\033\n\016activeS" +
      "topTime\030! \001(\tH \210\001\001\022\024\n\007faGroup\030\" \001(\tH!\210\001\001" +
      "\022\025\n\010faMethod\030# \001(\tH\"\210\001\001\022\031\n\014faPercentage\030" +
      "$ \001(\tH#\210\001\001\022\027\n\nvolatility\030% \001(\001H$\210\001\001\022\033\n\016v" +
      "olatilityType\030& \001(\005H%\210\001\001\022\035\n\020continuousUp" +
      "date\030\' \001(\010H&\210\001\001\022\037\n\022referencePriceType\030( " +
      "\001(\005H\'\210\001\001\022\"\n\025deltaNeutralOrderType\030) \001(\tH" +
      "(\210\001\001\022!\n\024deltaNeutralAuxPrice\030* \001(\001H)\210\001\001\022" +
      "\036\n\021deltaNeutralConId\030+ \001(\005H*\210\001\001\022\"\n\025delta" +
      "NeutralOpenClose\030, \001(\tH+\210\001\001\022\"\n\025deltaNeut" +
      "ralShortSale\030- \001(\010H,\210\001\001\022&\n\031deltaNeutralS" +
      "hortSaleSlot\030. \001(\005H-\210\001\001\022+\n\036deltaNeutralD" +
      "esignatedLocation\030/ \001(\tH.\210\001\001\022\037\n\022scaleIni" +
      "tLevelSize\0300 \001(\005H/\210\001\001\022\037\n\022scaleSubsLevelS" +
      "ize\0301 \001(\005H0\210\001\001\022 \n\023scalePriceIncrement\0302 " +
      "\001(\001H1\210\001\001\022\"\n\025scalePriceAdjustValue\0303 \001(\001H" +
      "2\210\001\001\022%\n\030scalePriceAdjustInterval\0304 \001(\005H3" +
      "\210\001\001\022\036\n\021scaleProfitOffset\0305 \001(\001H4\210\001\001\022\033\n\016s" +
      "caleAutoReset\0306 \001(\010H5\210\001\001\022\036\n\021scaleInitPos" +
      "ition\0307 \001(\005H6\210\001\001\022\035\n\020scaleInitFillQty\0308 \001" +
      "(\005H7\210\001\001\022\037\n\022scaleRandomPercent\0309 \001(\010H8\210\001\001" +
      "\022\027\n\nscaleTable\030: \001(\tH9\210\001\001\022\026\n\thedgeType\030;" +
      " \001(\tH:\210\001\001\022\027\n\nhedgeParam\030< \001(\tH;\210\001\001\022\031\n\014al" +
      "goStrategy\030= \001(\tH<\210\001\001\0223\n\nalgoParams\030> \003(" +
      "\0132\037.protobuf.Order.AlgoParamsEntry\022\023\n\006al" +
      "goId\030? \001(\tH=\210\001\001\022M\n\027smartComboRoutingPara" +
      "ms\030@ \003(\0132,.protobuf.Order.SmartComboRout" +
      "ingParamsEntry\022\023\n\006whatIf\030A \001(\010H>\210\001\001\022\025\n\010t" +
      "ransmit\030B \001(\010H?\210\001\001\022*\n\035overridePercentage" +
      "Constraints\030C \001(\010H@\210\001\001\022\026\n\topenClose\030D \001(" +
      "\tHA\210\001\001\022\023\n\006origin\030E \001(\005HB\210\001\001\022\032\n\rshortSale" +
      "Slot\030F \001(\005HC\210\001\001\022\037\n\022designatedLocation\030G " +
      "\001(\tHD\210\001\001\022\027\n\nexemptCode\030H \001(\005HE\210\001\001\022%\n\030del" +
      "taNeutralSettlingFirm\030I \001(\tHF\210\001\001\022(\n\033delt" +
      "aNeutralClearingAccount\030J \001(\tHG\210\001\001\022\'\n\032de" +
      "ltaNeutralClearingIntent\030K \001(\tHH\210\001\001\022\035\n\020d" +
      "iscretionaryAmt\030L \001(\001HI\210\001\001\022\037\n\022optOutSmar" +
      "tRouting\030M \001(\010HJ\210\001\001\022\032\n\rstartingPrice\030N \001" +
      "(\001HK\210\001\001\022\032\n\rstockRefPrice\030O \001(\001HL\210\001\001\022\022\n\005d" +
      "elta\030P \001(\001HM\210\001\001\022\034\n\017stockRangeLower\030Q \001(\001" +
      "HN\210\001\001\022\034\n\017stockRangeUpper\030R \001(\001HO\210\001\001\022\024\n\007n" +
      "otHeld\030S \001(\010HP\210\001\001\022?\n\020orderMiscOptions\030T " +
      "\003(\0132%.protobuf.Order.OrderMiscOptionsEnt" +
      "ry\022\026\n\tsolicited\030U \001(\010HQ\210\001\001\022\032\n\rrandomizeS" +
      "ize\030V \001(\010HR\210\001\001\022\033\n\016randomizePrice\030W \001(\010HS" +
      "\210\001\001\022 \n\023referenceContractId\030X \001(\005HT\210\001\001\022\037\n" +
      "\022peggedChangeAmount\030Y \001(\001HU\210\001\001\022)\n\034isPegg" +
      "edChangeAmountDecrease\030Z \001(\010HV\210\001\001\022\"\n\025ref" +
      "erenceChangeAmount\030[ \001(\001HW\210\001\001\022 \n\023referen" +
      "ceExchangeId\030\\ \001(\tHX\210\001\001\022\036\n\021adjustedOrder" +
      "Type\030] \001(\tHY\210\001\001\022\031\n\014triggerPrice\030^ \001(\001HZ\210" +
      "\001\001\022\036\n\021adjustedStopPrice\030_ \001(\001H[\210\001\001\022#\n\026ad" +
      "justedStopLimitPrice\030` \001(\001H\\\210\001\001\022#\n\026adjus" +
      "tedTrailingAmount\030a \001(\001H]\210\001\001\022#\n\026adjustab" +
      "leTrailingUnit\030b \001(\005H^\210\001\001\022\033\n\016lmtPriceOff" +
      "set\030c \001(\001H_\210\001\001\022,\n\nconditions\030d \003(\0132\030.pro" +
      "tobuf.OrderCondition\022\"\n\025conditionsCancel" +
      "Order\030e \001(\010H`\210\001\001\022 \n\023conditionsIgnoreRth\030" +
      "f \001(\010Ha\210\001\001\022\026\n\tmodelCode\030g \001(\tHb\210\001\001\022\030\n\013ex" +
      "tOperator\030h \001(\tHc\210\001\001\0225\n\016softDollarTier\030i" +
      " \001(\0132\030.protobuf.SoftDollarTierHd\210\001\001\022\024\n\007c" +
      "ashQty\030j \001(\001He\210\001\001\022 \n\023mifid2DecisionMaker" +
      "\030k \001(\tHf\210\001\001\022\037\n\022mifid2DecisionAlgo\030l \001(\tH" +
      "g\210\001\001\022\"\n\025mifid2ExecutionTrader\030m \001(\tHh\210\001\001" +
      "\022 \n\023mifid2ExecutionAlgo\030n \001(\tHi\210\001\001\022%\n\030do" +
      "ntUseAutoPriceForHedge\030o \001(\010Hj\210\001\001\022\033\n\016isO" +
      "msContainer\030p \001(\010Hk\210\001\001\022(\n\033discretionaryU" +
      "pToLimitPrice\030q \001(\010Hl\210\001\001\022\033\n\016autoCancelDa" +
      "te\030r \001(\tHm\210\001\001\022\033\n\016filledQuantity\030s \001(\tHn\210" +
      "\001\001\022\034\n\017refFuturesConId\030t \001(\005Ho\210\001\001\022\035\n\020auto" +
      "CancelParent\030u \001(\010Hp\210\001\001\022\030\n\013shareholder\030v" +
      " \001(\tHq\210\001\001\022\032\n\rimbalanceOnly\030w \001(\010Hr\210\001\001\022!\n" +
      "\024routeMarketableToBbo\030x \001(\010Hs\210\001\001\022\031\n\014pare" +
      "ntPermId\030y \001(\003Ht\210\001\001\022\035\n\020usePriceMgmtAlgo\030" +
      "z \001(\005Hu\210\001\001\022\025\n\010duration\030{ \001(\005Hv\210\001\001\022\026\n\tpos" +
      "tToAts\030| \001(\005Hw\210\001\001\022\"\n\025advancedErrorOverri" +
      "de\030} \001(\tHx\210\001\001\022\034\n\017manualOrderTime\030~ \001(\tHy" +
      "\210\001\001\022\030\n\013minTradeQty\030\177 \001(\005Hz\210\001\001\022\034\n\016minComp" +
      "eteSize\030\200\001 \001(\005H{\210\001\001\022&\n\030competeAgainstBes" +
      "tOffset\030\201\001 \001(\001H|\210\001\001\022\036\n\020midOffsetAtWhole\030" +
      "\202\001 \001(\001H}\210\001\001\022\035\n\017midOffsetAtHalf\030\203\001 \001(\001H~\210" +
      "\001\001\022\035\n\017customerAccount\030\204\001 \001(\tH\177\210\001\001\022#\n\024pro" +
      "fessionalCustomer\030\205\001 \001(\010H\200\001\210\001\001\022\"\n\023bondAc" +
      "cruedInterest\030\206\001 \001(\tH\201\001\210\001\001\022\037\n\020includeOve" +
      "rnight\030\207\001 \001(\010H\202\001\210\001\001\022#\n\024manualOrderIndica" +
      "tor\030\210\001 \001(\005H\203\001\210\001\001\022\030\n\tsubmitter\030\211\001 \001(\tH\204\001\210" +
      "\001\001\0321\n\017AlgoParamsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005va" +
      "lue\030\002 \001(\t:\0028\001\032>\n\034SmartComboRoutingParams" +
      "Entry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\0327\n" +
      "\025OrderMiscOptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005v" +
      "alue\030\002 \001(\t:\0028\001B\013\n\t_clientIdB\n\n\010_orderIdB" +
      "\t\n\007_permIdB\013\n\t_parentIdB\t\n\007_actionB\020\n\016_t" +
      "otalQuantityB\016\n\014_displaySizeB\014\n\n_orderTy" +
      "peB\013\n\t_lmtPriceB\013\n\t_auxPriceB\006\n\004_tifB\n\n\010" +
      "_accountB\017\n\r_settlingFirmB\022\n\020_clearingAc" +
      "countB\021\n\017_clearingIntentB\014\n\n_allOrNoneB\r" +
      "\n\013_blockOrderB\t\n\007_hiddenB\r\n\013_outsideRthB" +
      "\016\n\014_sweepToFillB\020\n\016_percentOffsetB\022\n\020_tr" +
      "ailingPercentB\021\n\017_trailStopPriceB\t\n\007_min" +
      "QtyB\020\n\016_goodAfterTimeB\017\n\r_goodTillDateB\013" +
      "\n\t_ocaGroupB\013\n\t_orderRefB\n\n\010_rule80AB\n\n\010" +
      "_ocaTypeB\020\n\016_triggerMethodB\022\n\020_activeSta" +
      "rtTimeB\021\n\017_activeStopTimeB\n\n\010_faGroupB\013\n" +
      "\t_faMethodB\017\n\r_faPercentageB\r\n\013_volatili" +
      "tyB\021\n\017_volatilityTypeB\023\n\021_continuousUpda" +
      "teB\025\n\023_referencePriceTypeB\030\n\026_deltaNeutr" +
      "alOrderTypeB\027\n\025_deltaNeutralAuxPriceB\024\n\022" +
      "_deltaNeutralConIdB\030\n\026_deltaNeutralOpenC" +
      "loseB\030\n\026_deltaNeutralShortSaleB\034\n\032_delta" +
      "NeutralShortSaleSlotB!\n\037_deltaNeutralDes" +
      "ignatedLocationB\025\n\023_scaleInitLevelSizeB\025" +
      "\n\023_scaleSubsLevelSizeB\026\n\024_scalePriceIncr" +
      "ementB\030\n\026_scalePriceAdjustValueB\033\n\031_scal" +
      "ePriceAdjustIntervalB\024\n\022_scaleProfitOffs" +
      "etB\021\n\017_scaleAutoResetB\024\n\022_scaleInitPosit" +
      "ionB\023\n\021_scaleInitFillQtyB\025\n\023_scaleRandom" +
      "PercentB\r\n\013_scaleTableB\014\n\n_hedgeTypeB\r\n\013" +
      "_hedgeParamB\017\n\r_algoStrategyB\t\n\007_algoIdB" +
      "\t\n\007_whatIfB\013\n\t_transmitB \n\036_overridePerc" +
      "entageConstraintsB\014\n\n_openCloseB\t\n\007_orig" +
      "inB\020\n\016_shortSaleSlotB\025\n\023_designatedLocat" +
      "ionB\r\n\013_exemptCodeB\033\n\031_deltaNeutralSettl" +
      "ingFirmB\036\n\034_deltaNeutralClearingAccountB" +
      "\035\n\033_deltaNeutralClearingIntentB\023\n\021_discr" +
      "etionaryAmtB\025\n\023_optOutSmartRoutingB\020\n\016_s" +
      "tartingPriceB\020\n\016_stockRefPriceB\010\n\006_delta" +
      "B\022\n\020_stockRangeLowerB\022\n\020_stockRangeUpper" +
      "B\n\n\010_notHeldB\014\n\n_solicitedB\020\n\016_randomize" +
      "SizeB\021\n\017_randomizePriceB\026\n\024_referenceCon" +
      "tractIdB\025\n\023_peggedChangeAmountB\037\n\035_isPeg" +
      "gedChangeAmountDecreaseB\030\n\026_referenceCha" +
      "ngeAmountB\026\n\024_referenceExchangeIdB\024\n\022_ad" +
      "justedOrderTypeB\017\n\r_triggerPriceB\024\n\022_adj" +
      "ustedStopPriceB\031\n\027_adjustedStopLimitPric" +
      "eB\031\n\027_adjustedTrailingAmountB\031\n\027_adjusta" +
      "bleTrailingUnitB\021\n\017_lmtPriceOffsetB\030\n\026_c" +
      "onditionsCancelOrderB\026\n\024_conditionsIgnor" +
      "eRthB\014\n\n_modelCodeB\016\n\014_extOperatorB\021\n\017_s" +
      "oftDollarTierB\n\n\010_cashQtyB\026\n\024_mifid2Deci" +
      "sionMakerB\025\n\023_mifid2DecisionAlgoB\030\n\026_mif" +
      "id2ExecutionTraderB\026\n\024_mifid2ExecutionAl" +
      "goB\033\n\031_dontUseAutoPriceForHedgeB\021\n\017_isOm" +
      "sContainerB\036\n\034_discretionaryUpToLimitPri" +
      "ceB\021\n\017_autoCancelDateB\021\n\017_filledQuantity" +
      "B\022\n\020_refFuturesConIdB\023\n\021_autoCancelParen" +
      "tB\016\n\014_shareholderB\020\n\016_imbalanceOnlyB\027\n\025_" +
      "routeMarketableToBboB\017\n\r_parentPermIdB\023\n" +
      "\021_usePriceMgmtAlgoB\013\n\t_durationB\014\n\n_post" +
      "ToAtsB\030\n\026_advancedErrorOverrideB\022\n\020_manu" +
      "alOrderTimeB\016\n\014_minTradeQtyB\021\n\017_minCompe" +
      "teSizeB\033\n\031_competeAgainstBestOffsetB\023\n\021_" +
      "midOffsetAtWholeB\022\n\020_midOffsetAtHalfB\022\n\020" +
      "_customerAccountB\027\n\025_professionalCustome" +
      "rB\026\n\024_bondAccruedInterestB\023\n\021_includeOve" +
      "rnightB\027\n\025_manualOrderIndicatorB\014\n\n_subm" +
      "itterB5\n\026com.ib.client.protobufB\nOrderPr" +
      "oto\252\002\016IBApi.protobufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.ib.client.protobuf.OrderConditionProto.getDescriptor(),
          com.ib.client.protobuf.SoftDollarTierProto.getDescriptor(),
        });
    internal_static_protobuf_Order_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_protobuf_Order_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_protobuf_Order_descriptor,
        new java.lang.String[] { "ClientId", "OrderId", "PermId", "ParentId", "Action", "TotalQuantity", "DisplaySize", "OrderType", "LmtPrice", "AuxPrice", "Tif", "Account", "SettlingFirm", "ClearingAccount", "ClearingIntent", "AllOrNone", "BlockOrder", "Hidden", "OutsideRth", "SweepToFill", "PercentOffset", "TrailingPercent", "TrailStopPrice", "MinQty", "GoodAfterTime", "GoodTillDate", "OcaGroup", "OrderRef", "Rule80A", "OcaType", "TriggerMethod", "ActiveStartTime", "ActiveStopTime", "FaGroup", "FaMethod", "FaPercentage", "Volatility", "VolatilityType", "ContinuousUpdate", "ReferencePriceType", "DeltaNeutralOrderType", "DeltaNeutralAuxPrice", "DeltaNeutralConId", "DeltaNeutralOpenClose", "DeltaNeutralShortSale", "DeltaNeutralShortSaleSlot", "DeltaNeutralDesignatedLocation", "ScaleInitLevelSize", "ScaleSubsLevelSize", "ScalePriceIncrement", "ScalePriceAdjustValue", "ScalePriceAdjustInterval", "ScaleProfitOffset", "ScaleAutoReset", "ScaleInitPosition", "ScaleInitFillQty", "ScaleRandomPercent", "ScaleTable", "HedgeType", "HedgeParam", "AlgoStrategy", "AlgoParams", "AlgoId", "SmartComboRoutingParams", "WhatIf", "Transmit", "OverridePercentageConstraints", "OpenClose", "Origin", "ShortSaleSlot", "DesignatedLocation", "ExemptCode", "DeltaNeutralSettlingFirm", "DeltaNeutralClearingAccount", "DeltaNeutralClearingIntent", "DiscretionaryAmt", "OptOutSmartRouting", "StartingPrice", "StockRefPrice", "Delta", "StockRangeLower", "StockRangeUpper", "NotHeld", "OrderMiscOptions", "Solicited", "RandomizeSize", "RandomizePrice", "ReferenceContractId", "PeggedChangeAmount", "IsPeggedChangeAmountDecrease", "ReferenceChangeAmount", "ReferenceExchangeId", "AdjustedOrderType", "TriggerPrice", "AdjustedStopPrice", "AdjustedStopLimitPrice", "AdjustedTrailingAmount", "AdjustableTrailingUnit", "LmtPriceOffset", "Conditions", "ConditionsCancelOrder", "ConditionsIgnoreRth", "ModelCode", "ExtOperator", "SoftDollarTier", "CashQty", "Mifid2DecisionMaker", "Mifid2DecisionAlgo", "Mifid2ExecutionTrader", "Mifid2ExecutionAlgo", "DontUseAutoPriceForHedge", "IsOmsContainer", "DiscretionaryUpToLimitPrice", "AutoCancelDate", "FilledQuantity", "RefFuturesConId", "AutoCancelParent", "Shareholder", "ImbalanceOnly", "RouteMarketableToBbo", "ParentPermId", "UsePriceMgmtAlgo", "Duration", "PostToAts", "AdvancedErrorOverride", "ManualOrderTime", "MinTradeQty", "MinCompeteSize", "CompeteAgainstBestOffset", "MidOffsetAtWhole", "MidOffsetAtHalf", "CustomerAccount", "ProfessionalCustomer", "BondAccruedInterest", "IncludeOvernight", "ManualOrderIndicator", "Submitter", });
    internal_static_protobuf_Order_AlgoParamsEntry_descriptor =
      internal_static_protobuf_Order_descriptor.getNestedTypes().get(0);
    internal_static_protobuf_Order_AlgoParamsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_protobuf_Order_AlgoParamsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_protobuf_Order_SmartComboRoutingParamsEntry_descriptor =
      internal_static_protobuf_Order_descriptor.getNestedTypes().get(1);
    internal_static_protobuf_Order_SmartComboRoutingParamsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_protobuf_Order_SmartComboRoutingParamsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_protobuf_Order_OrderMiscOptionsEntry_descriptor =
      internal_static_protobuf_Order_descriptor.getNestedTypes().get(2);
    internal_static_protobuf_Order_OrderMiscOptionsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_protobuf_Order_OrderMiscOptionsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    descriptor.resolveAllFeaturesImmutable();
    com.ib.client.protobuf.OrderConditionProto.getDescriptor();
    com.ib.client.protobuf.SoftDollarTierProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
