// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: cmvr/api/dexhand_command.proto

package cmvr.api;

public final class DexhandCommand {
  private DexhandCommand() {}
  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 FreedomValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.FreedomValue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 自由度id 0-6 分别对应六个自由度 小拇指 无名指 中指 食指 大拇指弯曲 大拇指旋转
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     * 值 0-1百分比
     * </pre>
     *
     * <code>float value = 2;</code>
     * @return The value.
     */
    float getValue();
  }
  /**
   * Protobuf type {@code cmvr.api.FreedomValue}
   */
  public static final class FreedomValue extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.FreedomValue)
      FreedomValueOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FreedomValue.newBuilder() to construct.
    private FreedomValue(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FreedomValue() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FreedomValue();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_FreedomValue_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_FreedomValue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.FreedomValue.class, cmvr.api.DexhandCommand.FreedomValue.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <pre>
     * 自由度id 0-6 分别对应六个自由度 小拇指 无名指 中指 食指 大拇指弯曲 大拇指旋转
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private float value_;
    /**
     * <pre>
     * 值 0-1百分比
     * </pre>
     *
     * <code>float value = 2;</code>
     * @return The value.
     */
    @java.lang.Override
    public float getValue() {
      return value_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0) {
        output.writeInt32(1, id_);
      }
      if (java.lang.Float.floatToRawIntBits(value_) != 0) {
        output.writeFloat(2, value_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (id_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, id_);
      }
      if (java.lang.Float.floatToRawIntBits(value_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, value_);
      }
      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 cmvr.api.DexhandCommand.FreedomValue)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.FreedomValue other = (cmvr.api.DexhandCommand.FreedomValue) obj;

      if (getId()
          != other.getId()) return false;
      if (java.lang.Float.floatToIntBits(getValue())
          != java.lang.Float.floatToIntBits(
              other.getValue())) 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();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId();
      hash = (37 * hash) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getValue());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.FreedomValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.FreedomValue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.FreedomValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.FreedomValue)
        cmvr.api.DexhandCommand.FreedomValueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_FreedomValue_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_FreedomValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.FreedomValue.class, cmvr.api.DexhandCommand.FreedomValue.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.FreedomValue.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = 0;

        value_ = 0F;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_FreedomValue_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValue getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValue build() {
        cmvr.api.DexhandCommand.FreedomValue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValue buildPartial() {
        cmvr.api.DexhandCommand.FreedomValue result = new cmvr.api.DexhandCommand.FreedomValue(this);
        result.id_ = id_;
        result.value_ = value_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.FreedomValue) {
          return mergeFrom((cmvr.api.DexhandCommand.FreedomValue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.FreedomValue other) {
        if (other == cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (other.getValue() != 0F) {
          setValue(other.getValue());
        }
        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: {
                id_ = input.readInt32();

                break;
              } // case 8
              case 21: {
                value_ = input.readFloat();

                break;
              } // case 21
              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 id_ ;
      /**
       * <pre>
       * 自由度id 0-6 分别对应六个自由度 小拇指 无名指 中指 食指 大拇指弯曲 大拇指旋转
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       * 自由度id 0-6 分别对应六个自由度 小拇指 无名指 中指 食指 大拇指弯曲 大拇指旋转
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 自由度id 0-6 分别对应六个自由度 小拇指 无名指 中指 食指 大拇指弯曲 大拇指旋转
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = 0;
        onChanged();
        return this;
      }

      private float value_ ;
      /**
       * <pre>
       * 值 0-1百分比
       * </pre>
       *
       * <code>float value = 2;</code>
       * @return The value.
       */
      @java.lang.Override
      public float getValue() {
        return value_;
      }
      /**
       * <pre>
       * 值 0-1百分比
       * </pre>
       *
       * <code>float value = 2;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(float value) {
        
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 值 0-1百分比
       * </pre>
       *
       * <code>float value = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        
        value_ = 0F;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.FreedomValue)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.FreedomValue)
    private static final cmvr.api.DexhandCommand.FreedomValue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.FreedomValue();
    }

    public static cmvr.api.DexhandCommand.FreedomValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.FreedomValue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RH56DFTPDexHandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.RH56DFTPDexHand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 自由度ID，唯一标识不同的关节或自由度
     * </pre>
     *
     * <code>int32 dof_id = 1;</code>
     * @return The dofId.
     */
    int getDofId();

    /**
     * <pre>
     * 自由度角度
     * </pre>
     *
     * <code>int32 angle = 2;</code>
     * @return The angle.
     */
    int getAngle();

    /**
     * <pre>
     * 自由度速度
     * </pre>
     *
     * <code>int32 speed = 3;</code>
     * @return The speed.
     */
    int getSpeed();

    /**
     * <pre>
     * 实际受力
     * </pre>
     *
     * <code>int32 force = 4;</code>
     * @return The force.
     */
    int getForce();

    /**
     * <pre>
     * 执行器位置
     * </pre>
     *
     * <code>int32 position = 5;</code>
     * @return The position.
     */
    int getPosition();

    /**
     * <pre>
     * 执行器实际电流
     * </pre>
     *
     * <code>int32 current = 6;</code>
     * @return The current.
     */
    int getCurrent();

    /**
     * <pre>
     * 执行器温度
     * </pre>
     *
     * <code>int32 temperature = 7;</code>
     * @return The temperature.
     */
    int getTemperature();

    /**
     * <pre>
     * 执行器故障信息
     * </pre>
     *
     * <code>int32 error = 8;</code>
     * @return The error.
     */
    int getError();

    /**
     * <pre>
     * 错误消息列表
     * </pre>
     *
     * <code>repeated string error_message = 9;</code>
     * @return A list containing the errorMessage.
     */
    java.util.List<java.lang.String>
        getErrorMessageList();
    /**
     * <pre>
     * 错误消息列表
     * </pre>
     *
     * <code>repeated string error_message = 9;</code>
     * @return The count of errorMessage.
     */
    int getErrorMessageCount();
    /**
     * <pre>
     * 错误消息列表
     * </pre>
     *
     * <code>repeated string error_message = 9;</code>
     * @param index The index of the element to return.
     * @return The errorMessage at the given index.
     */
    java.lang.String getErrorMessage(int index);
    /**
     * <pre>
     * 错误消息列表
     * </pre>
     *
     * <code>repeated string error_message = 9;</code>
     * @param index The index of the value to return.
     * @return The bytes of the errorMessage at the given index.
     */
    com.google.protobuf.ByteString
        getErrorMessageBytes(int index);
  }
  /**
   * Protobuf type {@code cmvr.api.RH56DFTPDexHand}
   */
  public static final class RH56DFTPDexHand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.RH56DFTPDexHand)
      RH56DFTPDexHandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RH56DFTPDexHand.newBuilder() to construct.
    private RH56DFTPDexHand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RH56DFTPDexHand() {
      errorMessage_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RH56DFTPDexHand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_RH56DFTPDexHand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_RH56DFTPDexHand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.RH56DFTPDexHand.class, cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder.class);
    }

    public static final int DOF_ID_FIELD_NUMBER = 1;
    private int dofId_;
    /**
     * <pre>
     * 自由度ID，唯一标识不同的关节或自由度
     * </pre>
     *
     * <code>int32 dof_id = 1;</code>
     * @return The dofId.
     */
    @java.lang.Override
    public int getDofId() {
      return dofId_;
    }

    public static final int ANGLE_FIELD_NUMBER = 2;
    private int angle_;
    /**
     * <pre>
     * 自由度角度
     * </pre>
     *
     * <code>int32 angle = 2;</code>
     * @return The angle.
     */
    @java.lang.Override
    public int getAngle() {
      return angle_;
    }

    public static final int SPEED_FIELD_NUMBER = 3;
    private int speed_;
    /**
     * <pre>
     * 自由度速度
     * </pre>
     *
     * <code>int32 speed = 3;</code>
     * @return The speed.
     */
    @java.lang.Override
    public int getSpeed() {
      return speed_;
    }

    public static final int FORCE_FIELD_NUMBER = 4;
    private int force_;
    /**
     * <pre>
     * 实际受力
     * </pre>
     *
     * <code>int32 force = 4;</code>
     * @return The force.
     */
    @java.lang.Override
    public int getForce() {
      return force_;
    }

    public static final int POSITION_FIELD_NUMBER = 5;
    private int position_;
    /**
     * <pre>
     * 执行器位置
     * </pre>
     *
     * <code>int32 position = 5;</code>
     * @return The position.
     */
    @java.lang.Override
    public int getPosition() {
      return position_;
    }

    public static final int CURRENT_FIELD_NUMBER = 6;
    private int current_;
    /**
     * <pre>
     * 执行器实际电流
     * </pre>
     *
     * <code>int32 current = 6;</code>
     * @return The current.
     */
    @java.lang.Override
    public int getCurrent() {
      return current_;
    }

    public static final int TEMPERATURE_FIELD_NUMBER = 7;
    private int temperature_;
    /**
     * <pre>
     * 执行器温度
     * </pre>
     *
     * <code>int32 temperature = 7;</code>
     * @return The temperature.
     */
    @java.lang.Override
    public int getTemperature() {
      return temperature_;
    }

    public static final int ERROR_FIELD_NUMBER = 8;
    private int error_;
    /**
     * <pre>
     * 执行器故障信息
     * </pre>
     *
     * <code>int32 error = 8;</code>
     * @return The error.
     */
    @java.lang.Override
    public int getError() {
      return error_;
    }

    public static final int ERROR_MESSAGE_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList errorMessage_;
    /**
     * <pre>
     * 错误消息列表
     * </pre>
     *
     * <code>repeated string error_message = 9;</code>
     * @return A list containing the errorMessage.
     */
    public com.google.protobuf.ProtocolStringList
        getErrorMessageList() {
      return errorMessage_;
    }
    /**
     * <pre>
     * 错误消息列表
     * </pre>
     *
     * <code>repeated string error_message = 9;</code>
     * @return The count of errorMessage.
     */
    public int getErrorMessageCount() {
      return errorMessage_.size();
    }
    /**
     * <pre>
     * 错误消息列表
     * </pre>
     *
     * <code>repeated string error_message = 9;</code>
     * @param index The index of the element to return.
     * @return The errorMessage at the given index.
     */
    public java.lang.String getErrorMessage(int index) {
      return errorMessage_.get(index);
    }
    /**
     * <pre>
     * 错误消息列表
     * </pre>
     *
     * <code>repeated string error_message = 9;</code>
     * @param index The index of the value to return.
     * @return The bytes of the errorMessage at the given index.
     */
    public com.google.protobuf.ByteString
        getErrorMessageBytes(int index) {
      return errorMessage_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (dofId_ != 0) {
        output.writeInt32(1, dofId_);
      }
      if (angle_ != 0) {
        output.writeInt32(2, angle_);
      }
      if (speed_ != 0) {
        output.writeInt32(3, speed_);
      }
      if (force_ != 0) {
        output.writeInt32(4, force_);
      }
      if (position_ != 0) {
        output.writeInt32(5, position_);
      }
      if (current_ != 0) {
        output.writeInt32(6, current_);
      }
      if (temperature_ != 0) {
        output.writeInt32(7, temperature_);
      }
      if (error_ != 0) {
        output.writeInt32(8, error_);
      }
      for (int i = 0; i < errorMessage_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, errorMessage_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (dofId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, dofId_);
      }
      if (angle_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, angle_);
      }
      if (speed_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, speed_);
      }
      if (force_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, force_);
      }
      if (position_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, position_);
      }
      if (current_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, current_);
      }
      if (temperature_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, temperature_);
      }
      if (error_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, error_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < errorMessage_.size(); i++) {
          dataSize += computeStringSizeNoTag(errorMessage_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getErrorMessageList().size();
      }
      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 cmvr.api.DexhandCommand.RH56DFTPDexHand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.RH56DFTPDexHand other = (cmvr.api.DexhandCommand.RH56DFTPDexHand) obj;

      if (getDofId()
          != other.getDofId()) return false;
      if (getAngle()
          != other.getAngle()) return false;
      if (getSpeed()
          != other.getSpeed()) return false;
      if (getForce()
          != other.getForce()) return false;
      if (getPosition()
          != other.getPosition()) return false;
      if (getCurrent()
          != other.getCurrent()) return false;
      if (getTemperature()
          != other.getTemperature()) return false;
      if (getError()
          != other.getError()) return false;
      if (!getErrorMessageList()
          .equals(other.getErrorMessageList())) 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();
      hash = (37 * hash) + DOF_ID_FIELD_NUMBER;
      hash = (53 * hash) + getDofId();
      hash = (37 * hash) + ANGLE_FIELD_NUMBER;
      hash = (53 * hash) + getAngle();
      hash = (37 * hash) + SPEED_FIELD_NUMBER;
      hash = (53 * hash) + getSpeed();
      hash = (37 * hash) + FORCE_FIELD_NUMBER;
      hash = (53 * hash) + getForce();
      hash = (37 * hash) + POSITION_FIELD_NUMBER;
      hash = (53 * hash) + getPosition();
      hash = (37 * hash) + CURRENT_FIELD_NUMBER;
      hash = (53 * hash) + getCurrent();
      hash = (37 * hash) + TEMPERATURE_FIELD_NUMBER;
      hash = (53 * hash) + getTemperature();
      hash = (37 * hash) + ERROR_FIELD_NUMBER;
      hash = (53 * hash) + getError();
      if (getErrorMessageCount() > 0) {
        hash = (37 * hash) + ERROR_MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getErrorMessageList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.RH56DFTPDexHand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.RH56DFTPDexHand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.RH56DFTPDexHand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.RH56DFTPDexHand)
        cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_RH56DFTPDexHand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_RH56DFTPDexHand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.RH56DFTPDexHand.class, cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.RH56DFTPDexHand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        dofId_ = 0;

        angle_ = 0;

        speed_ = 0;

        force_ = 0;

        position_ = 0;

        current_ = 0;

        temperature_ = 0;

        error_ = 0;

        errorMessage_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_RH56DFTPDexHand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.RH56DFTPDexHand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.RH56DFTPDexHand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.RH56DFTPDexHand build() {
        cmvr.api.DexhandCommand.RH56DFTPDexHand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.RH56DFTPDexHand buildPartial() {
        cmvr.api.DexhandCommand.RH56DFTPDexHand result = new cmvr.api.DexhandCommand.RH56DFTPDexHand(this);
        int from_bitField0_ = bitField0_;
        result.dofId_ = dofId_;
        result.angle_ = angle_;
        result.speed_ = speed_;
        result.force_ = force_;
        result.position_ = position_;
        result.current_ = current_;
        result.temperature_ = temperature_;
        result.error_ = error_;
        if (((bitField0_ & 0x00000001) != 0)) {
          errorMessage_ = errorMessage_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.errorMessage_ = errorMessage_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.RH56DFTPDexHand) {
          return mergeFrom((cmvr.api.DexhandCommand.RH56DFTPDexHand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.RH56DFTPDexHand other) {
        if (other == cmvr.api.DexhandCommand.RH56DFTPDexHand.getDefaultInstance()) return this;
        if (other.getDofId() != 0) {
          setDofId(other.getDofId());
        }
        if (other.getAngle() != 0) {
          setAngle(other.getAngle());
        }
        if (other.getSpeed() != 0) {
          setSpeed(other.getSpeed());
        }
        if (other.getForce() != 0) {
          setForce(other.getForce());
        }
        if (other.getPosition() != 0) {
          setPosition(other.getPosition());
        }
        if (other.getCurrent() != 0) {
          setCurrent(other.getCurrent());
        }
        if (other.getTemperature() != 0) {
          setTemperature(other.getTemperature());
        }
        if (other.getError() != 0) {
          setError(other.getError());
        }
        if (!other.errorMessage_.isEmpty()) {
          if (errorMessage_.isEmpty()) {
            errorMessage_ = other.errorMessage_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureErrorMessageIsMutable();
            errorMessage_.addAll(other.errorMessage_);
          }
          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: {
                dofId_ = input.readInt32();

                break;
              } // case 8
              case 16: {
                angle_ = input.readInt32();

                break;
              } // case 16
              case 24: {
                speed_ = input.readInt32();

                break;
              } // case 24
              case 32: {
                force_ = input.readInt32();

                break;
              } // case 32
              case 40: {
                position_ = input.readInt32();

                break;
              } // case 40
              case 48: {
                current_ = input.readInt32();

                break;
              } // case 48
              case 56: {
                temperature_ = input.readInt32();

                break;
              } // case 56
              case 64: {
                error_ = input.readInt32();

                break;
              } // case 64
              case 74: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureErrorMessageIsMutable();
                errorMessage_.add(s);
                break;
              } // case 74
              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 dofId_ ;
      /**
       * <pre>
       * 自由度ID，唯一标识不同的关节或自由度
       * </pre>
       *
       * <code>int32 dof_id = 1;</code>
       * @return The dofId.
       */
      @java.lang.Override
      public int getDofId() {
        return dofId_;
      }
      /**
       * <pre>
       * 自由度ID，唯一标识不同的关节或自由度
       * </pre>
       *
       * <code>int32 dof_id = 1;</code>
       * @param value The dofId to set.
       * @return This builder for chaining.
       */
      public Builder setDofId(int value) {
        
        dofId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 自由度ID，唯一标识不同的关节或自由度
       * </pre>
       *
       * <code>int32 dof_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearDofId() {
        
        dofId_ = 0;
        onChanged();
        return this;
      }

      private int angle_ ;
      /**
       * <pre>
       * 自由度角度
       * </pre>
       *
       * <code>int32 angle = 2;</code>
       * @return The angle.
       */
      @java.lang.Override
      public int getAngle() {
        return angle_;
      }
      /**
       * <pre>
       * 自由度角度
       * </pre>
       *
       * <code>int32 angle = 2;</code>
       * @param value The angle to set.
       * @return This builder for chaining.
       */
      public Builder setAngle(int value) {
        
        angle_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 自由度角度
       * </pre>
       *
       * <code>int32 angle = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAngle() {
        
        angle_ = 0;
        onChanged();
        return this;
      }

      private int speed_ ;
      /**
       * <pre>
       * 自由度速度
       * </pre>
       *
       * <code>int32 speed = 3;</code>
       * @return The speed.
       */
      @java.lang.Override
      public int getSpeed() {
        return speed_;
      }
      /**
       * <pre>
       * 自由度速度
       * </pre>
       *
       * <code>int32 speed = 3;</code>
       * @param value The speed to set.
       * @return This builder for chaining.
       */
      public Builder setSpeed(int value) {
        
        speed_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 自由度速度
       * </pre>
       *
       * <code>int32 speed = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpeed() {
        
        speed_ = 0;
        onChanged();
        return this;
      }

      private int force_ ;
      /**
       * <pre>
       * 实际受力
       * </pre>
       *
       * <code>int32 force = 4;</code>
       * @return The force.
       */
      @java.lang.Override
      public int getForce() {
        return force_;
      }
      /**
       * <pre>
       * 实际受力
       * </pre>
       *
       * <code>int32 force = 4;</code>
       * @param value The force to set.
       * @return This builder for chaining.
       */
      public Builder setForce(int value) {
        
        force_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 实际受力
       * </pre>
       *
       * <code>int32 force = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearForce() {
        
        force_ = 0;
        onChanged();
        return this;
      }

      private int position_ ;
      /**
       * <pre>
       * 执行器位置
       * </pre>
       *
       * <code>int32 position = 5;</code>
       * @return The position.
       */
      @java.lang.Override
      public int getPosition() {
        return position_;
      }
      /**
       * <pre>
       * 执行器位置
       * </pre>
       *
       * <code>int32 position = 5;</code>
       * @param value The position to set.
       * @return This builder for chaining.
       */
      public Builder setPosition(int value) {
        
        position_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 执行器位置
       * </pre>
       *
       * <code>int32 position = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPosition() {
        
        position_ = 0;
        onChanged();
        return this;
      }

      private int current_ ;
      /**
       * <pre>
       * 执行器实际电流
       * </pre>
       *
       * <code>int32 current = 6;</code>
       * @return The current.
       */
      @java.lang.Override
      public int getCurrent() {
        return current_;
      }
      /**
       * <pre>
       * 执行器实际电流
       * </pre>
       *
       * <code>int32 current = 6;</code>
       * @param value The current to set.
       * @return This builder for chaining.
       */
      public Builder setCurrent(int value) {
        
        current_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 执行器实际电流
       * </pre>
       *
       * <code>int32 current = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurrent() {
        
        current_ = 0;
        onChanged();
        return this;
      }

      private int temperature_ ;
      /**
       * <pre>
       * 执行器温度
       * </pre>
       *
       * <code>int32 temperature = 7;</code>
       * @return The temperature.
       */
      @java.lang.Override
      public int getTemperature() {
        return temperature_;
      }
      /**
       * <pre>
       * 执行器温度
       * </pre>
       *
       * <code>int32 temperature = 7;</code>
       * @param value The temperature to set.
       * @return This builder for chaining.
       */
      public Builder setTemperature(int value) {
        
        temperature_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 执行器温度
       * </pre>
       *
       * <code>int32 temperature = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemperature() {
        
        temperature_ = 0;
        onChanged();
        return this;
      }

      private int error_ ;
      /**
       * <pre>
       * 执行器故障信息
       * </pre>
       *
       * <code>int32 error = 8;</code>
       * @return The error.
       */
      @java.lang.Override
      public int getError() {
        return error_;
      }
      /**
       * <pre>
       * 执行器故障信息
       * </pre>
       *
       * <code>int32 error = 8;</code>
       * @param value The error to set.
       * @return This builder for chaining.
       */
      public Builder setError(int value) {
        
        error_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 执行器故障信息
       * </pre>
       *
       * <code>int32 error = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearError() {
        
        error_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList errorMessage_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureErrorMessageIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          errorMessage_ = new com.google.protobuf.LazyStringArrayList(errorMessage_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @return A list containing the errorMessage.
       */
      public com.google.protobuf.ProtocolStringList
          getErrorMessageList() {
        return errorMessage_.getUnmodifiableView();
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @return The count of errorMessage.
       */
      public int getErrorMessageCount() {
        return errorMessage_.size();
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @param index The index of the element to return.
       * @return The errorMessage at the given index.
       */
      public java.lang.String getErrorMessage(int index) {
        return errorMessage_.get(index);
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @param index The index of the value to return.
       * @return The bytes of the errorMessage at the given index.
       */
      public com.google.protobuf.ByteString
          getErrorMessageBytes(int index) {
        return errorMessage_.getByteString(index);
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @param index The index to set the value at.
       * @param value The errorMessage to set.
       * @return This builder for chaining.
       */
      public Builder setErrorMessage(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureErrorMessageIsMutable();
        errorMessage_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @param value The errorMessage to add.
       * @return This builder for chaining.
       */
      public Builder addErrorMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureErrorMessageIsMutable();
        errorMessage_.add(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @param values The errorMessage to add.
       * @return This builder for chaining.
       */
      public Builder addAllErrorMessage(
          java.lang.Iterable<java.lang.String> values) {
        ensureErrorMessageIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, errorMessage_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrorMessage() {
        errorMessage_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 错误消息列表
       * </pre>
       *
       * <code>repeated string error_message = 9;</code>
       * @param value The bytes of the errorMessage to add.
       * @return This builder for chaining.
       */
      public Builder addErrorMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureErrorMessageIsMutable();
        errorMessage_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.RH56DFTPDexHand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.RH56DFTPDexHand)
    private static final cmvr.api.DexhandCommand.RH56DFTPDexHand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.RH56DFTPDexHand();
    }

    public static cmvr.api.DexhandCommand.RH56DFTPDexHand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.RH56DFTPDexHand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SensorDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.SensorData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 手指类型（掌心使用PALM）
     * </pre>
     *
     * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
     * @return The enum numeric value on the wire for fingerType.
     */
    int getFingerTypeValue();
    /**
     * <pre>
     * 手指类型（掌心使用PALM）
     * </pre>
     *
     * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
     * @return The fingerType.
     */
    cmvr.api.DexhandCommand.SensorData.FingerType getFingerType();

    /**
     * <pre>
     * 部位类型
     * </pre>
     *
     * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
     * @return The enum numeric value on the wire for partType.
     */
    int getPartTypeValue();
    /**
     * <pre>
     * 部位类型
     * </pre>
     *
     * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
     * @return The partType.
     */
    cmvr.api.DexhandCommand.SensorData.PartType getPartType();

    /**
     * <pre>
     * 传感器名称（如"小拇指指端"）
     * </pre>
     *
     * <code>string sensor_name = 6;</code>
     * @return The sensorName.
     */
    java.lang.String getSensorName();
    /**
     * <pre>
     * 传感器名称（如"小拇指指端"）
     * </pre>
     *
     * <code>string sensor_name = 6;</code>
     * @return The bytes for sensorName.
     */
    com.google.protobuf.ByteString
        getSensorNameBytes();

    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    java.util.List<cmvr.api.DexhandCommand.SensorData.RowData> 
        getDataList();
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    cmvr.api.DexhandCommand.SensorData.RowData getData(int index);
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    int getDataCount();
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    java.util.List<? extends cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder> 
        getDataOrBuilderList();
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder getDataOrBuilder(
        int index);

    /**
     * <pre>
     * 行
     * </pre>
     *
     * <code>int32 rows = 2;</code>
     * @return The rows.
     */
    int getRows();

    /**
     * <pre>
     * 列
     * </pre>
     *
     * <code>int32 cols = 3;</code>
     * @return The cols.
     */
    int getCols();
  }
  /**
   * <pre>
   * 传感器数据
   * 传感器数据
   * </pre>
   *
   * Protobuf type {@code cmvr.api.SensorData}
   */
  public static final class SensorData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.SensorData)
      SensorDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SensorData.newBuilder() to construct.
    private SensorData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SensorData() {
      fingerType_ = 0;
      partType_ = 0;
      sensorName_ = "";
      data_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SensorData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.SensorData.class, cmvr.api.DexhandCommand.SensorData.Builder.class);
    }

    /**
     * <pre>
     * 手指类型（掌心作为特殊类型）
     * </pre>
     *
     * Protobuf enum {@code cmvr.api.SensorData.FingerType}
     */
    public enum FingerType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       * 小拇指
       * </pre>
       *
       * <code>PINKY = 0;</code>
       */
      PINKY(0),
      /**
       * <pre>
       * 无名指
       * </pre>
       *
       * <code>RING = 1;</code>
       */
      RING(1),
      /**
       * <pre>
       * 中指（避免与PartType.MIDDLE冲突）
       * </pre>
       *
       * <code>MIDDLE_FINGER = 2;</code>
       */
      MIDDLE_FINGER(2),
      /**
       * <pre>
       * 食指
       * </pre>
       *
       * <code>INDEX = 3;</code>
       */
      INDEX(3),
      /**
       * <pre>
       * 大拇指
       * </pre>
       *
       * <code>THUMB = 4;</code>
       */
      THUMB(4),
      /**
       * <pre>
       * 掌心
       * </pre>
       *
       * <code>PALM = 5;</code>
       */
      PALM(5),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * 小拇指
       * </pre>
       *
       * <code>PINKY = 0;</code>
       */
      public static final int PINKY_VALUE = 0;
      /**
       * <pre>
       * 无名指
       * </pre>
       *
       * <code>RING = 1;</code>
       */
      public static final int RING_VALUE = 1;
      /**
       * <pre>
       * 中指（避免与PartType.MIDDLE冲突）
       * </pre>
       *
       * <code>MIDDLE_FINGER = 2;</code>
       */
      public static final int MIDDLE_FINGER_VALUE = 2;
      /**
       * <pre>
       * 食指
       * </pre>
       *
       * <code>INDEX = 3;</code>
       */
      public static final int INDEX_VALUE = 3;
      /**
       * <pre>
       * 大拇指
       * </pre>
       *
       * <code>THUMB = 4;</code>
       */
      public static final int THUMB_VALUE = 4;
      /**
       * <pre>
       * 掌心
       * </pre>
       *
       * <code>PALM = 5;</code>
       */
      public static final int PALM_VALUE = 5;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static FingerType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static FingerType forNumber(int value) {
        switch (value) {
          case 0: return PINKY;
          case 1: return RING;
          case 2: return MIDDLE_FINGER;
          case 3: return INDEX;
          case 4: return THUMB;
          case 5: return PALM;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<FingerType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          FingerType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<FingerType>() {
              public FingerType findValueByNumber(int number) {
                return FingerType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.SensorData.getDescriptor().getEnumTypes().get(0);
      }

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

      public static FingerType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private FingerType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:cmvr.api.SensorData.FingerType)
    }

    /**
     * <pre>
     * 部位类型（指中改为THUMB_MIDDLE以避免冲突）
     * </pre>
     *
     * Protobuf enum {@code cmvr.api.SensorData.PartType}
     */
    public enum PartType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       * 指端
       * </pre>
       *
       * <code>TIP = 0;</code>
       */
      TIP(0),
      /**
       * <pre>
       * 指尖
       * </pre>
       *
       * <code>FINGER = 1;</code>
       */
      FINGER(1),
      /**
       * <pre>
       * 指腹
       * </pre>
       *
       * <code>PAD = 2;</code>
       */
      PAD(2),
      /**
       * <pre>
       * 大拇指指中（仅大拇指有）
       * </pre>
       *
       * <code>THUMB_MIDDLE = 3;</code>
       */
      THUMB_MIDDLE(3),
      /**
       * <pre>
       * 掌心部位（对应PalmTactileData）
       * </pre>
       *
       * <code>PALM_PAD = 4;</code>
       */
      PALM_PAD(4),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       * 指端
       * </pre>
       *
       * <code>TIP = 0;</code>
       */
      public static final int TIP_VALUE = 0;
      /**
       * <pre>
       * 指尖
       * </pre>
       *
       * <code>FINGER = 1;</code>
       */
      public static final int FINGER_VALUE = 1;
      /**
       * <pre>
       * 指腹
       * </pre>
       *
       * <code>PAD = 2;</code>
       */
      public static final int PAD_VALUE = 2;
      /**
       * <pre>
       * 大拇指指中（仅大拇指有）
       * </pre>
       *
       * <code>THUMB_MIDDLE = 3;</code>
       */
      public static final int THUMB_MIDDLE_VALUE = 3;
      /**
       * <pre>
       * 掌心部位（对应PalmTactileData）
       * </pre>
       *
       * <code>PALM_PAD = 4;</code>
       */
      public static final int PALM_PAD_VALUE = 4;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PartType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static PartType forNumber(int value) {
        switch (value) {
          case 0: return TIP;
          case 1: return FINGER;
          case 2: return PAD;
          case 3: return THUMB_MIDDLE;
          case 4: return PALM_PAD;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<PartType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PartType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PartType>() {
              public PartType findValueByNumber(int number) {
                return PartType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.SensorData.getDescriptor().getEnumTypes().get(1);
      }

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

      public static PartType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private PartType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:cmvr.api.SensorData.PartType)
    }

    public interface RowDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SensorData.RowData)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * 一维数组，存放每行的浮点数值
       * </pre>
       *
       * <code>repeated int32 values = 1 [packed = true];</code>
       * @return A list containing the values.
       */
      java.util.List<java.lang.Integer> getValuesList();
      /**
       * <pre>
       * 一维数组，存放每行的浮点数值
       * </pre>
       *
       * <code>repeated int32 values = 1 [packed = true];</code>
       * @return The count of values.
       */
      int getValuesCount();
      /**
       * <pre>
       * 一维数组，存放每行的浮点数值
       * </pre>
       *
       * <code>repeated int32 values = 1 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      int getValues(int index);
    }
    /**
     * Protobuf type {@code cmvr.api.SensorData.RowData}
     */
    public static final class RowData extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SensorData.RowData)
        RowDataOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use RowData.newBuilder() to construct.
      private RowData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private RowData() {
        values_ = emptyIntList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new RowData();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_RowData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_RowData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SensorData.RowData.class, cmvr.api.DexhandCommand.SensorData.RowData.Builder.class);
      }

      public static final int VALUES_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.IntList values_;
      /**
       * <pre>
       * 一维数组，存放每行的浮点数值
       * </pre>
       *
       * <code>repeated int32 values = 1 [packed = true];</code>
       * @return A list containing the values.
       */
      @java.lang.Override
      public java.util.List<java.lang.Integer>
          getValuesList() {
        return values_;
      }
      /**
       * <pre>
       * 一维数组，存放每行的浮点数值
       * </pre>
       *
       * <code>repeated int32 values = 1 [packed = true];</code>
       * @return The count of values.
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <pre>
       * 一维数组，存放每行的浮点数值
       * </pre>
       *
       * <code>repeated int32 values = 1 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The values at the given index.
       */
      public int getValues(int index) {
        return values_.getInt(index);
      }
      private int valuesMemoizedSerializedSize = -1;

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (getValuesList().size() > 0) {
          output.writeUInt32NoTag(10);
          output.writeUInt32NoTag(valuesMemoizedSerializedSize);
        }
        for (int i = 0; i < values_.size(); i++) {
          output.writeInt32NoTag(values_.getInt(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < values_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(values_.getInt(i));
          }
          size += dataSize;
          if (!getValuesList().isEmpty()) {
            size += 1;
            size += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(dataSize);
          }
          valuesMemoizedSerializedSize = dataSize;
        }
        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 cmvr.api.DexhandCommand.SensorData.RowData)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SensorData.RowData other = (cmvr.api.DexhandCommand.SensorData.RowData) obj;

        if (!getValuesList()
            .equals(other.getValuesList())) 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 (getValuesCount() > 0) {
          hash = (37 * hash) + VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getValuesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SensorData.RowData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SensorData.RowData prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SensorData.RowData}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SensorData.RowData)
          cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_RowData_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_RowData_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SensorData.RowData.class, cmvr.api.DexhandCommand.SensorData.RowData.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SensorData.RowData.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_RowData_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SensorData.RowData getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SensorData.RowData.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SensorData.RowData build() {
          cmvr.api.DexhandCommand.SensorData.RowData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SensorData.RowData buildPartial() {
          cmvr.api.DexhandCommand.SensorData.RowData result = new cmvr.api.DexhandCommand.SensorData.RowData(this);
          int from_bitField0_ = bitField0_;
          if (((bitField0_ & 0x00000001) != 0)) {
            values_.makeImmutable();
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.values_ = values_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SensorData.RowData) {
            return mergeFrom((cmvr.api.DexhandCommand.SensorData.RowData)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SensorData.RowData other) {
          if (other == cmvr.api.DexhandCommand.SensorData.RowData.getDefaultInstance()) return this;
          if (!other.values_.isEmpty()) {
            if (values_.isEmpty()) {
              values_ = other.values_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureValuesIsMutable();
              values_.addAll(other.values_);
            }
            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: {
                  int v = input.readInt32();
                  ensureValuesIsMutable();
                  values_.addInt(v);
                  break;
                } // case 8
                case 10: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  ensureValuesIsMutable();
                  while (input.getBytesUntilLimit() > 0) {
                    values_.addInt(input.readInt32());
                  }
                  input.popLimit(limit);
                  break;
                } // case 10
                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 com.google.protobuf.Internal.IntList values_ = emptyIntList();
        private void ensureValuesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            values_ = mutableCopy(values_);
            bitField0_ |= 0x00000001;
           }
        }
        /**
         * <pre>
         * 一维数组，存放每行的浮点数值
         * </pre>
         *
         * <code>repeated int32 values = 1 [packed = true];</code>
         * @return A list containing the values.
         */
        public java.util.List<java.lang.Integer>
            getValuesList() {
          return ((bitField0_ & 0x00000001) != 0) ?
                   java.util.Collections.unmodifiableList(values_) : values_;
        }
        /**
         * <pre>
         * 一维数组，存放每行的浮点数值
         * </pre>
         *
         * <code>repeated int32 values = 1 [packed = true];</code>
         * @return The count of values.
         */
        public int getValuesCount() {
          return values_.size();
        }
        /**
         * <pre>
         * 一维数组，存放每行的浮点数值
         * </pre>
         *
         * <code>repeated int32 values = 1 [packed = true];</code>
         * @param index The index of the element to return.
         * @return The values at the given index.
         */
        public int getValues(int index) {
          return values_.getInt(index);
        }
        /**
         * <pre>
         * 一维数组，存放每行的浮点数值
         * </pre>
         *
         * <code>repeated int32 values = 1 [packed = true];</code>
         * @param index The index to set the value at.
         * @param value The values to set.
         * @return This builder for chaining.
         */
        public Builder setValues(
            int index, int value) {
          ensureValuesIsMutable();
          values_.setInt(index, value);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 一维数组，存放每行的浮点数值
         * </pre>
         *
         * <code>repeated int32 values = 1 [packed = true];</code>
         * @param value The values to add.
         * @return This builder for chaining.
         */
        public Builder addValues(int value) {
          ensureValuesIsMutable();
          values_.addInt(value);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 一维数组，存放每行的浮点数值
         * </pre>
         *
         * <code>repeated int32 values = 1 [packed = true];</code>
         * @param values The values to add.
         * @return This builder for chaining.
         */
        public Builder addAllValues(
            java.lang.Iterable<? extends java.lang.Integer> values) {
          ensureValuesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, values_);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * 一维数组，存放每行的浮点数值
         * </pre>
         *
         * <code>repeated int32 values = 1 [packed = true];</code>
         * @return This builder for chaining.
         */
        public Builder clearValues() {
          values_ = emptyIntList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SensorData.RowData)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SensorData.RowData)
      private static final cmvr.api.DexhandCommand.SensorData.RowData DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SensorData.RowData();
      }

      public static cmvr.api.DexhandCommand.SensorData.RowData getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorData.RowData getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int FINGER_TYPE_FIELD_NUMBER = 4;
    private int fingerType_;
    /**
     * <pre>
     * 手指类型（掌心使用PALM）
     * </pre>
     *
     * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
     * @return The enum numeric value on the wire for fingerType.
     */
    @java.lang.Override public int getFingerTypeValue() {
      return fingerType_;
    }
    /**
     * <pre>
     * 手指类型（掌心使用PALM）
     * </pre>
     *
     * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
     * @return The fingerType.
     */
    @java.lang.Override public cmvr.api.DexhandCommand.SensorData.FingerType getFingerType() {
      @SuppressWarnings("deprecation")
      cmvr.api.DexhandCommand.SensorData.FingerType result = cmvr.api.DexhandCommand.SensorData.FingerType.valueOf(fingerType_);
      return result == null ? cmvr.api.DexhandCommand.SensorData.FingerType.UNRECOGNIZED : result;
    }

    public static final int PART_TYPE_FIELD_NUMBER = 5;
    private int partType_;
    /**
     * <pre>
     * 部位类型
     * </pre>
     *
     * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
     * @return The enum numeric value on the wire for partType.
     */
    @java.lang.Override public int getPartTypeValue() {
      return partType_;
    }
    /**
     * <pre>
     * 部位类型
     * </pre>
     *
     * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
     * @return The partType.
     */
    @java.lang.Override public cmvr.api.DexhandCommand.SensorData.PartType getPartType() {
      @SuppressWarnings("deprecation")
      cmvr.api.DexhandCommand.SensorData.PartType result = cmvr.api.DexhandCommand.SensorData.PartType.valueOf(partType_);
      return result == null ? cmvr.api.DexhandCommand.SensorData.PartType.UNRECOGNIZED : result;
    }

    public static final int SENSOR_NAME_FIELD_NUMBER = 6;
    private volatile java.lang.Object sensorName_;
    /**
     * <pre>
     * 传感器名称（如"小拇指指端"）
     * </pre>
     *
     * <code>string sensor_name = 6;</code>
     * @return The sensorName.
     */
    @java.lang.Override
    public java.lang.String getSensorName() {
      java.lang.Object ref = sensorName_;
      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();
        sensorName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * 传感器名称（如"小拇指指端"）
     * </pre>
     *
     * <code>string sensor_name = 6;</code>
     * @return The bytes for sensorName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSensorNameBytes() {
      java.lang.Object ref = sensorName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sensorName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATA_FIELD_NUMBER = 1;
    private java.util.List<cmvr.api.DexhandCommand.SensorData.RowData> data_;
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    @java.lang.Override
    public java.util.List<cmvr.api.DexhandCommand.SensorData.RowData> getDataList() {
      return data_;
    }
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder> 
        getDataOrBuilderList() {
      return data_;
    }
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    @java.lang.Override
    public int getDataCount() {
      return data_.size();
    }
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    @java.lang.Override
    public cmvr.api.DexhandCommand.SensorData.RowData getData(int index) {
      return data_.get(index);
    }
    /**
     * <pre>
     * 二维数组，每行数据是 RowData 类型
     * </pre>
     *
     * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
     */
    @java.lang.Override
    public cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder getDataOrBuilder(
        int index) {
      return data_.get(index);
    }

    public static final int ROWS_FIELD_NUMBER = 2;
    private int rows_;
    /**
     * <pre>
     * 行
     * </pre>
     *
     * <code>int32 rows = 2;</code>
     * @return The rows.
     */
    @java.lang.Override
    public int getRows() {
      return rows_;
    }

    public static final int COLS_FIELD_NUMBER = 3;
    private int cols_;
    /**
     * <pre>
     * 列
     * </pre>
     *
     * <code>int32 cols = 3;</code>
     * @return The cols.
     */
    @java.lang.Override
    public int getCols() {
      return cols_;
    }

    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 {
      for (int i = 0; i < data_.size(); i++) {
        output.writeMessage(1, data_.get(i));
      }
      if (rows_ != 0) {
        output.writeInt32(2, rows_);
      }
      if (cols_ != 0) {
        output.writeInt32(3, cols_);
      }
      if (fingerType_ != cmvr.api.DexhandCommand.SensorData.FingerType.PINKY.getNumber()) {
        output.writeEnum(4, fingerType_);
      }
      if (partType_ != cmvr.api.DexhandCommand.SensorData.PartType.TIP.getNumber()) {
        output.writeEnum(5, partType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sensorName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, sensorName_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < data_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, data_.get(i));
      }
      if (rows_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, rows_);
      }
      if (cols_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, cols_);
      }
      if (fingerType_ != cmvr.api.DexhandCommand.SensorData.FingerType.PINKY.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, fingerType_);
      }
      if (partType_ != cmvr.api.DexhandCommand.SensorData.PartType.TIP.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, partType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sensorName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, sensorName_);
      }
      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 cmvr.api.DexhandCommand.SensorData)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.SensorData other = (cmvr.api.DexhandCommand.SensorData) obj;

      if (fingerType_ != other.fingerType_) return false;
      if (partType_ != other.partType_) return false;
      if (!getSensorName()
          .equals(other.getSensorName())) return false;
      if (!getDataList()
          .equals(other.getDataList())) return false;
      if (getRows()
          != other.getRows()) return false;
      if (getCols()
          != other.getCols()) 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();
      hash = (37 * hash) + FINGER_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + fingerType_;
      hash = (37 * hash) + PART_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + partType_;
      hash = (37 * hash) + SENSOR_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getSensorName().hashCode();
      if (getDataCount() > 0) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getDataList().hashCode();
      }
      hash = (37 * hash) + ROWS_FIELD_NUMBER;
      hash = (53 * hash) + getRows();
      hash = (37 * hash) + COLS_FIELD_NUMBER;
      hash = (53 * hash) + getCols();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.SensorData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SensorData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SensorData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SensorData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.SensorData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * 传感器数据
     * 传感器数据
     * </pre>
     *
     * Protobuf type {@code cmvr.api.SensorData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.SensorData)
        cmvr.api.DexhandCommand.SensorDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SensorData.class, cmvr.api.DexhandCommand.SensorData.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.SensorData.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        fingerType_ = 0;

        partType_ = 0;

        sensorName_ = "";

        if (dataBuilder_ == null) {
          data_ = java.util.Collections.emptyList();
        } else {
          data_ = null;
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        rows_ = 0;

        cols_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SensorData_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorData getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.SensorData.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorData build() {
        cmvr.api.DexhandCommand.SensorData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorData buildPartial() {
        cmvr.api.DexhandCommand.SensorData result = new cmvr.api.DexhandCommand.SensorData(this);
        int from_bitField0_ = bitField0_;
        result.fingerType_ = fingerType_;
        result.partType_ = partType_;
        result.sensorName_ = sensorName_;
        if (dataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            data_ = java.util.Collections.unmodifiableList(data_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.build();
        }
        result.rows_ = rows_;
        result.cols_ = cols_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.SensorData) {
          return mergeFrom((cmvr.api.DexhandCommand.SensorData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.SensorData other) {
        if (other == cmvr.api.DexhandCommand.SensorData.getDefaultInstance()) return this;
        if (other.fingerType_ != 0) {
          setFingerTypeValue(other.getFingerTypeValue());
        }
        if (other.partType_ != 0) {
          setPartTypeValue(other.getPartTypeValue());
        }
        if (!other.getSensorName().isEmpty()) {
          sensorName_ = other.sensorName_;
          onChanged();
        }
        if (dataBuilder_ == null) {
          if (!other.data_.isEmpty()) {
            if (data_.isEmpty()) {
              data_ = other.data_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureDataIsMutable();
              data_.addAll(other.data_);
            }
            onChanged();
          }
        } else {
          if (!other.data_.isEmpty()) {
            if (dataBuilder_.isEmpty()) {
              dataBuilder_.dispose();
              dataBuilder_ = null;
              data_ = other.data_;
              bitField0_ = (bitField0_ & ~0x00000001);
              dataBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDataFieldBuilder() : null;
            } else {
              dataBuilder_.addAllMessages(other.data_);
            }
          }
        }
        if (other.getRows() != 0) {
          setRows(other.getRows());
        }
        if (other.getCols() != 0) {
          setCols(other.getCols());
        }
        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 10: {
                cmvr.api.DexhandCommand.SensorData.RowData m =
                    input.readMessage(
                        cmvr.api.DexhandCommand.SensorData.RowData.parser(),
                        extensionRegistry);
                if (dataBuilder_ == null) {
                  ensureDataIsMutable();
                  data_.add(m);
                } else {
                  dataBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 16: {
                rows_ = input.readInt32();

                break;
              } // case 16
              case 24: {
                cols_ = input.readInt32();

                break;
              } // case 24
              case 32: {
                fingerType_ = input.readEnum();

                break;
              } // case 32
              case 40: {
                partType_ = input.readEnum();

                break;
              } // case 40
              case 50: {
                sensorName_ = input.readStringRequireUtf8();

                break;
              } // case 50
              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 fingerType_ = 0;
      /**
       * <pre>
       * 手指类型（掌心使用PALM）
       * </pre>
       *
       * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
       * @return The enum numeric value on the wire for fingerType.
       */
      @java.lang.Override public int getFingerTypeValue() {
        return fingerType_;
      }
      /**
       * <pre>
       * 手指类型（掌心使用PALM）
       * </pre>
       *
       * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
       * @param value The enum numeric value on the wire for fingerType to set.
       * @return This builder for chaining.
       */
      public Builder setFingerTypeValue(int value) {
        
        fingerType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手指类型（掌心使用PALM）
       * </pre>
       *
       * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
       * @return The fingerType.
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorData.FingerType getFingerType() {
        @SuppressWarnings("deprecation")
        cmvr.api.DexhandCommand.SensorData.FingerType result = cmvr.api.DexhandCommand.SensorData.FingerType.valueOf(fingerType_);
        return result == null ? cmvr.api.DexhandCommand.SensorData.FingerType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * 手指类型（掌心使用PALM）
       * </pre>
       *
       * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
       * @param value The fingerType to set.
       * @return This builder for chaining.
       */
      public Builder setFingerType(cmvr.api.DexhandCommand.SensorData.FingerType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        fingerType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 手指类型（掌心使用PALM）
       * </pre>
       *
       * <code>.cmvr.api.SensorData.FingerType finger_type = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearFingerType() {
        
        fingerType_ = 0;
        onChanged();
        return this;
      }

      private int partType_ = 0;
      /**
       * <pre>
       * 部位类型
       * </pre>
       *
       * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
       * @return The enum numeric value on the wire for partType.
       */
      @java.lang.Override public int getPartTypeValue() {
        return partType_;
      }
      /**
       * <pre>
       * 部位类型
       * </pre>
       *
       * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
       * @param value The enum numeric value on the wire for partType to set.
       * @return This builder for chaining.
       */
      public Builder setPartTypeValue(int value) {
        
        partType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 部位类型
       * </pre>
       *
       * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
       * @return The partType.
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorData.PartType getPartType() {
        @SuppressWarnings("deprecation")
        cmvr.api.DexhandCommand.SensorData.PartType result = cmvr.api.DexhandCommand.SensorData.PartType.valueOf(partType_);
        return result == null ? cmvr.api.DexhandCommand.SensorData.PartType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * 部位类型
       * </pre>
       *
       * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
       * @param value The partType to set.
       * @return This builder for chaining.
       */
      public Builder setPartType(cmvr.api.DexhandCommand.SensorData.PartType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        partType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 部位类型
       * </pre>
       *
       * <code>.cmvr.api.SensorData.PartType part_type = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearPartType() {
        
        partType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object sensorName_ = "";
      /**
       * <pre>
       * 传感器名称（如"小拇指指端"）
       * </pre>
       *
       * <code>string sensor_name = 6;</code>
       * @return The sensorName.
       */
      public java.lang.String getSensorName() {
        java.lang.Object ref = sensorName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sensorName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * 传感器名称（如"小拇指指端"）
       * </pre>
       *
       * <code>string sensor_name = 6;</code>
       * @return The bytes for sensorName.
       */
      public com.google.protobuf.ByteString
          getSensorNameBytes() {
        java.lang.Object ref = sensorName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sensorName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * 传感器名称（如"小拇指指端"）
       * </pre>
       *
       * <code>string sensor_name = 6;</code>
       * @param value The sensorName to set.
       * @return This builder for chaining.
       */
      public Builder setSensorName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sensorName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 传感器名称（如"小拇指指端"）
       * </pre>
       *
       * <code>string sensor_name = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearSensorName() {
        
        sensorName_ = getDefaultInstance().getSensorName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 传感器名称（如"小拇指指端"）
       * </pre>
       *
       * <code>string sensor_name = 6;</code>
       * @param value The bytes for sensorName to set.
       * @return This builder for chaining.
       */
      public Builder setSensorNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        sensorName_ = value;
        onChanged();
        return this;
      }

      private java.util.List<cmvr.api.DexhandCommand.SensorData.RowData> data_ =
        java.util.Collections.emptyList();
      private void ensureDataIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          data_ = new java.util.ArrayList<cmvr.api.DexhandCommand.SensorData.RowData>(data_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          cmvr.api.DexhandCommand.SensorData.RowData, cmvr.api.DexhandCommand.SensorData.RowData.Builder, cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder> dataBuilder_;

      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public java.util.List<cmvr.api.DexhandCommand.SensorData.RowData> getDataList() {
        if (dataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(data_);
        } else {
          return dataBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public int getDataCount() {
        if (dataBuilder_ == null) {
          return data_.size();
        } else {
          return dataBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public cmvr.api.DexhandCommand.SensorData.RowData getData(int index) {
        if (dataBuilder_ == null) {
          return data_.get(index);
        } else {
          return dataBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder setData(
          int index, cmvr.api.DexhandCommand.SensorData.RowData value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataIsMutable();
          data_.set(index, value);
          onChanged();
        } else {
          dataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder setData(
          int index, cmvr.api.DexhandCommand.SensorData.RowData.Builder builderForValue) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          data_.set(index, builderForValue.build());
          onChanged();
        } else {
          dataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder addData(cmvr.api.DexhandCommand.SensorData.RowData value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataIsMutable();
          data_.add(value);
          onChanged();
        } else {
          dataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder addData(
          int index, cmvr.api.DexhandCommand.SensorData.RowData value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataIsMutable();
          data_.add(index, value);
          onChanged();
        } else {
          dataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder addData(
          cmvr.api.DexhandCommand.SensorData.RowData.Builder builderForValue) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          data_.add(builderForValue.build());
          onChanged();
        } else {
          dataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder addData(
          int index, cmvr.api.DexhandCommand.SensorData.RowData.Builder builderForValue) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          data_.add(index, builderForValue.build());
          onChanged();
        } else {
          dataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder addAllData(
          java.lang.Iterable<? extends cmvr.api.DexhandCommand.SensorData.RowData> values) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, data_);
          onChanged();
        } else {
          dataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public Builder removeData(int index) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          data_.remove(index);
          onChanged();
        } else {
          dataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public cmvr.api.DexhandCommand.SensorData.RowData.Builder getDataBuilder(
          int index) {
        return getDataFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder getDataOrBuilder(
          int index) {
        if (dataBuilder_ == null) {
          return data_.get(index);  } else {
          return dataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public java.util.List<? extends cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder> 
           getDataOrBuilderList() {
        if (dataBuilder_ != null) {
          return dataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(data_);
        }
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public cmvr.api.DexhandCommand.SensorData.RowData.Builder addDataBuilder() {
        return getDataFieldBuilder().addBuilder(
            cmvr.api.DexhandCommand.SensorData.RowData.getDefaultInstance());
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public cmvr.api.DexhandCommand.SensorData.RowData.Builder addDataBuilder(
          int index) {
        return getDataFieldBuilder().addBuilder(
            index, cmvr.api.DexhandCommand.SensorData.RowData.getDefaultInstance());
      }
      /**
       * <pre>
       * 二维数组，每行数据是 RowData 类型
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData.RowData data = 1;</code>
       */
      public java.util.List<cmvr.api.DexhandCommand.SensorData.RowData.Builder> 
           getDataBuilderList() {
        return getDataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          cmvr.api.DexhandCommand.SensorData.RowData, cmvr.api.DexhandCommand.SensorData.RowData.Builder, cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          dataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              cmvr.api.DexhandCommand.SensorData.RowData, cmvr.api.DexhandCommand.SensorData.RowData.Builder, cmvr.api.DexhandCommand.SensorData.RowDataOrBuilder>(
                  data_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

      private int rows_ ;
      /**
       * <pre>
       * 行
       * </pre>
       *
       * <code>int32 rows = 2;</code>
       * @return The rows.
       */
      @java.lang.Override
      public int getRows() {
        return rows_;
      }
      /**
       * <pre>
       * 行
       * </pre>
       *
       * <code>int32 rows = 2;</code>
       * @param value The rows to set.
       * @return This builder for chaining.
       */
      public Builder setRows(int value) {
        
        rows_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 行
       * </pre>
       *
       * <code>int32 rows = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRows() {
        
        rows_ = 0;
        onChanged();
        return this;
      }

      private int cols_ ;
      /**
       * <pre>
       * 列
       * </pre>
       *
       * <code>int32 cols = 3;</code>
       * @return The cols.
       */
      @java.lang.Override
      public int getCols() {
        return cols_;
      }
      /**
       * <pre>
       * 列
       * </pre>
       *
       * <code>int32 cols = 3;</code>
       * @param value The cols to set.
       * @return This builder for chaining.
       */
      public Builder setCols(int value) {
        
        cols_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 列
       * </pre>
       *
       * <code>int32 cols = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCols() {
        
        cols_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.SensorData)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.SensorData)
    private static final cmvr.api.DexhandCommand.SensorData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SensorData();
    }

    public static cmvr.api.DexhandCommand.SensorData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.SensorData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DexHandStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.DexHandState)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 是否初始化
     * </pre>
     *
     * <code>bool is_initialized = 1;</code>
     * @return The isInitialized.
     */
    boolean getIsInitialized();

    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    java.util.List<cmvr.api.DexhandCommand.RH56DFTPDexHand> 
        getHandsList();
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    cmvr.api.DexhandCommand.RH56DFTPDexHand getHands(int index);
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    int getHandsCount();
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    java.util.List<? extends cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder> 
        getHandsOrBuilderList();
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder getHandsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code cmvr.api.DexHandState}
   */
  public static final class DexHandState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.DexHandState)
      DexHandStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DexHandState.newBuilder() to construct.
    private DexHandState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DexHandState() {
      hands_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DexHandState();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_DexHandState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_DexHandState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.DexHandState.class, cmvr.api.DexhandCommand.DexHandState.Builder.class);
    }

    public static final int IS_INITIALIZED_FIELD_NUMBER = 1;
    private boolean isInitialized_;
    /**
     * <pre>
     * 是否初始化
     * </pre>
     *
     * <code>bool is_initialized = 1;</code>
     * @return The isInitialized.
     */
    @java.lang.Override
    public boolean getIsInitialized() {
      return isInitialized_;
    }

    public static final int HANDS_FIELD_NUMBER = 2;
    private java.util.List<cmvr.api.DexhandCommand.RH56DFTPDexHand> hands_;
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    @java.lang.Override
    public java.util.List<cmvr.api.DexhandCommand.RH56DFTPDexHand> getHandsList() {
      return hands_;
    }
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder> 
        getHandsOrBuilderList() {
      return hands_;
    }
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    @java.lang.Override
    public int getHandsCount() {
      return hands_.size();
    }
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    @java.lang.Override
    public cmvr.api.DexhandCommand.RH56DFTPDexHand getHands(int index) {
      return hands_.get(index);
    }
    /**
     * <pre>
     * 包含多个自由度状态
     * </pre>
     *
     * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
     */
    @java.lang.Override
    public cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder getHandsOrBuilder(
        int index) {
      return hands_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (isInitialized_ != false) {
        output.writeBool(1, isInitialized_);
      }
      for (int i = 0; i < hands_.size(); i++) {
        output.writeMessage(2, hands_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (isInitialized_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, isInitialized_);
      }
      for (int i = 0; i < hands_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, hands_.get(i));
      }
      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 cmvr.api.DexhandCommand.DexHandState)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.DexHandState other = (cmvr.api.DexhandCommand.DexHandState) obj;

      if (getIsInitialized()
          != other.getIsInitialized()) return false;
      if (!getHandsList()
          .equals(other.getHandsList())) 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();
      hash = (37 * hash) + IS_INITIALIZED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsInitialized());
      if (getHandsCount() > 0) {
        hash = (37 * hash) + HANDS_FIELD_NUMBER;
        hash = (53 * hash) + getHandsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.DexHandState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.DexHandState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.DexHandState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.DexHandState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.DexHandState)
        cmvr.api.DexhandCommand.DexHandStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_DexHandState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_DexHandState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.DexHandState.class, cmvr.api.DexhandCommand.DexHandState.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.DexHandState.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        isInitialized_ = false;

        if (handsBuilder_ == null) {
          hands_ = java.util.Collections.emptyList();
        } else {
          hands_ = null;
          handsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_DexHandState_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.DexHandState getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.DexHandState.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.DexHandState build() {
        cmvr.api.DexhandCommand.DexHandState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.DexHandState buildPartial() {
        cmvr.api.DexhandCommand.DexHandState result = new cmvr.api.DexhandCommand.DexHandState(this);
        int from_bitField0_ = bitField0_;
        result.isInitialized_ = isInitialized_;
        if (handsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            hands_ = java.util.Collections.unmodifiableList(hands_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.hands_ = hands_;
        } else {
          result.hands_ = handsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.DexHandState) {
          return mergeFrom((cmvr.api.DexhandCommand.DexHandState)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.DexHandState other) {
        if (other == cmvr.api.DexhandCommand.DexHandState.getDefaultInstance()) return this;
        if (other.getIsInitialized() != false) {
          setIsInitialized(other.getIsInitialized());
        }
        if (handsBuilder_ == null) {
          if (!other.hands_.isEmpty()) {
            if (hands_.isEmpty()) {
              hands_ = other.hands_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureHandsIsMutable();
              hands_.addAll(other.hands_);
            }
            onChanged();
          }
        } else {
          if (!other.hands_.isEmpty()) {
            if (handsBuilder_.isEmpty()) {
              handsBuilder_.dispose();
              handsBuilder_ = null;
              hands_ = other.hands_;
              bitField0_ = (bitField0_ & ~0x00000001);
              handsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHandsFieldBuilder() : null;
            } else {
              handsBuilder_.addAllMessages(other.hands_);
            }
          }
        }
        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: {
                isInitialized_ = input.readBool();

                break;
              } // case 8
              case 18: {
                cmvr.api.DexhandCommand.RH56DFTPDexHand m =
                    input.readMessage(
                        cmvr.api.DexhandCommand.RH56DFTPDexHand.parser(),
                        extensionRegistry);
                if (handsBuilder_ == null) {
                  ensureHandsIsMutable();
                  hands_.add(m);
                } else {
                  handsBuilder_.addMessage(m);
                }
                break;
              } // case 18
              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 boolean isInitialized_ ;
      /**
       * <pre>
       * 是否初始化
       * </pre>
       *
       * <code>bool is_initialized = 1;</code>
       * @return The isInitialized.
       */
      @java.lang.Override
      public boolean getIsInitialized() {
        return isInitialized_;
      }
      /**
       * <pre>
       * 是否初始化
       * </pre>
       *
       * <code>bool is_initialized = 1;</code>
       * @param value The isInitialized to set.
       * @return This builder for chaining.
       */
      public Builder setIsInitialized(boolean value) {
        
        isInitialized_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 是否初始化
       * </pre>
       *
       * <code>bool is_initialized = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsInitialized() {
        
        isInitialized_ = false;
        onChanged();
        return this;
      }

      private java.util.List<cmvr.api.DexhandCommand.RH56DFTPDexHand> hands_ =
        java.util.Collections.emptyList();
      private void ensureHandsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          hands_ = new java.util.ArrayList<cmvr.api.DexhandCommand.RH56DFTPDexHand>(hands_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          cmvr.api.DexhandCommand.RH56DFTPDexHand, cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder, cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder> handsBuilder_;

      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public java.util.List<cmvr.api.DexhandCommand.RH56DFTPDexHand> getHandsList() {
        if (handsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(hands_);
        } else {
          return handsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public int getHandsCount() {
        if (handsBuilder_ == null) {
          return hands_.size();
        } else {
          return handsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public cmvr.api.DexhandCommand.RH56DFTPDexHand getHands(int index) {
        if (handsBuilder_ == null) {
          return hands_.get(index);
        } else {
          return handsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder setHands(
          int index, cmvr.api.DexhandCommand.RH56DFTPDexHand value) {
        if (handsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandsIsMutable();
          hands_.set(index, value);
          onChanged();
        } else {
          handsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder setHands(
          int index, cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder builderForValue) {
        if (handsBuilder_ == null) {
          ensureHandsIsMutable();
          hands_.set(index, builderForValue.build());
          onChanged();
        } else {
          handsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder addHands(cmvr.api.DexhandCommand.RH56DFTPDexHand value) {
        if (handsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandsIsMutable();
          hands_.add(value);
          onChanged();
        } else {
          handsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder addHands(
          int index, cmvr.api.DexhandCommand.RH56DFTPDexHand value) {
        if (handsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandsIsMutable();
          hands_.add(index, value);
          onChanged();
        } else {
          handsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder addHands(
          cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder builderForValue) {
        if (handsBuilder_ == null) {
          ensureHandsIsMutable();
          hands_.add(builderForValue.build());
          onChanged();
        } else {
          handsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder addHands(
          int index, cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder builderForValue) {
        if (handsBuilder_ == null) {
          ensureHandsIsMutable();
          hands_.add(index, builderForValue.build());
          onChanged();
        } else {
          handsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder addAllHands(
          java.lang.Iterable<? extends cmvr.api.DexhandCommand.RH56DFTPDexHand> values) {
        if (handsBuilder_ == null) {
          ensureHandsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, hands_);
          onChanged();
        } else {
          handsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder clearHands() {
        if (handsBuilder_ == null) {
          hands_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          handsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public Builder removeHands(int index) {
        if (handsBuilder_ == null) {
          ensureHandsIsMutable();
          hands_.remove(index);
          onChanged();
        } else {
          handsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder getHandsBuilder(
          int index) {
        return getHandsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder getHandsOrBuilder(
          int index) {
        if (handsBuilder_ == null) {
          return hands_.get(index);  } else {
          return handsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public java.util.List<? extends cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder> 
           getHandsOrBuilderList() {
        if (handsBuilder_ != null) {
          return handsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(hands_);
        }
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder addHandsBuilder() {
        return getHandsFieldBuilder().addBuilder(
            cmvr.api.DexhandCommand.RH56DFTPDexHand.getDefaultInstance());
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder addHandsBuilder(
          int index) {
        return getHandsFieldBuilder().addBuilder(
            index, cmvr.api.DexhandCommand.RH56DFTPDexHand.getDefaultInstance());
      }
      /**
       * <pre>
       * 包含多个自由度状态
       * </pre>
       *
       * <code>repeated .cmvr.api.RH56DFTPDexHand hands = 2;</code>
       */
      public java.util.List<cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder> 
           getHandsBuilderList() {
        return getHandsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          cmvr.api.DexhandCommand.RH56DFTPDexHand, cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder, cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder> 
          getHandsFieldBuilder() {
        if (handsBuilder_ == null) {
          handsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              cmvr.api.DexhandCommand.RH56DFTPDexHand, cmvr.api.DexhandCommand.RH56DFTPDexHand.Builder, cmvr.api.DexhandCommand.RH56DFTPDexHandOrBuilder>(
                  hands_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          hands_ = null;
        }
        return handsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.DexHandState)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.DexHandState)
    private static final cmvr.api.DexhandCommand.DexHandState DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.DexHandState();
    }

    public static cmvr.api.DexhandCommand.DexHandState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.DexHandState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetDexHandStateCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.GetDexHandStateCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.GetDexHandStateCommand}
   */
  public static final class GetDexHandStateCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.GetDexHandStateCommand)
      GetDexHandStateCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetDexHandStateCommand.newBuilder() to construct.
    private GetDexHandStateCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetDexHandStateCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetDexHandStateCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.GetDexHandStateCommand.class, cmvr.api.DexhandCommand.GetDexHandStateCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetDexHandStateCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.GetDexHandStateCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetDexHandStateCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetDexHandStateCommand.Request.class, cmvr.api.DexhandCommand.GetDexHandStateCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        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 cmvr.api.DexhandCommand.GetDexHandStateCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.GetDexHandStateCommand.Request other = (cmvr.api.DexhandCommand.GetDexHandStateCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.GetDexHandStateCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetDexHandStateCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetDexHandStateCommand.Request)
          cmvr.api.DexhandCommand.GetDexHandStateCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.GetDexHandStateCommand.Request.class, cmvr.api.DexhandCommand.GetDexHandStateCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.GetDexHandStateCommand.Request.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetDexHandStateCommand.Request getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.GetDexHandStateCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetDexHandStateCommand.Request build() {
          cmvr.api.DexhandCommand.GetDexHandStateCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetDexHandStateCommand.Request buildPartial() {
          cmvr.api.DexhandCommand.GetDexHandStateCommand.Request result = new cmvr.api.DexhandCommand.GetDexHandStateCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.GetDexHandStateCommand.Request) {
            return mergeFrom((cmvr.api.DexhandCommand.GetDexHandStateCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.GetDexHandStateCommand.Request other) {
          if (other == cmvr.api.DexhandCommand.GetDexHandStateCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                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 cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetDexHandStateCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetDexHandStateCommand.Request)
      private static final cmvr.api.DexhandCommand.GetDexHandStateCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetDexHandStateCommand.Request();
      }

      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetDexHandStateCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetDexHandStateCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <code>.cmvr.api.DexHandState state = 2;</code>
       * @return Whether the state field is set.
       */
      boolean hasState();
      /**
       * <code>.cmvr.api.DexHandState state = 2;</code>
       * @return The state.
       */
      cmvr.api.DexhandCommand.DexHandState getState();
      /**
       * <code>.cmvr.api.DexHandState state = 2;</code>
       */
      cmvr.api.DexhandCommand.DexHandStateOrBuilder getStateOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.GetDexHandStateCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetDexHandStateCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback.class, cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int STATE_FIELD_NUMBER = 2;
      private cmvr.api.DexhandCommand.DexHandState state_;
      /**
       * <code>.cmvr.api.DexHandState state = 2;</code>
       * @return Whether the state field is set.
       */
      @java.lang.Override
      public boolean hasState() {
        return state_ != null;
      }
      /**
       * <code>.cmvr.api.DexHandState state = 2;</code>
       * @return The state.
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.DexHandState getState() {
        return state_ == null ? cmvr.api.DexhandCommand.DexHandState.getDefaultInstance() : state_;
      }
      /**
       * <code>.cmvr.api.DexHandState state = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.DexHandStateOrBuilder getStateOrBuilder() {
        return getState();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (state_ != null) {
          output.writeMessage(2, getState());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (state_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getState());
        }
        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 cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback other = (cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (hasState() != other.hasState()) return false;
        if (hasState()) {
          if (!getState()
              .equals(other.getState())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (hasState()) {
          hash = (37 * hash) + STATE_FIELD_NUMBER;
          hash = (53 * hash) + getState().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetDexHandStateCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetDexHandStateCommand.Feedback)
          cmvr.api.DexhandCommand.GetDexHandStateCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback.class, cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (stateBuilder_ == null) {
            state_ = null;
          } else {
            state_ = null;
            stateBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback build() {
          cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback buildPartial() {
          cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback result = new cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (stateBuilder_ == null) {
            result.state_ = state_;
          } else {
            result.state_ = stateBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback) {
            return mergeFrom((cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback other) {
          if (other == cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.hasState()) {
            mergeState(other.getState());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getStateFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 18
                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 cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private cmvr.api.DexhandCommand.DexHandState state_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.DexhandCommand.DexHandState, cmvr.api.DexhandCommand.DexHandState.Builder, cmvr.api.DexhandCommand.DexHandStateOrBuilder> stateBuilder_;
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         * @return Whether the state field is set.
         */
        public boolean hasState() {
          return stateBuilder_ != null || state_ != null;
        }
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         * @return The state.
         */
        public cmvr.api.DexhandCommand.DexHandState getState() {
          if (stateBuilder_ == null) {
            return state_ == null ? cmvr.api.DexhandCommand.DexHandState.getDefaultInstance() : state_;
          } else {
            return stateBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         */
        public Builder setState(cmvr.api.DexhandCommand.DexHandState value) {
          if (stateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            state_ = value;
            onChanged();
          } else {
            stateBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         */
        public Builder setState(
            cmvr.api.DexhandCommand.DexHandState.Builder builderForValue) {
          if (stateBuilder_ == null) {
            state_ = builderForValue.build();
            onChanged();
          } else {
            stateBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         */
        public Builder mergeState(cmvr.api.DexhandCommand.DexHandState value) {
          if (stateBuilder_ == null) {
            if (state_ != null) {
              state_ =
                cmvr.api.DexhandCommand.DexHandState.newBuilder(state_).mergeFrom(value).buildPartial();
            } else {
              state_ = value;
            }
            onChanged();
          } else {
            stateBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         */
        public Builder clearState() {
          if (stateBuilder_ == null) {
            state_ = null;
            onChanged();
          } else {
            state_ = null;
            stateBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         */
        public cmvr.api.DexhandCommand.DexHandState.Builder getStateBuilder() {
          
          onChanged();
          return getStateFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         */
        public cmvr.api.DexhandCommand.DexHandStateOrBuilder getStateOrBuilder() {
          if (stateBuilder_ != null) {
            return stateBuilder_.getMessageOrBuilder();
          } else {
            return state_ == null ?
                cmvr.api.DexhandCommand.DexHandState.getDefaultInstance() : state_;
          }
        }
        /**
         * <code>.cmvr.api.DexHandState state = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.DexhandCommand.DexHandState, cmvr.api.DexhandCommand.DexHandState.Builder, cmvr.api.DexhandCommand.DexHandStateOrBuilder> 
            getStateFieldBuilder() {
          if (stateBuilder_ == null) {
            stateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.DexhandCommand.DexHandState, cmvr.api.DexhandCommand.DexHandState.Builder, cmvr.api.DexhandCommand.DexHandStateOrBuilder>(
                    getState(),
                    getParentForChildren(),
                    isClean());
            state_ = null;
          }
          return stateBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetDexHandStateCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetDexHandStateCommand.Feedback)
      private static final cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback();
      }

      public static cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetDexHandStateCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 cmvr.api.DexhandCommand.GetDexHandStateCommand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.GetDexHandStateCommand other = (cmvr.api.DexhandCommand.GetDexHandStateCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetDexHandStateCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.GetDexHandStateCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.GetDexHandStateCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.GetDexHandStateCommand)
        cmvr.api.DexhandCommand.GetDexHandStateCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetDexHandStateCommand.class, cmvr.api.DexhandCommand.GetDexHandStateCommand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.GetDexHandStateCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetDexHandStateCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetDexHandStateCommand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.GetDexHandStateCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetDexHandStateCommand build() {
        cmvr.api.DexhandCommand.GetDexHandStateCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetDexHandStateCommand buildPartial() {
        cmvr.api.DexhandCommand.GetDexHandStateCommand result = new cmvr.api.DexhandCommand.GetDexHandStateCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.GetDexHandStateCommand) {
          return mergeFrom((cmvr.api.DexhandCommand.GetDexHandStateCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.GetDexHandStateCommand other) {
        if (other == cmvr.api.DexhandCommand.GetDexHandStateCommand.getDefaultInstance()) return this;
        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;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.GetDexHandStateCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.GetDexHandStateCommand)
    private static final cmvr.api.DexhandCommand.GetDexHandStateCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetDexHandStateCommand();
    }

    public static cmvr.api.DexhandCommand.GetDexHandStateCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.GetDexHandStateCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SetDexHandPositionsCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandPositionsCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.SetDexHandPositionsCommand}
   */
  public static final class SetDexHandPositionsCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandPositionsCommand)
      SetDexHandPositionsCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetDexHandPositionsCommand.newBuilder() to construct.
    private SetDexHandPositionsCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetDexHandPositionsCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SetDexHandPositionsCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.SetDexHandPositionsCommand.class, cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandPositionsCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      java.util.List<cmvr.api.DexhandCommand.FreedomValue> 
          getValuesList();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      cmvr.api.DexhandCommand.FreedomValue getValues(int index);
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      int getValuesCount();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
          getValuesOrBuilderList();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandPositionsCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandPositionsCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        values_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int VALUES_FIELD_NUMBER = 2;
      private java.util.List<cmvr.api.DexhandCommand.FreedomValue> values_;
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public java.util.List<cmvr.api.DexhandCommand.FreedomValue> getValuesList() {
        return values_;
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
          getValuesOrBuilderList() {
        return values_;
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValue getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
          int index) {
        return values_.get(index);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        for (int i = 0; i < values_.size(); i++) {
          output.writeMessage(2, values_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        for (int i = 0; i < values_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, values_.get(i));
        }
        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 cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request other = (cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getValuesList()
            .equals(other.getValuesList())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (getValuesCount() > 0) {
          hash = (37 * hash) + VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getValuesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandPositionsCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandPositionsCommand.Request)
          cmvr.api.DexhandCommand.SetDexHandPositionsCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (valuesBuilder_ == null) {
            values_ = java.util.Collections.emptyList();
          } else {
            values_ = null;
            valuesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request build() {
          cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request result = new cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (valuesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              values_ = java.util.Collections.unmodifiableList(values_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.values_ = values_;
          } else {
            result.values_ = valuesBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (valuesBuilder_ == null) {
            if (!other.values_.isEmpty()) {
              if (values_.isEmpty()) {
                values_ = other.values_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureValuesIsMutable();
                values_.addAll(other.values_);
              }
              onChanged();
            }
          } else {
            if (!other.values_.isEmpty()) {
              if (valuesBuilder_.isEmpty()) {
                valuesBuilder_.dispose();
                valuesBuilder_ = null;
                values_ = other.values_;
                bitField0_ = (bitField0_ & ~0x00000001);
                valuesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getValuesFieldBuilder() : null;
              } else {
                valuesBuilder_.addAllMessages(other.values_);
              }
            }
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  cmvr.api.DexhandCommand.FreedomValue m =
                      input.readMessage(
                          cmvr.api.DexhandCommand.FreedomValue.parser(),
                          extensionRegistry);
                  if (valuesBuilder_ == null) {
                    ensureValuesIsMutable();
                    values_.add(m);
                  } else {
                    valuesBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                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 cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.util.List<cmvr.api.DexhandCommand.FreedomValue> values_ =
          java.util.Collections.emptyList();
        private void ensureValuesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            values_ = new java.util.ArrayList<cmvr.api.DexhandCommand.FreedomValue>(values_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder> valuesBuilder_;

        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.FreedomValue> getValuesList() {
          if (valuesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(values_);
          } else {
            return valuesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public int getValuesCount() {
          if (valuesBuilder_ == null) {
            return values_.size();
          } else {
            return valuesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue getValues(int index) {
          if (valuesBuilder_ == null) {
            return values_.get(index);
          } else {
            return valuesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder setValues(
            int index, cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.set(index, value);
            onChanged();
          } else {
            valuesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder setValues(
            int index, cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.set(index, builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.add(value);
            onChanged();
          } else {
            valuesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            int index, cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.add(index, value);
            onChanged();
          } else {
            valuesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.add(builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            int index, cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.add(index, builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addAllValues(
            java.lang.Iterable<? extends cmvr.api.DexhandCommand.FreedomValue> values) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, values_);
            onChanged();
          } else {
            valuesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder clearValues() {
          if (valuesBuilder_ == null) {
            values_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            valuesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder removeValues(int index) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.remove(index);
            onChanged();
          } else {
            valuesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder getValuesBuilder(
            int index) {
          return getValuesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
            int index) {
          if (valuesBuilder_ == null) {
            return values_.get(index);  } else {
            return valuesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
             getValuesOrBuilderList() {
          if (valuesBuilder_ != null) {
            return valuesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(values_);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder addValuesBuilder() {
          return getValuesFieldBuilder().addBuilder(
              cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance());
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder addValuesBuilder(
            int index) {
          return getValuesFieldBuilder().addBuilder(
              index, cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance());
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.FreedomValue.Builder> 
             getValuesBuilderList() {
          return getValuesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
            getValuesFieldBuilder() {
          if (valuesBuilder_ == null) {
            valuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder>(
                    values_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            values_ = null;
          }
          return valuesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandPositionsCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandPositionsCommand.Request)
      private static final cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request();
      }

      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandPositionsCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandPositionsCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandPositionsCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        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 cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback other = (cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandPositionsCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandPositionsCommand.Feedback)
          cmvr.api.DexhandCommand.SetDexHandPositionsCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback build() {
          cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback result = new cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                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 cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandPositionsCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandPositionsCommand.Feedback)
      private static final cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback();
      }

      public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 cmvr.api.DexhandCommand.SetDexHandPositionsCommand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.SetDexHandPositionsCommand other = (cmvr.api.DexhandCommand.SetDexHandPositionsCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandPositionsCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandPositionsCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandPositionsCommand)
        cmvr.api.DexhandCommand.SetDexHandPositionsCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandPositionsCommand.class, cmvr.api.DexhandCommand.SetDexHandPositionsCommand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.SetDexHandPositionsCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPositionsCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPositionsCommand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.SetDexHandPositionsCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPositionsCommand build() {
        cmvr.api.DexhandCommand.SetDexHandPositionsCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPositionsCommand buildPartial() {
        cmvr.api.DexhandCommand.SetDexHandPositionsCommand result = new cmvr.api.DexhandCommand.SetDexHandPositionsCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.SetDexHandPositionsCommand) {
          return mergeFrom((cmvr.api.DexhandCommand.SetDexHandPositionsCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandPositionsCommand other) {
        if (other == cmvr.api.DexhandCommand.SetDexHandPositionsCommand.getDefaultInstance()) return this;
        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;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandPositionsCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandPositionsCommand)
    private static final cmvr.api.DexhandCommand.SetDexHandPositionsCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandPositionsCommand();
    }

    public static cmvr.api.DexhandCommand.SetDexHandPositionsCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.SetDexHandPositionsCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SetDexHandAnglesCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandAnglesCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.SetDexHandAnglesCommand}
   */
  public static final class SetDexHandAnglesCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandAnglesCommand)
      SetDexHandAnglesCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetDexHandAnglesCommand.newBuilder() to construct.
    private SetDexHandAnglesCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetDexHandAnglesCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SetDexHandAnglesCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.SetDexHandAnglesCommand.class, cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandAnglesCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      java.util.List<cmvr.api.DexhandCommand.FreedomValue> 
          getValuesList();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      cmvr.api.DexhandCommand.FreedomValue getValues(int index);
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      int getValuesCount();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
          getValuesOrBuilderList();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandAnglesCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandAnglesCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        values_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int VALUES_FIELD_NUMBER = 2;
      private java.util.List<cmvr.api.DexhandCommand.FreedomValue> values_;
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public java.util.List<cmvr.api.DexhandCommand.FreedomValue> getValuesList() {
        return values_;
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
          getValuesOrBuilderList() {
        return values_;
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValue getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
          int index) {
        return values_.get(index);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        for (int i = 0; i < values_.size(); i++) {
          output.writeMessage(2, values_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        for (int i = 0; i < values_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, values_.get(i));
        }
        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 cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request other = (cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getValuesList()
            .equals(other.getValuesList())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (getValuesCount() > 0) {
          hash = (37 * hash) + VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getValuesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandAnglesCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandAnglesCommand.Request)
          cmvr.api.DexhandCommand.SetDexHandAnglesCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (valuesBuilder_ == null) {
            values_ = java.util.Collections.emptyList();
          } else {
            values_ = null;
            valuesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request build() {
          cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request result = new cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (valuesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              values_ = java.util.Collections.unmodifiableList(values_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.values_ = values_;
          } else {
            result.values_ = valuesBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (valuesBuilder_ == null) {
            if (!other.values_.isEmpty()) {
              if (values_.isEmpty()) {
                values_ = other.values_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureValuesIsMutable();
                values_.addAll(other.values_);
              }
              onChanged();
            }
          } else {
            if (!other.values_.isEmpty()) {
              if (valuesBuilder_.isEmpty()) {
                valuesBuilder_.dispose();
                valuesBuilder_ = null;
                values_ = other.values_;
                bitField0_ = (bitField0_ & ~0x00000001);
                valuesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getValuesFieldBuilder() : null;
              } else {
                valuesBuilder_.addAllMessages(other.values_);
              }
            }
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  cmvr.api.DexhandCommand.FreedomValue m =
                      input.readMessage(
                          cmvr.api.DexhandCommand.FreedomValue.parser(),
                          extensionRegistry);
                  if (valuesBuilder_ == null) {
                    ensureValuesIsMutable();
                    values_.add(m);
                  } else {
                    valuesBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                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 cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.util.List<cmvr.api.DexhandCommand.FreedomValue> values_ =
          java.util.Collections.emptyList();
        private void ensureValuesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            values_ = new java.util.ArrayList<cmvr.api.DexhandCommand.FreedomValue>(values_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder> valuesBuilder_;

        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.FreedomValue> getValuesList() {
          if (valuesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(values_);
          } else {
            return valuesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public int getValuesCount() {
          if (valuesBuilder_ == null) {
            return values_.size();
          } else {
            return valuesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue getValues(int index) {
          if (valuesBuilder_ == null) {
            return values_.get(index);
          } else {
            return valuesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder setValues(
            int index, cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.set(index, value);
            onChanged();
          } else {
            valuesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder setValues(
            int index, cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.set(index, builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.add(value);
            onChanged();
          } else {
            valuesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            int index, cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.add(index, value);
            onChanged();
          } else {
            valuesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.add(builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            int index, cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.add(index, builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addAllValues(
            java.lang.Iterable<? extends cmvr.api.DexhandCommand.FreedomValue> values) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, values_);
            onChanged();
          } else {
            valuesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder clearValues() {
          if (valuesBuilder_ == null) {
            values_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            valuesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder removeValues(int index) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.remove(index);
            onChanged();
          } else {
            valuesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder getValuesBuilder(
            int index) {
          return getValuesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
            int index) {
          if (valuesBuilder_ == null) {
            return values_.get(index);  } else {
            return valuesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
             getValuesOrBuilderList() {
          if (valuesBuilder_ != null) {
            return valuesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(values_);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder addValuesBuilder() {
          return getValuesFieldBuilder().addBuilder(
              cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance());
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder addValuesBuilder(
            int index) {
          return getValuesFieldBuilder().addBuilder(
              index, cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance());
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.FreedomValue.Builder> 
             getValuesBuilderList() {
          return getValuesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
            getValuesFieldBuilder() {
          if (valuesBuilder_ == null) {
            valuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder>(
                    values_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            values_ = null;
          }
          return valuesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandAnglesCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandAnglesCommand.Request)
      private static final cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request();
      }

      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandAnglesCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandAnglesCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandAnglesCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        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 cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback other = (cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandAnglesCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandAnglesCommand.Feedback)
          cmvr.api.DexhandCommand.SetDexHandAnglesCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback build() {
          cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback result = new cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                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 cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandAnglesCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandAnglesCommand.Feedback)
      private static final cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback();
      }

      public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 cmvr.api.DexhandCommand.SetDexHandAnglesCommand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.SetDexHandAnglesCommand other = (cmvr.api.DexhandCommand.SetDexHandAnglesCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandAnglesCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandAnglesCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandAnglesCommand)
        cmvr.api.DexhandCommand.SetDexHandAnglesCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandAnglesCommand.class, cmvr.api.DexhandCommand.SetDexHandAnglesCommand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.SetDexHandAnglesCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandAnglesCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandAnglesCommand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.SetDexHandAnglesCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandAnglesCommand build() {
        cmvr.api.DexhandCommand.SetDexHandAnglesCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandAnglesCommand buildPartial() {
        cmvr.api.DexhandCommand.SetDexHandAnglesCommand result = new cmvr.api.DexhandCommand.SetDexHandAnglesCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.SetDexHandAnglesCommand) {
          return mergeFrom((cmvr.api.DexhandCommand.SetDexHandAnglesCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandAnglesCommand other) {
        if (other == cmvr.api.DexhandCommand.SetDexHandAnglesCommand.getDefaultInstance()) return this;
        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;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandAnglesCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandAnglesCommand)
    private static final cmvr.api.DexhandCommand.SetDexHandAnglesCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandAnglesCommand();
    }

    public static cmvr.api.DexhandCommand.SetDexHandAnglesCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.SetDexHandAnglesCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SetDexHandForceCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandForceCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.SetDexHandForceCommand}
   */
  public static final class SetDexHandForceCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandForceCommand)
      SetDexHandForceCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetDexHandForceCommand.newBuilder() to construct.
    private SetDexHandForceCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetDexHandForceCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SetDexHandForceCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.SetDexHandForceCommand.class, cmvr.api.DexhandCommand.SetDexHandForceCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandForceCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      java.util.List<cmvr.api.DexhandCommand.FreedomValue> 
          getValuesList();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      cmvr.api.DexhandCommand.FreedomValue getValues(int index);
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      int getValuesCount();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
          getValuesOrBuilderList();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandForceCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandForceCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        values_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandForceCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandForceCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int VALUES_FIELD_NUMBER = 2;
      private java.util.List<cmvr.api.DexhandCommand.FreedomValue> values_;
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public java.util.List<cmvr.api.DexhandCommand.FreedomValue> getValuesList() {
        return values_;
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
          getValuesOrBuilderList() {
        return values_;
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValue getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
          int index) {
        return values_.get(index);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        for (int i = 0; i < values_.size(); i++) {
          output.writeMessage(2, values_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        for (int i = 0; i < values_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, values_.get(i));
        }
        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 cmvr.api.DexhandCommand.SetDexHandForceCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandForceCommand.Request other = (cmvr.api.DexhandCommand.SetDexHandForceCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getValuesList()
            .equals(other.getValuesList())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (getValuesCount() > 0) {
          hash = (37 * hash) + VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getValuesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandForceCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandForceCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandForceCommand.Request)
          cmvr.api.DexhandCommand.SetDexHandForceCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandForceCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandForceCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandForceCommand.Request.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (valuesBuilder_ == null) {
            values_ = java.util.Collections.emptyList();
          } else {
            values_ = null;
            valuesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandForceCommand.Request getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandForceCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandForceCommand.Request build() {
          cmvr.api.DexhandCommand.SetDexHandForceCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandForceCommand.Request buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandForceCommand.Request result = new cmvr.api.DexhandCommand.SetDexHandForceCommand.Request(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (valuesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              values_ = java.util.Collections.unmodifiableList(values_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.values_ = values_;
          } else {
            result.values_ = valuesBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandForceCommand.Request) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandForceCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandForceCommand.Request other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandForceCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (valuesBuilder_ == null) {
            if (!other.values_.isEmpty()) {
              if (values_.isEmpty()) {
                values_ = other.values_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureValuesIsMutable();
                values_.addAll(other.values_);
              }
              onChanged();
            }
          } else {
            if (!other.values_.isEmpty()) {
              if (valuesBuilder_.isEmpty()) {
                valuesBuilder_.dispose();
                valuesBuilder_ = null;
                values_ = other.values_;
                bitField0_ = (bitField0_ & ~0x00000001);
                valuesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getValuesFieldBuilder() : null;
              } else {
                valuesBuilder_.addAllMessages(other.values_);
              }
            }
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  cmvr.api.DexhandCommand.FreedomValue m =
                      input.readMessage(
                          cmvr.api.DexhandCommand.FreedomValue.parser(),
                          extensionRegistry);
                  if (valuesBuilder_ == null) {
                    ensureValuesIsMutable();
                    values_.add(m);
                  } else {
                    valuesBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                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 cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.util.List<cmvr.api.DexhandCommand.FreedomValue> values_ =
          java.util.Collections.emptyList();
        private void ensureValuesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            values_ = new java.util.ArrayList<cmvr.api.DexhandCommand.FreedomValue>(values_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder> valuesBuilder_;

        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.FreedomValue> getValuesList() {
          if (valuesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(values_);
          } else {
            return valuesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public int getValuesCount() {
          if (valuesBuilder_ == null) {
            return values_.size();
          } else {
            return valuesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue getValues(int index) {
          if (valuesBuilder_ == null) {
            return values_.get(index);
          } else {
            return valuesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder setValues(
            int index, cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.set(index, value);
            onChanged();
          } else {
            valuesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder setValues(
            int index, cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.set(index, builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.add(value);
            onChanged();
          } else {
            valuesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            int index, cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.add(index, value);
            onChanged();
          } else {
            valuesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.add(builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            int index, cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.add(index, builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addAllValues(
            java.lang.Iterable<? extends cmvr.api.DexhandCommand.FreedomValue> values) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, values_);
            onChanged();
          } else {
            valuesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder clearValues() {
          if (valuesBuilder_ == null) {
            values_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            valuesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder removeValues(int index) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.remove(index);
            onChanged();
          } else {
            valuesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder getValuesBuilder(
            int index) {
          return getValuesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
            int index) {
          if (valuesBuilder_ == null) {
            return values_.get(index);  } else {
            return valuesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
             getValuesOrBuilderList() {
          if (valuesBuilder_ != null) {
            return valuesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(values_);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder addValuesBuilder() {
          return getValuesFieldBuilder().addBuilder(
              cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance());
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder addValuesBuilder(
            int index) {
          return getValuesFieldBuilder().addBuilder(
              index, cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance());
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.FreedomValue.Builder> 
             getValuesBuilderList() {
          return getValuesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
            getValuesFieldBuilder() {
          if (valuesBuilder_ == null) {
            valuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder>(
                    values_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            values_ = null;
          }
          return valuesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandForceCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandForceCommand.Request)
      private static final cmvr.api.DexhandCommand.SetDexHandForceCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandForceCommand.Request();
      }

      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandForceCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandForceCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandForceCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandForceCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        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 cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback other = (cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandForceCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandForceCommand.Feedback)
          cmvr.api.DexhandCommand.SetDexHandForceCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback build() {
          cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback result = new cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                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 cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandForceCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandForceCommand.Feedback)
      private static final cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback();
      }

      public static cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandForceCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 cmvr.api.DexhandCommand.SetDexHandForceCommand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.SetDexHandForceCommand other = (cmvr.api.DexhandCommand.SetDexHandForceCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandForceCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandForceCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandForceCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandForceCommand)
        cmvr.api.DexhandCommand.SetDexHandForceCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandForceCommand.class, cmvr.api.DexhandCommand.SetDexHandForceCommand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.SetDexHandForceCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandForceCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandForceCommand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.SetDexHandForceCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandForceCommand build() {
        cmvr.api.DexhandCommand.SetDexHandForceCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandForceCommand buildPartial() {
        cmvr.api.DexhandCommand.SetDexHandForceCommand result = new cmvr.api.DexhandCommand.SetDexHandForceCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.SetDexHandForceCommand) {
          return mergeFrom((cmvr.api.DexhandCommand.SetDexHandForceCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandForceCommand other) {
        if (other == cmvr.api.DexhandCommand.SetDexHandForceCommand.getDefaultInstance()) return this;
        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;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandForceCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandForceCommand)
    private static final cmvr.api.DexhandCommand.SetDexHandForceCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandForceCommand();
    }

    public static cmvr.api.DexhandCommand.SetDexHandForceCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.SetDexHandForceCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SetDexHandSpeedCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandSpeedCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.SetDexHandSpeedCommand}
   */
  public static final class SetDexHandSpeedCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandSpeedCommand)
      SetDexHandSpeedCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetDexHandSpeedCommand.newBuilder() to construct.
    private SetDexHandSpeedCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetDexHandSpeedCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SetDexHandSpeedCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.SetDexHandSpeedCommand.class, cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandSpeedCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      java.util.List<cmvr.api.DexhandCommand.FreedomValue> 
          getValuesList();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      cmvr.api.DexhandCommand.FreedomValue getValues(int index);
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      int getValuesCount();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
          getValuesOrBuilderList();
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandSpeedCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandSpeedCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
        values_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int VALUES_FIELD_NUMBER = 2;
      private java.util.List<cmvr.api.DexhandCommand.FreedomValue> values_;
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public java.util.List<cmvr.api.DexhandCommand.FreedomValue> getValuesList() {
        return values_;
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
          getValuesOrBuilderList() {
        return values_;
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValue getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
          int index) {
        return values_.get(index);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        for (int i = 0; i < values_.size(); i++) {
          output.writeMessage(2, values_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        for (int i = 0; i < values_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, values_.get(i));
        }
        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 cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request other = (cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getValuesList()
            .equals(other.getValuesList())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (getValuesCount() > 0) {
          hash = (37 * hash) + VALUES_FIELD_NUMBER;
          hash = (53 * hash) + getValuesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandSpeedCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandSpeedCommand.Request)
          cmvr.api.DexhandCommand.SetDexHandSpeedCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (valuesBuilder_ == null) {
            values_ = java.util.Collections.emptyList();
          } else {
            values_ = null;
            valuesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request build() {
          cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request result = new cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (valuesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              values_ = java.util.Collections.unmodifiableList(values_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.values_ = values_;
          } else {
            result.values_ = valuesBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (valuesBuilder_ == null) {
            if (!other.values_.isEmpty()) {
              if (values_.isEmpty()) {
                values_ = other.values_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureValuesIsMutable();
                values_.addAll(other.values_);
              }
              onChanged();
            }
          } else {
            if (!other.values_.isEmpty()) {
              if (valuesBuilder_.isEmpty()) {
                valuesBuilder_.dispose();
                valuesBuilder_ = null;
                values_ = other.values_;
                bitField0_ = (bitField0_ & ~0x00000001);
                valuesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getValuesFieldBuilder() : null;
              } else {
                valuesBuilder_.addAllMessages(other.values_);
              }
            }
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  cmvr.api.DexhandCommand.FreedomValue m =
                      input.readMessage(
                          cmvr.api.DexhandCommand.FreedomValue.parser(),
                          extensionRegistry);
                  if (valuesBuilder_ == null) {
                    ensureValuesIsMutable();
                    values_.add(m);
                  } else {
                    valuesBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                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 cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.util.List<cmvr.api.DexhandCommand.FreedomValue> values_ =
          java.util.Collections.emptyList();
        private void ensureValuesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            values_ = new java.util.ArrayList<cmvr.api.DexhandCommand.FreedomValue>(values_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder> valuesBuilder_;

        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.FreedomValue> getValuesList() {
          if (valuesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(values_);
          } else {
            return valuesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public int getValuesCount() {
          if (valuesBuilder_ == null) {
            return values_.size();
          } else {
            return valuesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue getValues(int index) {
          if (valuesBuilder_ == null) {
            return values_.get(index);
          } else {
            return valuesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder setValues(
            int index, cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.set(index, value);
            onChanged();
          } else {
            valuesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder setValues(
            int index, cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.set(index, builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.add(value);
            onChanged();
          } else {
            valuesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            int index, cmvr.api.DexhandCommand.FreedomValue value) {
          if (valuesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureValuesIsMutable();
            values_.add(index, value);
            onChanged();
          } else {
            valuesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.add(builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addValues(
            int index, cmvr.api.DexhandCommand.FreedomValue.Builder builderForValue) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.add(index, builderForValue.build());
            onChanged();
          } else {
            valuesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder addAllValues(
            java.lang.Iterable<? extends cmvr.api.DexhandCommand.FreedomValue> values) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, values_);
            onChanged();
          } else {
            valuesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder clearValues() {
          if (valuesBuilder_ == null) {
            values_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            valuesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public Builder removeValues(int index) {
          if (valuesBuilder_ == null) {
            ensureValuesIsMutable();
            values_.remove(index);
            onChanged();
          } else {
            valuesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder getValuesBuilder(
            int index) {
          return getValuesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValueOrBuilder getValuesOrBuilder(
            int index) {
          if (valuesBuilder_ == null) {
            return values_.get(index);  } else {
            return valuesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<? extends cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
             getValuesOrBuilderList() {
          if (valuesBuilder_ != null) {
            return valuesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(values_);
          }
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder addValuesBuilder() {
          return getValuesFieldBuilder().addBuilder(
              cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance());
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public cmvr.api.DexhandCommand.FreedomValue.Builder addValuesBuilder(
            int index) {
          return getValuesFieldBuilder().addBuilder(
              index, cmvr.api.DexhandCommand.FreedomValue.getDefaultInstance());
        }
        /**
         * <code>repeated .cmvr.api.FreedomValue values = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.FreedomValue.Builder> 
             getValuesBuilderList() {
          return getValuesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder> 
            getValuesFieldBuilder() {
          if (valuesBuilder_ == null) {
            valuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                cmvr.api.DexhandCommand.FreedomValue, cmvr.api.DexhandCommand.FreedomValue.Builder, cmvr.api.DexhandCommand.FreedomValueOrBuilder>(
                    values_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            values_ = null;
          }
          return valuesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandSpeedCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandSpeedCommand.Request)
      private static final cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request();
      }

      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandSpeedCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandSpeedCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandSpeedCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        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 cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback other = (cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandSpeedCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandSpeedCommand.Feedback)
          cmvr.api.DexhandCommand.SetDexHandSpeedCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback build() {
          cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback result = new cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                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 cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandSpeedCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandSpeedCommand.Feedback)
      private static final cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback();
      }

      public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 cmvr.api.DexhandCommand.SetDexHandSpeedCommand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.SetDexHandSpeedCommand other = (cmvr.api.DexhandCommand.SetDexHandSpeedCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandSpeedCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandSpeedCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandSpeedCommand)
        cmvr.api.DexhandCommand.SetDexHandSpeedCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandSpeedCommand.class, cmvr.api.DexhandCommand.SetDexHandSpeedCommand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.SetDexHandSpeedCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandSpeedCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandSpeedCommand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.SetDexHandSpeedCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandSpeedCommand build() {
        cmvr.api.DexhandCommand.SetDexHandSpeedCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandSpeedCommand buildPartial() {
        cmvr.api.DexhandCommand.SetDexHandSpeedCommand result = new cmvr.api.DexhandCommand.SetDexHandSpeedCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.SetDexHandSpeedCommand) {
          return mergeFrom((cmvr.api.DexhandCommand.SetDexHandSpeedCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandSpeedCommand other) {
        if (other == cmvr.api.DexhandCommand.SetDexHandSpeedCommand.getDefaultInstance()) return this;
        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;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandSpeedCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandSpeedCommand)
    private static final cmvr.api.DexhandCommand.SetDexHandSpeedCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandSpeedCommand();
    }

    public static cmvr.api.DexhandCommand.SetDexHandSpeedCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.SetDexHandSpeedCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SetDexHandPresetActCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandPresetActCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.SetDexHandPresetActCommand}
   */
  public static final class SetDexHandPresetActCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandPresetActCommand)
      SetDexHandPresetActCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetDexHandPresetActCommand.newBuilder() to construct.
    private SetDexHandPresetActCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetDexHandPresetActCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SetDexHandPresetActCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.SetDexHandPresetActCommand.class, cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandPresetActCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();

      /**
       * <code>int32 presetActId = 2;</code>
       * @return The presetActId.
       */
      int getPresetActId();
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandPresetActCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandPresetActCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int PRESETACTID_FIELD_NUMBER = 2;
      private int presetActId_;
      /**
       * <code>int32 presetActId = 2;</code>
       * @return The presetActId.
       */
      @java.lang.Override
      public int getPresetActId() {
        return presetActId_;
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        if (presetActId_ != 0) {
          output.writeInt32(2, presetActId_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        if (presetActId_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, presetActId_);
        }
        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 cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request other = (cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (getPresetActId()
            != other.getPresetActId()) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (37 * hash) + PRESETACTID_FIELD_NUMBER;
        hash = (53 * hash) + getPresetActId();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandPresetActCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandPresetActCommand.Request)
          cmvr.api.DexhandCommand.SetDexHandPresetActCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request.class, cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          presetActId_ = 0;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request build() {
          cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request result = new cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          result.presetActId_ = presetActId_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (other.getPresetActId() != 0) {
            setPresetActId(other.getPresetActId());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 16: {
                  presetActId_ = input.readInt32();

                  break;
                } // case 16
                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 cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private int presetActId_ ;
        /**
         * <code>int32 presetActId = 2;</code>
         * @return The presetActId.
         */
        @java.lang.Override
        public int getPresetActId() {
          return presetActId_;
        }
        /**
         * <code>int32 presetActId = 2;</code>
         * @param value The presetActId to set.
         * @return This builder for chaining.
         */
        public Builder setPresetActId(int value) {
          
          presetActId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 presetActId = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearPresetActId() {
          
          presetActId_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandPresetActCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandPresetActCommand.Request)
      private static final cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request();
      }

      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.SetDexHandPresetActCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandPresetActCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.SetDexHandPresetActCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        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 cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback other = (cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.SetDexHandPresetActCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandPresetActCommand.Feedback)
          cmvr.api.DexhandCommand.SetDexHandPresetActCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback.class, cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback build() {
          cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback buildPartial() {
          cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback result = new cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback) {
            return mergeFrom((cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback other) {
          if (other == cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                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 cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandPresetActCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandPresetActCommand.Feedback)
      private static final cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback();
      }

      public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 cmvr.api.DexhandCommand.SetDexHandPresetActCommand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.SetDexHandPresetActCommand other = (cmvr.api.DexhandCommand.SetDexHandPresetActCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.SetDexHandPresetActCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.SetDexHandPresetActCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.SetDexHandPresetActCommand)
        cmvr.api.DexhandCommand.SetDexHandPresetActCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.SetDexHandPresetActCommand.class, cmvr.api.DexhandCommand.SetDexHandPresetActCommand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.SetDexHandPresetActCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_SetDexHandPresetActCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPresetActCommand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.SetDexHandPresetActCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPresetActCommand build() {
        cmvr.api.DexhandCommand.SetDexHandPresetActCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.SetDexHandPresetActCommand buildPartial() {
        cmvr.api.DexhandCommand.SetDexHandPresetActCommand result = new cmvr.api.DexhandCommand.SetDexHandPresetActCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.SetDexHandPresetActCommand) {
          return mergeFrom((cmvr.api.DexhandCommand.SetDexHandPresetActCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.SetDexHandPresetActCommand other) {
        if (other == cmvr.api.DexhandCommand.SetDexHandPresetActCommand.getDefaultInstance()) return this;
        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;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.SetDexHandPresetActCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.SetDexHandPresetActCommand)
    private static final cmvr.api.DexhandCommand.SetDexHandPresetActCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.SetDexHandPresetActCommand();
    }

    public static cmvr.api.DexhandCommand.SetDexHandPresetActCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.SetDexHandPresetActCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetSensorDataCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.GetSensorDataCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.GetSensorDataCommand}
   */
  public static final class GetSensorDataCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.GetSensorDataCommand)
      GetSensorDataCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetSensorDataCommand.newBuilder() to construct.
    private GetSensorDataCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetSensorDataCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetSensorDataCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.GetSensorDataCommand.class, cmvr.api.DexhandCommand.GetSensorDataCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetSensorDataCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.GetSensorDataCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetSensorDataCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetSensorDataCommand.Request.class, cmvr.api.DexhandCommand.GetSensorDataCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        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 cmvr.api.DexhandCommand.GetSensorDataCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.GetSensorDataCommand.Request other = (cmvr.api.DexhandCommand.GetSensorDataCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.GetSensorDataCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetSensorDataCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetSensorDataCommand.Request)
          cmvr.api.DexhandCommand.GetSensorDataCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.GetSensorDataCommand.Request.class, cmvr.api.DexhandCommand.GetSensorDataCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.GetSensorDataCommand.Request.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataCommand.Request getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.GetSensorDataCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataCommand.Request build() {
          cmvr.api.DexhandCommand.GetSensorDataCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataCommand.Request buildPartial() {
          cmvr.api.DexhandCommand.GetSensorDataCommand.Request result = new cmvr.api.DexhandCommand.GetSensorDataCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.GetSensorDataCommand.Request) {
            return mergeFrom((cmvr.api.DexhandCommand.GetSensorDataCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.GetSensorDataCommand.Request other) {
          if (other == cmvr.api.DexhandCommand.GetSensorDataCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                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 cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetSensorDataCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetSensorDataCommand.Request)
      private static final cmvr.api.DexhandCommand.GetSensorDataCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetSensorDataCommand.Request();
      }

      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetSensorDataCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      java.util.List<cmvr.api.DexhandCommand.SensorData> 
          getSensorList();
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      cmvr.api.DexhandCommand.SensorData getSensor(int index);
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      int getSensorCount();
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      java.util.List<? extends cmvr.api.DexhandCommand.SensorDataOrBuilder> 
          getSensorOrBuilderList();
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      cmvr.api.DexhandCommand.SensorDataOrBuilder getSensorOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code cmvr.api.GetSensorDataCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetSensorDataCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
        sensor_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback.class, cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int SENSOR_FIELD_NUMBER = 2;
      private java.util.List<cmvr.api.DexhandCommand.SensorData> sensor_;
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public java.util.List<cmvr.api.DexhandCommand.SensorData> getSensorList() {
        return sensor_;
      }
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends cmvr.api.DexhandCommand.SensorDataOrBuilder> 
          getSensorOrBuilderList() {
        return sensor_;
      }
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public int getSensorCount() {
        return sensor_.size();
      }
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorData getSensor(int index) {
        return sensor_.get(index);
      }
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorDataOrBuilder getSensorOrBuilder(
          int index) {
        return sensor_.get(index);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        for (int i = 0; i < sensor_.size(); i++) {
          output.writeMessage(2, sensor_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        for (int i = 0; i < sensor_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, sensor_.get(i));
        }
        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 cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback other = (cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getSensorList()
            .equals(other.getSensorList())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (getSensorCount() > 0) {
          hash = (37 * hash) + SENSOR_FIELD_NUMBER;
          hash = (53 * hash) + getSensorList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetSensorDataCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetSensorDataCommand.Feedback)
          cmvr.api.DexhandCommand.GetSensorDataCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback.class, cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (sensorBuilder_ == null) {
            sensor_ = java.util.Collections.emptyList();
          } else {
            sensor_ = null;
            sensorBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback build() {
          cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback buildPartial() {
          cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback result = new cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (sensorBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              sensor_ = java.util.Collections.unmodifiableList(sensor_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.sensor_ = sensor_;
          } else {
            result.sensor_ = sensorBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback) {
            return mergeFrom((cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback other) {
          if (other == cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (sensorBuilder_ == null) {
            if (!other.sensor_.isEmpty()) {
              if (sensor_.isEmpty()) {
                sensor_ = other.sensor_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureSensorIsMutable();
                sensor_.addAll(other.sensor_);
              }
              onChanged();
            }
          } else {
            if (!other.sensor_.isEmpty()) {
              if (sensorBuilder_.isEmpty()) {
                sensorBuilder_.dispose();
                sensorBuilder_ = null;
                sensor_ = other.sensor_;
                bitField0_ = (bitField0_ & ~0x00000001);
                sensorBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getSensorFieldBuilder() : null;
              } else {
                sensorBuilder_.addAllMessages(other.sensor_);
              }
            }
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  cmvr.api.DexhandCommand.SensorData m =
                      input.readMessage(
                          cmvr.api.DexhandCommand.SensorData.parser(),
                          extensionRegistry);
                  if (sensorBuilder_ == null) {
                    ensureSensorIsMutable();
                    sensor_.add(m);
                  } else {
                    sensorBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                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 cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.util.List<cmvr.api.DexhandCommand.SensorData> sensor_ =
          java.util.Collections.emptyList();
        private void ensureSensorIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            sensor_ = new java.util.ArrayList<cmvr.api.DexhandCommand.SensorData>(sensor_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.SensorData, cmvr.api.DexhandCommand.SensorData.Builder, cmvr.api.DexhandCommand.SensorDataOrBuilder> sensorBuilder_;

        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.SensorData> getSensorList() {
          if (sensorBuilder_ == null) {
            return java.util.Collections.unmodifiableList(sensor_);
          } else {
            return sensorBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public int getSensorCount() {
          if (sensorBuilder_ == null) {
            return sensor_.size();
          } else {
            return sensorBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorData getSensor(int index) {
          if (sensorBuilder_ == null) {
            return sensor_.get(index);
          } else {
            return sensorBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder setSensor(
            int index, cmvr.api.DexhandCommand.SensorData value) {
          if (sensorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSensorIsMutable();
            sensor_.set(index, value);
            onChanged();
          } else {
            sensorBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder setSensor(
            int index, cmvr.api.DexhandCommand.SensorData.Builder builderForValue) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            sensor_.set(index, builderForValue.build());
            onChanged();
          } else {
            sensorBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addSensor(cmvr.api.DexhandCommand.SensorData value) {
          if (sensorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSensorIsMutable();
            sensor_.add(value);
            onChanged();
          } else {
            sensorBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addSensor(
            int index, cmvr.api.DexhandCommand.SensorData value) {
          if (sensorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSensorIsMutable();
            sensor_.add(index, value);
            onChanged();
          } else {
            sensorBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addSensor(
            cmvr.api.DexhandCommand.SensorData.Builder builderForValue) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            sensor_.add(builderForValue.build());
            onChanged();
          } else {
            sensorBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addSensor(
            int index, cmvr.api.DexhandCommand.SensorData.Builder builderForValue) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            sensor_.add(index, builderForValue.build());
            onChanged();
          } else {
            sensorBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addAllSensor(
            java.lang.Iterable<? extends cmvr.api.DexhandCommand.SensorData> values) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, sensor_);
            onChanged();
          } else {
            sensorBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder clearSensor() {
          if (sensorBuilder_ == null) {
            sensor_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            sensorBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder removeSensor(int index) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            sensor_.remove(index);
            onChanged();
          } else {
            sensorBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorData.Builder getSensorBuilder(
            int index) {
          return getSensorFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorDataOrBuilder getSensorOrBuilder(
            int index) {
          if (sensorBuilder_ == null) {
            return sensor_.get(index);  } else {
            return sensorBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public java.util.List<? extends cmvr.api.DexhandCommand.SensorDataOrBuilder> 
             getSensorOrBuilderList() {
          if (sensorBuilder_ != null) {
            return sensorBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(sensor_);
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorData.Builder addSensorBuilder() {
          return getSensorFieldBuilder().addBuilder(
              cmvr.api.DexhandCommand.SensorData.getDefaultInstance());
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorData.Builder addSensorBuilder(
            int index) {
          return getSensorFieldBuilder().addBuilder(
              index, cmvr.api.DexhandCommand.SensorData.getDefaultInstance());
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.SensorData.Builder> 
             getSensorBuilderList() {
          return getSensorFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.SensorData, cmvr.api.DexhandCommand.SensorData.Builder, cmvr.api.DexhandCommand.SensorDataOrBuilder> 
            getSensorFieldBuilder() {
          if (sensorBuilder_ == null) {
            sensorBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                cmvr.api.DexhandCommand.SensorData, cmvr.api.DexhandCommand.SensorData.Builder, cmvr.api.DexhandCommand.SensorDataOrBuilder>(
                    sensor_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            sensor_ = null;
          }
          return sensorBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetSensorDataCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetSensorDataCommand.Feedback)
      private static final cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback();
      }

      public static cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 cmvr.api.DexhandCommand.GetSensorDataCommand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.GetSensorDataCommand other = (cmvr.api.DexhandCommand.GetSensorDataCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.GetSensorDataCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.GetSensorDataCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.GetSensorDataCommand)
        cmvr.api.DexhandCommand.GetSensorDataCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetSensorDataCommand.class, cmvr.api.DexhandCommand.GetSensorDataCommand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.GetSensorDataCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataCommand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.GetSensorDataCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataCommand build() {
        cmvr.api.DexhandCommand.GetSensorDataCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataCommand buildPartial() {
        cmvr.api.DexhandCommand.GetSensorDataCommand result = new cmvr.api.DexhandCommand.GetSensorDataCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.GetSensorDataCommand) {
          return mergeFrom((cmvr.api.DexhandCommand.GetSensorDataCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.GetSensorDataCommand other) {
        if (other == cmvr.api.DexhandCommand.GetSensorDataCommand.getDefaultInstance()) return this;
        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;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.GetSensorDataCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.GetSensorDataCommand)
    private static final cmvr.api.DexhandCommand.GetSensorDataCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetSensorDataCommand();
    }

    public static cmvr.api.DexhandCommand.GetSensorDataCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.GetSensorDataCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetSensorDataStreamCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:cmvr.api.GetSensorDataStreamCommand)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code cmvr.api.GetSensorDataStreamCommand}
   */
  public static final class GetSensorDataStreamCommand extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:cmvr.api.GetSensorDataStreamCommand)
      GetSensorDataStreamCommandOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetSensorDataStreamCommand.newBuilder() to construct.
    private GetSensorDataStreamCommand(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetSensorDataStreamCommand() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GetSensorDataStreamCommand();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              cmvr.api.DexhandCommand.GetSensorDataStreamCommand.class, cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Builder.class);
    }

    public interface RequestOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetSensorDataStreamCommand.Request)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Request getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder();
    }
    /**
     * Protobuf type {@code cmvr.api.GetSensorDataStreamCommand.Request}
     */
    public static final class Request extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetSensorDataStreamCommand.Request)
        RequestOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Request.newBuilder() to construct.
      private Request(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Request() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Request();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Request_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Request_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request.class, cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Request header_;
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Request getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      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 (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        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 cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request other = (cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetSensorDataStreamCommand.Request}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetSensorDataStreamCommand.Request)
          cmvr.api.DexhandCommand.GetSensorDataStreamCommand.RequestOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Request_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Request_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request.class, cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Request_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request build() {
          cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request buildPartial() {
          cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request result = new cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request(this);
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request) {
            return mergeFrom((cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request other) {
          if (other == cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                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 cmvr.api.Common.CommandHeader.Request header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Request getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Request.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Request header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetSensorDataStreamCommand.Request)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetSensorDataStreamCommand.Request)
      private static final cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request();
      }

      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Request getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface FeedbackOrBuilder extends
        // @@protoc_insertion_point(interface_extends:cmvr.api.GetSensorDataStreamCommand.Feedback)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      boolean hasHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      cmvr.api.Common.CommandHeader.Feedback getHeader();
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder();

      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      java.util.List<cmvr.api.DexhandCommand.SensorData> 
          getSensorList();
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      cmvr.api.DexhandCommand.SensorData getSensor(int index);
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      int getSensorCount();
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      java.util.List<? extends cmvr.api.DexhandCommand.SensorDataOrBuilder> 
          getSensorOrBuilderList();
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      cmvr.api.DexhandCommand.SensorDataOrBuilder getSensorOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code cmvr.api.GetSensorDataStreamCommand.Feedback}
     */
    public static final class Feedback extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:cmvr.api.GetSensorDataStreamCommand.Feedback)
        FeedbackOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Feedback.newBuilder() to construct.
      private Feedback(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Feedback() {
        sensor_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Feedback();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback.class, cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback.Builder.class);
      }

      public static final int HEADER_FIELD_NUMBER = 1;
      private cmvr.api.Common.CommandHeader.Feedback header_;
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return Whether the header field is set.
       */
      @java.lang.Override
      public boolean hasHeader() {
        return header_ != null;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       * @return The header.
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.Feedback getHeader() {
        return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
      }
      /**
       * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
       */
      @java.lang.Override
      public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
        return getHeader();
      }

      public static final int SENSOR_FIELD_NUMBER = 2;
      private java.util.List<cmvr.api.DexhandCommand.SensorData> sensor_;
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public java.util.List<cmvr.api.DexhandCommand.SensorData> getSensorList() {
        return sensor_;
      }
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends cmvr.api.DexhandCommand.SensorDataOrBuilder> 
          getSensorOrBuilderList() {
        return sensor_;
      }
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public int getSensorCount() {
        return sensor_.size();
      }
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorData getSensor(int index) {
        return sensor_.get(index);
      }
      /**
       * <pre>
       *所有传感器的数据
       * </pre>
       *
       * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
       */
      @java.lang.Override
      public cmvr.api.DexhandCommand.SensorDataOrBuilder getSensorOrBuilder(
          int index) {
        return sensor_.get(index);
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (header_ != null) {
          output.writeMessage(1, getHeader());
        }
        for (int i = 0; i < sensor_.size(); i++) {
          output.writeMessage(2, sensor_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (header_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHeader());
        }
        for (int i = 0; i < sensor_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, sensor_.get(i));
        }
        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 cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback)) {
          return super.equals(obj);
        }
        cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback other = (cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback) obj;

        if (hasHeader() != other.hasHeader()) return false;
        if (hasHeader()) {
          if (!getHeader()
              .equals(other.getHeader())) return false;
        }
        if (!getSensorList()
            .equals(other.getSensorList())) 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 (hasHeader()) {
          hash = (37 * hash) + HEADER_FIELD_NUMBER;
          hash = (53 * hash) + getHeader().hashCode();
        }
        if (getSensorCount() > 0) {
          hash = (37 * hash) + SENSOR_FIELD_NUMBER;
          hash = (53 * hash) + getSensorList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code cmvr.api.GetSensorDataStreamCommand.Feedback}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:cmvr.api.GetSensorDataStreamCommand.Feedback)
          cmvr.api.DexhandCommand.GetSensorDataStreamCommand.FeedbackOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback.class, cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback.Builder.class);
        }

        // Construct using cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback.newBuilder()
        private Builder() {

        }

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

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (headerBuilder_ == null) {
            header_ = null;
          } else {
            header_ = null;
            headerBuilder_ = null;
          }
          if (sensorBuilder_ == null) {
            sensor_ = java.util.Collections.emptyList();
          } else {
            sensor_ = null;
            sensorBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_descriptor;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback getDefaultInstanceForType() {
          return cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback.getDefaultInstance();
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback build() {
          cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback buildPartial() {
          cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback result = new cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback(this);
          int from_bitField0_ = bitField0_;
          if (headerBuilder_ == null) {
            result.header_ = header_;
          } else {
            result.header_ = headerBuilder_.build();
          }
          if (sensorBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              sensor_ = java.util.Collections.unmodifiableList(sensor_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.sensor_ = sensor_;
          } else {
            result.sensor_ = sensorBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback) {
            return mergeFrom((cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback other) {
          if (other == cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback.getDefaultInstance()) return this;
          if (other.hasHeader()) {
            mergeHeader(other.getHeader());
          }
          if (sensorBuilder_ == null) {
            if (!other.sensor_.isEmpty()) {
              if (sensor_.isEmpty()) {
                sensor_ = other.sensor_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureSensorIsMutable();
                sensor_.addAll(other.sensor_);
              }
              onChanged();
            }
          } else {
            if (!other.sensor_.isEmpty()) {
              if (sensorBuilder_.isEmpty()) {
                sensorBuilder_.dispose();
                sensorBuilder_ = null;
                sensor_ = other.sensor_;
                bitField0_ = (bitField0_ & ~0x00000001);
                sensorBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getSensorFieldBuilder() : null;
              } else {
                sensorBuilder_.addAllMessages(other.sensor_);
              }
            }
          }
          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 10: {
                  input.readMessage(
                      getHeaderFieldBuilder().getBuilder(),
                      extensionRegistry);

                  break;
                } // case 10
                case 18: {
                  cmvr.api.DexhandCommand.SensorData m =
                      input.readMessage(
                          cmvr.api.DexhandCommand.SensorData.parser(),
                          extensionRegistry);
                  if (sensorBuilder_ == null) {
                    ensureSensorIsMutable();
                    sensor_.add(m);
                  } else {
                    sensorBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                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 cmvr.api.Common.CommandHeader.Feedback header_;
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_;
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return Whether the header field is set.
         */
        public boolean hasHeader() {
          return headerBuilder_ != null || header_ != null;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         * @return The header.
         */
        public cmvr.api.Common.CommandHeader.Feedback getHeader() {
          if (headerBuilder_ == null) {
            return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          } else {
            return headerBuilder_.getMessage();
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            header_ = value;
            onChanged();
          } else {
            headerBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder setHeader(
            cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) {
          if (headerBuilder_ == null) {
            header_ = builderForValue.build();
            onChanged();
          } else {
            headerBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) {
          if (headerBuilder_ == null) {
            if (header_ != null) {
              header_ =
                cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial();
            } else {
              header_ = value;
            }
            onChanged();
          } else {
            headerBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public Builder clearHeader() {
          if (headerBuilder_ == null) {
            header_ = null;
            onChanged();
          } else {
            header_ = null;
            headerBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() {
          
          onChanged();
          return getHeaderFieldBuilder().getBuilder();
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() {
          if (headerBuilder_ != null) {
            return headerBuilder_.getMessageOrBuilder();
          } else {
            return header_ == null ?
                cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_;
          }
        }
        /**
         * <code>.cmvr.api.CommandHeader.Feedback header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> 
            getHeaderFieldBuilder() {
          if (headerBuilder_ == null) {
            headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>(
                    getHeader(),
                    getParentForChildren(),
                    isClean());
            header_ = null;
          }
          return headerBuilder_;
        }

        private java.util.List<cmvr.api.DexhandCommand.SensorData> sensor_ =
          java.util.Collections.emptyList();
        private void ensureSensorIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            sensor_ = new java.util.ArrayList<cmvr.api.DexhandCommand.SensorData>(sensor_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.SensorData, cmvr.api.DexhandCommand.SensorData.Builder, cmvr.api.DexhandCommand.SensorDataOrBuilder> sensorBuilder_;

        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.SensorData> getSensorList() {
          if (sensorBuilder_ == null) {
            return java.util.Collections.unmodifiableList(sensor_);
          } else {
            return sensorBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public int getSensorCount() {
          if (sensorBuilder_ == null) {
            return sensor_.size();
          } else {
            return sensorBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorData getSensor(int index) {
          if (sensorBuilder_ == null) {
            return sensor_.get(index);
          } else {
            return sensorBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder setSensor(
            int index, cmvr.api.DexhandCommand.SensorData value) {
          if (sensorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSensorIsMutable();
            sensor_.set(index, value);
            onChanged();
          } else {
            sensorBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder setSensor(
            int index, cmvr.api.DexhandCommand.SensorData.Builder builderForValue) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            sensor_.set(index, builderForValue.build());
            onChanged();
          } else {
            sensorBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addSensor(cmvr.api.DexhandCommand.SensorData value) {
          if (sensorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSensorIsMutable();
            sensor_.add(value);
            onChanged();
          } else {
            sensorBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addSensor(
            int index, cmvr.api.DexhandCommand.SensorData value) {
          if (sensorBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSensorIsMutable();
            sensor_.add(index, value);
            onChanged();
          } else {
            sensorBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addSensor(
            cmvr.api.DexhandCommand.SensorData.Builder builderForValue) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            sensor_.add(builderForValue.build());
            onChanged();
          } else {
            sensorBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addSensor(
            int index, cmvr.api.DexhandCommand.SensorData.Builder builderForValue) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            sensor_.add(index, builderForValue.build());
            onChanged();
          } else {
            sensorBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder addAllSensor(
            java.lang.Iterable<? extends cmvr.api.DexhandCommand.SensorData> values) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, sensor_);
            onChanged();
          } else {
            sensorBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder clearSensor() {
          if (sensorBuilder_ == null) {
            sensor_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            sensorBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public Builder removeSensor(int index) {
          if (sensorBuilder_ == null) {
            ensureSensorIsMutable();
            sensor_.remove(index);
            onChanged();
          } else {
            sensorBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorData.Builder getSensorBuilder(
            int index) {
          return getSensorFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorDataOrBuilder getSensorOrBuilder(
            int index) {
          if (sensorBuilder_ == null) {
            return sensor_.get(index);  } else {
            return sensorBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public java.util.List<? extends cmvr.api.DexhandCommand.SensorDataOrBuilder> 
             getSensorOrBuilderList() {
          if (sensorBuilder_ != null) {
            return sensorBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(sensor_);
          }
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorData.Builder addSensorBuilder() {
          return getSensorFieldBuilder().addBuilder(
              cmvr.api.DexhandCommand.SensorData.getDefaultInstance());
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public cmvr.api.DexhandCommand.SensorData.Builder addSensorBuilder(
            int index) {
          return getSensorFieldBuilder().addBuilder(
              index, cmvr.api.DexhandCommand.SensorData.getDefaultInstance());
        }
        /**
         * <pre>
         *所有传感器的数据
         * </pre>
         *
         * <code>repeated .cmvr.api.SensorData sensor = 2;</code>
         */
        public java.util.List<cmvr.api.DexhandCommand.SensorData.Builder> 
             getSensorBuilderList() {
          return getSensorFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            cmvr.api.DexhandCommand.SensorData, cmvr.api.DexhandCommand.SensorData.Builder, cmvr.api.DexhandCommand.SensorDataOrBuilder> 
            getSensorFieldBuilder() {
          if (sensorBuilder_ == null) {
            sensorBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                cmvr.api.DexhandCommand.SensorData, cmvr.api.DexhandCommand.SensorData.Builder, cmvr.api.DexhandCommand.SensorDataOrBuilder>(
                    sensor_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            sensor_ = null;
          }
          return sensorBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:cmvr.api.GetSensorDataStreamCommand.Feedback)
      }

      // @@protoc_insertion_point(class_scope:cmvr.api.GetSensorDataStreamCommand.Feedback)
      private static final cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback();
      }

      public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Feedback getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    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 {
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      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 cmvr.api.DexhandCommand.GetSensorDataStreamCommand)) {
        return super.equals(obj);
      }
      cmvr.api.DexhandCommand.GetSensorDataStreamCommand other = (cmvr.api.DexhandCommand.GetSensorDataStreamCommand) obj;

      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();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(cmvr.api.DexhandCommand.GetSensorDataStreamCommand prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code cmvr.api.GetSensorDataStreamCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:cmvr.api.GetSensorDataStreamCommand)
        cmvr.api.DexhandCommand.GetSensorDataStreamCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                cmvr.api.DexhandCommand.GetSensorDataStreamCommand.class, cmvr.api.DexhandCommand.GetSensorDataStreamCommand.Builder.class);
      }

      // Construct using cmvr.api.DexhandCommand.GetSensorDataStreamCommand.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return cmvr.api.DexhandCommand.internal_static_cmvr_api_GetSensorDataStreamCommand_descriptor;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataStreamCommand getDefaultInstanceForType() {
        return cmvr.api.DexhandCommand.GetSensorDataStreamCommand.getDefaultInstance();
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataStreamCommand build() {
        cmvr.api.DexhandCommand.GetSensorDataStreamCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cmvr.api.DexhandCommand.GetSensorDataStreamCommand buildPartial() {
        cmvr.api.DexhandCommand.GetSensorDataStreamCommand result = new cmvr.api.DexhandCommand.GetSensorDataStreamCommand(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cmvr.api.DexhandCommand.GetSensorDataStreamCommand) {
          return mergeFrom((cmvr.api.DexhandCommand.GetSensorDataStreamCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cmvr.api.DexhandCommand.GetSensorDataStreamCommand other) {
        if (other == cmvr.api.DexhandCommand.GetSensorDataStreamCommand.getDefaultInstance()) return this;
        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;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:cmvr.api.GetSensorDataStreamCommand)
    }

    // @@protoc_insertion_point(class_scope:cmvr.api.GetSensorDataStreamCommand)
    private static final cmvr.api.DexhandCommand.GetSensorDataStreamCommand DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new cmvr.api.DexhandCommand.GetSensorDataStreamCommand();
    }

    public static cmvr.api.DexhandCommand.GetSensorDataStreamCommand getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

    @java.lang.Override
    public cmvr.api.DexhandCommand.GetSensorDataStreamCommand getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_FreedomValue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_FreedomValue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_RH56DFTPDexHand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_RH56DFTPDexHand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SensorData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SensorData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SensorData_RowData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SensorData_RowData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_DexHandState_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_DexHandState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetDexHandStateCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetDexHandStateCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetDexHandStateCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetDexHandStateCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetDexHandStateCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetDexHandStateCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandPositionsCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandPositionsCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandPositionsCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandPositionsCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandAnglesCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandAnglesCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandAnglesCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandAnglesCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandForceCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandForceCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandForceCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandForceCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandForceCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandForceCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandSpeedCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandSpeedCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandSpeedCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandSpeedCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandPresetActCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandPresetActCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandPresetActCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandPresetActCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetSensorDataCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetSensorDataCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetSensorDataCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetSensorDataCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetSensorDataCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetSensorDataCommand_Feedback_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetSensorDataStreamCommand_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetSensorDataStreamCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetSensorDataStreamCommand_Request_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetSensorDataStreamCommand_Request_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_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\036cmvr/api/dexhand_command.proto\022\010cmvr.a" +
      "pi\032\025cmvr/api/common.proto\")\n\014FreedomValu" +
      "e\022\n\n\002id\030\001 \001(\005\022\r\n\005value\030\002 \001(\002\"\254\001\n\017RH56DFT" +
      "PDexHand\022\016\n\006dof_id\030\001 \001(\005\022\r\n\005angle\030\002 \001(\005\022" +
      "\r\n\005speed\030\003 \001(\005\022\r\n\005force\030\004 \001(\005\022\020\n\010positio" +
      "n\030\005 \001(\005\022\017\n\007current\030\006 \001(\005\022\023\n\013temperature\030" +
      "\007 \001(\005\022\r\n\005error\030\010 \001(\005\022\025\n\rerror_message\030\t " +
      "\003(\t\"\220\003\n\nSensorData\0224\n\013finger_type\030\004 \001(\0162" +
      "\037.cmvr.api.SensorData.FingerType\0220\n\tpart" +
      "_type\030\005 \001(\0162\035.cmvr.api.SensorData.PartTy" +
      "pe\022\023\n\013sensor_name\030\006 \001(\t\022*\n\004data\030\001 \003(\0132\034." +
      "cmvr.api.SensorData.RowData\022\014\n\004rows\030\002 \001(" +
      "\005\022\014\n\004cols\030\003 \001(\005\032\035\n\007RowData\022\022\n\006values\030\001 \003" +
      "(\005B\002\020\001\"T\n\nFingerType\022\t\n\005PINKY\020\000\022\010\n\004RING\020" +
      "\001\022\021\n\rMIDDLE_FINGER\020\002\022\t\n\005INDEX\020\003\022\t\n\005THUMB" +
      "\020\004\022\010\n\004PALM\020\005\"H\n\010PartType\022\007\n\003TIP\020\000\022\n\n\006FIN" +
      "GER\020\001\022\007\n\003PAD\020\002\022\020\n\014THUMB_MIDDLE\020\003\022\014\n\010PALM" +
      "_PAD\020\004\"P\n\014DexHandState\022\026\n\016is_initialized" +
      "\030\001 \001(\010\022(\n\005hands\030\002 \003(\0132\031.cmvr.api.RH56DFT" +
      "PDexHand\"\271\001\n\026GetDexHandStateCommand\032:\n\007R" +
      "equest\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Comman" +
      "dHeader.Request\032c\n\010Feedback\0220\n\006header\030\001 " +
      "\001(\0132 .cmvr.api.CommandHeader.Feedback\022%\n" +
      "\005state\030\002 \001(\0132\026.cmvr.api.DexHandState\"\276\001\n" +
      "\032SetDexHandPositionsCommand\032b\n\007Request\022/" +
      "\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHeader." +
      "Request\022&\n\006values\030\002 \003(\0132\026.cmvr.api.Freed" +
      "omValue\032<\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cm" +
      "vr.api.CommandHeader.Feedback\"\273\001\n\027SetDex" +
      "HandAnglesCommand\032b\n\007Request\022/\n\006header\030\001" +
      " \001(\0132\037.cmvr.api.CommandHeader.Request\022&\n" +
      "\006values\030\002 \003(\0132\026.cmvr.api.FreedomValue\032<\n" +
      "\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Com" +
      "mandHeader.Feedback\"\272\001\n\026SetDexHandForceC" +
      "ommand\032b\n\007Request\022/\n\006header\030\001 \001(\0132\037.cmvr" +
      ".api.CommandHeader.Request\022&\n\006values\030\002 \003" +
      "(\0132\026.cmvr.api.FreedomValue\032<\n\010Feedback\0220" +
      "\n\006header\030\001 \001(\0132 .cmvr.api.CommandHeader." +
      "Feedback\"\272\001\n\026SetDexHandSpeedCommand\032b\n\007R" +
      "equest\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Comman" +
      "dHeader.Request\022&\n\006values\030\002 \003(\0132\026.cmvr.a" +
      "pi.FreedomValue\032<\n\010Feedback\0220\n\006header\030\001 " +
      "\001(\0132 .cmvr.api.CommandHeader.Feedback\"\253\001" +
      "\n\032SetDexHandPresetActCommand\032O\n\007Request\022" +
      "/\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHeader" +
      ".Request\022\023\n\013presetActId\030\002 \001(\005\032<\n\010Feedbac" +
      "k\0220\n\006header\030\001 \001(\0132 .cmvr.api.CommandHead" +
      "er.Feedback\"\266\001\n\024GetSensorDataCommand\032:\n\007" +
      "Request\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Comma" +
      "ndHeader.Request\032b\n\010Feedback\0220\n\006header\030\001" +
      " \001(\0132 .cmvr.api.CommandHeader.Feedback\022$" +
      "\n\006sensor\030\002 \003(\0132\024.cmvr.api.SensorData\"\274\001\n" +
      "\032GetSensorDataStreamCommand\032:\n\007Request\022/" +
      "\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHeader." +
      "Request\032b\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cm" +
      "vr.api.CommandHeader.Feedback\022$\n\006sensor\030" +
      "\002 \003(\0132\024.cmvr.api.SensorDatab\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          cmvr.api.Common.getDescriptor(),
        });
    internal_static_cmvr_api_FreedomValue_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_cmvr_api_FreedomValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_FreedomValue_descriptor,
        new java.lang.String[] { "Id", "Value", });
    internal_static_cmvr_api_RH56DFTPDexHand_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_cmvr_api_RH56DFTPDexHand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_RH56DFTPDexHand_descriptor,
        new java.lang.String[] { "DofId", "Angle", "Speed", "Force", "Position", "Current", "Temperature", "Error", "ErrorMessage", });
    internal_static_cmvr_api_SensorData_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_cmvr_api_SensorData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SensorData_descriptor,
        new java.lang.String[] { "FingerType", "PartType", "SensorName", "Data", "Rows", "Cols", });
    internal_static_cmvr_api_SensorData_RowData_descriptor =
      internal_static_cmvr_api_SensorData_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_SensorData_RowData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SensorData_RowData_descriptor,
        new java.lang.String[] { "Values", });
    internal_static_cmvr_api_DexHandState_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_cmvr_api_DexHandState_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_DexHandState_descriptor,
        new java.lang.String[] { "IsInitialized", "Hands", });
    internal_static_cmvr_api_GetDexHandStateCommand_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_cmvr_api_GetDexHandStateCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetDexHandStateCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_GetDexHandStateCommand_Request_descriptor =
      internal_static_cmvr_api_GetDexHandStateCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_GetDexHandStateCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetDexHandStateCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_GetDexHandStateCommand_Feedback_descriptor =
      internal_static_cmvr_api_GetDexHandStateCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_GetDexHandStateCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetDexHandStateCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "State", });
    internal_static_cmvr_api_SetDexHandPositionsCommand_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_cmvr_api_SetDexHandPositionsCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandPositionsCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_SetDexHandPositionsCommand_Request_descriptor =
      internal_static_cmvr_api_SetDexHandPositionsCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_SetDexHandPositionsCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandPositionsCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Values", });
    internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_descriptor =
      internal_static_cmvr_api_SetDexHandPositionsCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandPositionsCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_SetDexHandAnglesCommand_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_cmvr_api_SetDexHandAnglesCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandAnglesCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_SetDexHandAnglesCommand_Request_descriptor =
      internal_static_cmvr_api_SetDexHandAnglesCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_SetDexHandAnglesCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandAnglesCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Values", });
    internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_descriptor =
      internal_static_cmvr_api_SetDexHandAnglesCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandAnglesCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_SetDexHandForceCommand_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_cmvr_api_SetDexHandForceCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandForceCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_SetDexHandForceCommand_Request_descriptor =
      internal_static_cmvr_api_SetDexHandForceCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_SetDexHandForceCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandForceCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Values", });
    internal_static_cmvr_api_SetDexHandForceCommand_Feedback_descriptor =
      internal_static_cmvr_api_SetDexHandForceCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_SetDexHandForceCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandForceCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_SetDexHandSpeedCommand_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_cmvr_api_SetDexHandSpeedCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandSpeedCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_SetDexHandSpeedCommand_Request_descriptor =
      internal_static_cmvr_api_SetDexHandSpeedCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_SetDexHandSpeedCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandSpeedCommand_Request_descriptor,
        new java.lang.String[] { "Header", "Values", });
    internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_descriptor =
      internal_static_cmvr_api_SetDexHandSpeedCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandSpeedCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_SetDexHandPresetActCommand_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_cmvr_api_SetDexHandPresetActCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandPresetActCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_SetDexHandPresetActCommand_Request_descriptor =
      internal_static_cmvr_api_SetDexHandPresetActCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_SetDexHandPresetActCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandPresetActCommand_Request_descriptor,
        new java.lang.String[] { "Header", "PresetActId", });
    internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_descriptor =
      internal_static_cmvr_api_SetDexHandPresetActCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_SetDexHandPresetActCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_GetSensorDataCommand_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_cmvr_api_GetSensorDataCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetSensorDataCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_GetSensorDataCommand_Request_descriptor =
      internal_static_cmvr_api_GetSensorDataCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_GetSensorDataCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetSensorDataCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_GetSensorDataCommand_Feedback_descriptor =
      internal_static_cmvr_api_GetSensorDataCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_GetSensorDataCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetSensorDataCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Sensor", });
    internal_static_cmvr_api_GetSensorDataStreamCommand_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_cmvr_api_GetSensorDataStreamCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetSensorDataStreamCommand_descriptor,
        new java.lang.String[] { });
    internal_static_cmvr_api_GetSensorDataStreamCommand_Request_descriptor =
      internal_static_cmvr_api_GetSensorDataStreamCommand_descriptor.getNestedTypes().get(0);
    internal_static_cmvr_api_GetSensorDataStreamCommand_Request_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetSensorDataStreamCommand_Request_descriptor,
        new java.lang.String[] { "Header", });
    internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_descriptor =
      internal_static_cmvr_api_GetSensorDataStreamCommand_descriptor.getNestedTypes().get(1);
    internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_cmvr_api_GetSensorDataStreamCommand_Feedback_descriptor,
        new java.lang.String[] { "Header", "Sensor", });
    cmvr.api.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
