// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Global_Uconnect_Ext_PHEV.proto

package com.fca.uconnect.global;

public final class GlobalUconnectExtPHEV {
  private GlobalUconnectExtPHEV() {}
  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 ChargeNowRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeNowRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
     */
    int getChargeCommandValue();
    /**
     * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum getChargeCommand();
  }
  /**
   * <pre>
   **
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;PHEVData Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1497889690516
   * 		messageId: 1
   * 		messages {
   * 		[com.fca.uconnect.global.phevData]
   * 		{
   * 		 data: "&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000"
   * 		 commandMark: VEHICLE_LOGIN
   * 		 dataCollectionTimestamp: 1497889690516
   * 		}
   * 	  }
   *  &lt;/code&gt;
   * &lt;/div&gt;
   *&lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ChargeNowRequest}
   */
  public  static final class ChargeNowRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeNowRequest)
      ChargeNowRequestOrBuilder {
    // Use ChargeNowRequest.newBuilder() to construct.
    private ChargeNowRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChargeNowRequest() {
      chargeCommand_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ChargeNowRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              chargeCommand_ = rawValue;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum}
     */
    public enum ChargeCommandEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>START_CHARGE = 0;</code>
       */
      START_CHARGE(0),
      /**
       * <code>STOP_CHARGE = 1;</code>
       */
      STOP_CHARGE(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>START_CHARGE = 0;</code>
       */
      public static final int START_CHARGE_VALUE = 0;
      /**
       * <code>STOP_CHARGE = 1;</code>
       */
      public static final int STOP_CHARGE_VALUE = 1;


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

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

      public static ChargeCommandEnum forNumber(int value) {
        switch (value) {
          case 0: return START_CHARGE;
          case 1: return STOP_CHARGE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum)
    }

    public static final int CHARGECOMMAND_FIELD_NUMBER = 1;
    private int chargeCommand_;
    /**
     * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
     */
    public int getChargeCommandValue() {
      return chargeCommand_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum getChargeCommand() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum.valueOf(chargeCommand_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum.UNRECOGNIZED : result;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (chargeCommand_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum.START_CHARGE.getNumber()) {
        output.writeEnum(1, chargeCommand_);
      }
    }

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

      size = 0;
      if (chargeCommand_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum.START_CHARGE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, chargeCommand_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest) obj;

      boolean result = true;
      result = result && chargeCommand_ == other.chargeCommand_;
      return result;
    }

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

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     **
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;PHEVData Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1497889690516
     * 		messageId: 1
     * 		messages {
     * 		[com.fca.uconnect.global.phevData]
     * 		{
     * 		 data: "&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000&#92;000"
     * 		 commandMark: VEHICLE_LOGIN
     * 		 dataCollectionTimestamp: 1497889690516
     * 		}
     * 	  }
     *  &lt;/code&gt;
     * &lt;/div&gt;
     *&lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ChargeNowRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeNowRequest)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowRequest_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest(this);
        result.chargeCommand_ = chargeCommand_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.getDefaultInstance()) return this;
        if (other.chargeCommand_ != 0) {
          setChargeCommandValue(other.getChargeCommandValue());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int chargeCommand_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
       */
      public int getChargeCommandValue() {
        return chargeCommand_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
       */
      public Builder setChargeCommandValue(int value) {
        chargeCommand_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum getChargeCommand() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum.valueOf(chargeCommand_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
       */
      public Builder setChargeCommand(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest.ChargeCommandEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        chargeCommand_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;</code>
       */
      public Builder clearChargeCommand() {
        
        chargeCommand_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeNowRequest)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeNowRequest)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeNowResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeNowResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
     */
    int getResponseValue();
    /**
     * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum getResponse();

    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 3;</code>
     */
    boolean getIsTransient();

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 4;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.ChargeNowResponse}
   */
  public  static final class ChargeNowResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeNowResponse)
      ChargeNowResponseOrBuilder {
    // Use ChargeNowResponse.newBuilder() to construct.
    private ChargeNowResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChargeNowResponse() {
      response_ = 0;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ChargeNowResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 24: {

              isTransient_ = input.readBool();
              break;
            }
            case 32: {

              failureReasonCode_ = input.readInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

              response_ = rawValue;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeNowResponse.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; Vehicle Is Not Plugged in
       * </pre>
       *
       * <code>UNPLUGGED_FAILURE = 1;</code>
       */
      UNPLUGGED_FAILURE(1),
      /**
       * <pre>
       *&#47; General FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      FAILURE(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; Vehicle Is Not Plugged in
       * </pre>
       *
       * <code>UNPLUGGED_FAILURE = 1;</code>
       */
      public static final int UNPLUGGED_FAILURE_VALUE = 1;
      /**
       * <pre>
       *&#47; General FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      public static final int FAILURE_VALUE = 2;


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

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

      public static ResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return UNPLUGGED_FAILURE;
          case 2: return FAILURE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeNowResponse.ResponseEnum)
    }

    public static final int RESPONSE_FIELD_NUMBER = 5;
    private int response_;
    /**
     * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
     */
    public int getResponseValue() {
      return response_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum.UNRECOGNIZED : result;
    }

    public static final int ISTRANSIENT_FIELD_NUMBER = 3;
    private boolean isTransient_;
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>bool isTransient = 3;</code>
     */
    public boolean getIsTransient() {
      return isTransient_;
    }

    public static final int FAILUREREASONCODE_FIELD_NUMBER = 4;
    private int failureReasonCode_;
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>int32 failureReasonCode = 4;</code>
     */
    public int getFailureReasonCode() {
      return failureReasonCode_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (isTransient_ != false) {
        output.writeBool(3, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        output.writeInt32(4, failureReasonCode_);
      }
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(5, response_);
      }
    }

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

      size = 0;
      if (isTransient_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isTransient_);
      }
      if (failureReasonCode_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, failureReasonCode_);
      }
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, response_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse) obj;

      boolean result = true;
      result = result && response_ == other.response_;
      result = result && (getIsTransient()
          == other.getIsTransient());
      result = result && (getFailureReasonCode()
          == other.getFailureReasonCode());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
      hash = (53 * hash) + response_;
      hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTransient());
      hash = (37 * hash) + FAILUREREASONCODE_FIELD_NUMBER;
      hash = (53 * hash) + getFailureReasonCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ChargeNowResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeNowResponse)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        isTransient_ = false;

        failureReasonCode_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeNowResponse_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse(this);
        result.response_ = response_;
        result.isTransient_ = isTransient_;
        result.failureReasonCode_ = failureReasonCode_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.getDefaultInstance()) return this;
        if (other.response_ != 0) {
          setResponseValue(other.getResponseValue());
        }
        if (other.getIsTransient() != false) {
          setIsTransient(other.getIsTransient());
        }
        if (other.getFailureReasonCode() != 0) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int response_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
       */
      public int getResponseValue() {
        return response_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
       */
      public Builder setResponseValue(int value) {
        response_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;</code>
       */
      public Builder clearResponse() {
        
        response_ = 0;
        onChanged();
        return this;
      }

      private boolean isTransient_ ;
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public boolean getIsTransient() {
        return isTransient_;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public Builder setIsTransient(boolean value) {
        
        isTransient_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Indicates a transient error and a retry can be attempted.
       * </pre>
       *
       * <code>bool isTransient = 3;</code>
       */
      public Builder clearIsTransient() {
        
        isTransient_ = false;
        onChanged();
        return this;
      }

      private int failureReasonCode_ ;
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public int getFailureReasonCode() {
        return failureReasonCode_;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public Builder setFailureReasonCode(int value) {
        
        failureReasonCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Specific error code.
       * </pre>
       *
       * <code>int32 failureReasonCode = 4;</code>
       */
      public Builder clearFailureReasonCode() {
        
        failureReasonCode_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeNowResponse)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeNowResponse)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeNowResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeDataRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeDataRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   *&#47;	bytes serviceRequestID = 1;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ChargeDataRequest}
   */
  public  static final class ChargeDataRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeDataRequest)
      ChargeDataRequestOrBuilder {
    // Use ChargeDataRequest.newBuilder() to construct.
    private ChargeDataRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChargeDataRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ChargeDataRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest.Builder.class);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
    }

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

      size = 0;
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest) obj;

      boolean result = true;
      return result;
    }

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

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *&#47;	bytes serviceRequestID = 1;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ChargeDataRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeDataRequest)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataRequest_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest(this);
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest.getDefaultInstance()) return this;
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeDataRequest)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeDataRequest)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeDataPublishOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeDataPublish)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; High voltage battery level in percent
     * </pre>
     *
     * <code>float BatteryLevel = 8;</code>
     */
    float getBatteryLevel();

    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
     */
    int getEventTriggerValue();
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum getEventTrigger();

    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
     */
    boolean hasPlugStatus();
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus getPlugStatus();
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatusOrBuilder getPlugStatusOrBuilder();

    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
     */
    boolean hasRangeEstimates();
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range getRangeEstimates();
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.RangeOrBuilder getRangeEstimatesOrBuilder();

    /**
     * <pre>
     *&#47; actual reported value of the ChargeSysStat can signal
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
     */
    int getChargeStatusValue();
    /**
     * <pre>
     *&#47; actual reported value of the ChargeSysStat can signal
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum getChargeStatus();

    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> 
        getChargeSchedulesList();
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getChargeSchedules(int index);
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    int getChargeSchedulesCount();
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> 
        getChargeSchedulesOrBuilderList();
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder getChargeSchedulesOrBuilder(
        int index);

    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> 
        getChargeSchedulesV2List();
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getChargeSchedulesV2(int index);
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    int getChargeSchedulesV2Count();
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> 
        getChargeSchedulesV2OrBuilderList();
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder getChargeSchedulesV2OrBuilder(
        int index);

    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
     */
    int getResponseValue();
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum getResponse();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.ChargeDataPublish}
   */
  public  static final class ChargeDataPublish extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeDataPublish)
      ChargeDataPublishOrBuilder {
    // Use ChargeDataPublish.newBuilder() to construct.
    private ChargeDataPublish(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChargeDataPublish() {
      batteryLevel_ = 0F;
      eventTrigger_ = 0;
      chargeStatus_ = 0;
      chargeSchedules_ = java.util.Collections.emptyList();
      chargeSchedulesV2_ = java.util.Collections.emptyList();
      response_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ChargeDataPublish(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              eventTrigger_ = rawValue;
              break;
            }
            case 18: {
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.Builder subBuilder = null;
              if (plugStatus_ != null) {
                subBuilder = plugStatus_.toBuilder();
              }
              plugStatus_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(plugStatus_);
                plugStatus_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.Builder subBuilder = null;
              if (rangeEstimates_ != null) {
                subBuilder = rangeEstimates_.toBuilder();
              }
              rangeEstimates_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(rangeEstimates_);
                rangeEstimates_ = subBuilder.buildPartial();
              }

              break;
            }
            case 32: {
              int rawValue = input.readEnum();

              chargeStatus_ = rawValue;
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                chargeSchedules_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule>();
                mutable_bitField0_ |= 0x00000020;
              }
              chargeSchedules_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.parser(), extensionRegistry));
              break;
            }
            case 69: {

              batteryLevel_ = input.readFloat();
              break;
            }
            case 72: {
              int rawValue = input.readEnum();

              response_ = rawValue;
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                chargeSchedulesV2_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2>();
                mutable_bitField0_ |= 0x00000040;
              }
              chargeSchedulesV2_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          chargeSchedules_ = java.util.Collections.unmodifiableList(chargeSchedules_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          chargeSchedulesV2_ = java.util.Collections.unmodifiableList(chargeSchedulesV2_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeDataPublish.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; Vehicle Is Not Plugged in
       * </pre>
       *
       * <code>UNPLUGGED_FAILURE = 1;</code>
       */
      UNPLUGGED_FAILURE(1),
      /**
       * <pre>
       *&#47; General FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      FAILURE(2),
      /**
       * <code>VEHICLE_DATA_NOT_AVAILABLE = 3;</code>
       */
      VEHICLE_DATA_NOT_AVAILABLE(3),
      UNRECOGNIZED(-1),
      ;

      /**
       * <pre>
       *&#47; Success
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; Vehicle Is Not Plugged in
       * </pre>
       *
       * <code>UNPLUGGED_FAILURE = 1;</code>
       */
      public static final int UNPLUGGED_FAILURE_VALUE = 1;
      /**
       * <pre>
       *&#47; General FAILURE
       * </pre>
       *
       * <code>FAILURE = 2;</code>
       */
      public static final int FAILURE_VALUE = 2;
      /**
       * <code>VEHICLE_DATA_NOT_AVAILABLE = 3;</code>
       */
      public static final int VEHICLE_DATA_NOT_AVAILABLE_VALUE = 3;


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

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

      public static ResponseEnum forNumber(int value) {
        switch (value) {
          case 0: return SUCCESS;
          case 1: return UNPLUGGED_FAILURE;
          case 2: return FAILURE;
          case 3: return VEHICLE_DATA_NOT_AVAILABLE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeDataPublish.ResponseEnum)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum}
     */
    public enum ChargeStatusEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NOT_CHARGING = 0;</code>
       */
      NOT_CHARGING(0),
      /**
       * <code>CHARGING = 1;</code>
       */
      CHARGING(1),
      /**
       * <code>CHARGE_INTERRUPT = 2;</code>
       */
      CHARGE_INTERRUPT(2),
      /**
       * <code>CHARGE_FAULT = 3;</code>
       */
      CHARGE_FAULT(3),
      /**
       * <code>CHARGE_COMPLETE = 4;</code>
       */
      CHARGE_COMPLETE(4),
      /**
       * <code>SNA = 5;</code>
       */
      SNA(5),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NOT_CHARGING = 0;</code>
       */
      public static final int NOT_CHARGING_VALUE = 0;
      /**
       * <code>CHARGING = 1;</code>
       */
      public static final int CHARGING_VALUE = 1;
      /**
       * <code>CHARGE_INTERRUPT = 2;</code>
       */
      public static final int CHARGE_INTERRUPT_VALUE = 2;
      /**
       * <code>CHARGE_FAULT = 3;</code>
       */
      public static final int CHARGE_FAULT_VALUE = 3;
      /**
       * <code>CHARGE_COMPLETE = 4;</code>
       */
      public static final int CHARGE_COMPLETE_VALUE = 4;
      /**
       * <code>SNA = 5;</code>
       */
      public static final int SNA_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;
      }

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

      public static ChargeStatusEnum forNumber(int value) {
        switch (value) {
          case 0: return NOT_CHARGING;
          case 1: return CHARGING;
          case 2: return CHARGE_INTERRUPT;
          case 3: return CHARGE_FAULT;
          case 4: return CHARGE_COMPLETE;
          case 5: return SNA;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.getDescriptor().getEnumTypes().get(1);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum}
     */
    public enum PublishEventEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>IGNITION_ON = 0;</code>
       */
      IGNITION_ON(0),
      /**
       * <code>IGNITION_OFF = 1;</code>
       */
      IGNITION_OFF(1),
      /**
       * <code>PLUGGED_IN = 2;</code>
       */
      PLUGGED_IN(2),
      /**
       * <code>UNPLUGGED = 3;</code>
       */
      UNPLUGGED(3),
      /**
       * <code>CHARGE_START = 4;</code>
       */
      CHARGE_START(4),
      /**
       * <code>CHARGE_COMPLETED = 5;</code>
       */
      CHARGE_COMPLETED(5),
      /**
       * <code>CHARGE_INTERRUPTED = 6;</code>
       */
      CHARGE_INTERRUPTED(6),
      /**
       * <code>CHARGE_FAULTED = 7;</code>
       */
      CHARGE_FAULTED(7),
      /**
       * <code>ON_DEMAND = 8;</code>
       */
      ON_DEMAND(8),
      /**
       * <code>CHARGE_SCHEDULE = 9;</code>
       */
      CHARGE_SCHEDULE(9),
      /**
       * <code>POWER_PREFERENCE = 10;</code>
       */
      POWER_PREFERENCE(10),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>IGNITION_ON = 0;</code>
       */
      public static final int IGNITION_ON_VALUE = 0;
      /**
       * <code>IGNITION_OFF = 1;</code>
       */
      public static final int IGNITION_OFF_VALUE = 1;
      /**
       * <code>PLUGGED_IN = 2;</code>
       */
      public static final int PLUGGED_IN_VALUE = 2;
      /**
       * <code>UNPLUGGED = 3;</code>
       */
      public static final int UNPLUGGED_VALUE = 3;
      /**
       * <code>CHARGE_START = 4;</code>
       */
      public static final int CHARGE_START_VALUE = 4;
      /**
       * <code>CHARGE_COMPLETED = 5;</code>
       */
      public static final int CHARGE_COMPLETED_VALUE = 5;
      /**
       * <code>CHARGE_INTERRUPTED = 6;</code>
       */
      public static final int CHARGE_INTERRUPTED_VALUE = 6;
      /**
       * <code>CHARGE_FAULTED = 7;</code>
       */
      public static final int CHARGE_FAULTED_VALUE = 7;
      /**
       * <code>ON_DEMAND = 8;</code>
       */
      public static final int ON_DEMAND_VALUE = 8;
      /**
       * <code>CHARGE_SCHEDULE = 9;</code>
       */
      public static final int CHARGE_SCHEDULE_VALUE = 9;
      /**
       * <code>POWER_PREFERENCE = 10;</code>
       */
      public static final int POWER_PREFERENCE_VALUE = 10;


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

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

      public static PublishEventEnum forNumber(int value) {
        switch (value) {
          case 0: return IGNITION_ON;
          case 1: return IGNITION_OFF;
          case 2: return PLUGGED_IN;
          case 3: return UNPLUGGED;
          case 4: return CHARGE_START;
          case 5: return CHARGE_COMPLETED;
          case 6: return CHARGE_INTERRUPTED;
          case 7: return CHARGE_FAULTED;
          case 8: return ON_DEMAND;
          case 9: return CHARGE_SCHEDULE;
          case 10: return POWER_PREFERENCE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.getDescriptor().getEnumTypes().get(2);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeDataPublish.VoltageEnum}
     */
    public enum VoltageEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>DEFAULT = 0;</code>
       */
      DEFAULT(0),
      /**
       * <pre>
       * Not expected to be used for China market
       * </pre>
       *
       * <code>LEVEL_1 = 1;</code>
       */
      LEVEL_1(1),
      /**
       * <code>LEVEL_2 = 2;</code>
       */
      LEVEL_2(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>DEFAULT = 0;</code>
       */
      public static final int DEFAULT_VALUE = 0;
      /**
       * <pre>
       * Not expected to be used for China market
       * </pre>
       *
       * <code>LEVEL_1 = 1;</code>
       */
      public static final int LEVEL_1_VALUE = 1;
      /**
       * <code>LEVEL_2 = 2;</code>
       */
      public static final int LEVEL_2_VALUE = 2;


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

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

      public static VoltageEnum forNumber(int value) {
        switch (value) {
          case 0: return DEFAULT;
          case 1: return LEVEL_1;
          case 2: return LEVEL_2;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.getDescriptor().getEnumTypes().get(3);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeDataPublish.VoltageEnum)
    }

    public interface RangeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeDataPublish.Range)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; This is the estimated electric Range
       * </pre>
       *
       * <code>int32 estimatedRange = 1;</code>
       */
      int getEstimatedRange();

      /**
       * <pre>
       *&#47; TotalRange is the Hybrid Range including fuel
       * </pre>
       *
       * <code>int32 totalRange = 2;</code>
       */
      int getTotalRange();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ChargeDataPublish.Range}
     */
    public  static final class Range extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeDataPublish.Range)
        RangeOrBuilder {
      // Use Range.newBuilder() to construct.
      private Range(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Range() {
        estimatedRange_ = 0;
        totalRange_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private Range(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

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

                totalRange_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.Builder.class);
      }

      public static final int ESTIMATEDRANGE_FIELD_NUMBER = 1;
      private int estimatedRange_;
      /**
       * <pre>
       *&#47; This is the estimated electric Range
       * </pre>
       *
       * <code>int32 estimatedRange = 1;</code>
       */
      public int getEstimatedRange() {
        return estimatedRange_;
      }

      public static final int TOTALRANGE_FIELD_NUMBER = 2;
      private int totalRange_;
      /**
       * <pre>
       *&#47; TotalRange is the Hybrid Range including fuel
       * </pre>
       *
       * <code>int32 totalRange = 2;</code>
       */
      public int getTotalRange() {
        return totalRange_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

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

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

        size = 0;
        if (estimatedRange_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, estimatedRange_);
        }
        if (totalRange_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, totalRange_);
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range) obj;

        boolean result = true;
        result = result && (getEstimatedRange()
            == other.getEstimatedRange());
        result = result && (getTotalRange()
            == other.getTotalRange());
        return result;
      }

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

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

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.ChargeDataPublish.Range}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeDataPublish.Range)
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.RangeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

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

          totalRange_ = 0;

          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_descriptor;
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.getDefaultInstance();
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range build() {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range(this);
          result.estimatedRange_ = estimatedRange_;
          result.totalRange_ = totalRange_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.getDefaultInstance()) return this;
          if (other.getEstimatedRange() != 0) {
            setEstimatedRange(other.getEstimatedRange());
          }
          if (other.getTotalRange() != 0) {
            setTotalRange(other.getTotalRange());
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private int estimatedRange_ ;
        /**
         * <pre>
         *&#47; This is the estimated electric Range
         * </pre>
         *
         * <code>int32 estimatedRange = 1;</code>
         */
        public int getEstimatedRange() {
          return estimatedRange_;
        }
        /**
         * <pre>
         *&#47; This is the estimated electric Range
         * </pre>
         *
         * <code>int32 estimatedRange = 1;</code>
         */
        public Builder setEstimatedRange(int value) {
          
          estimatedRange_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; This is the estimated electric Range
         * </pre>
         *
         * <code>int32 estimatedRange = 1;</code>
         */
        public Builder clearEstimatedRange() {
          
          estimatedRange_ = 0;
          onChanged();
          return this;
        }

        private int totalRange_ ;
        /**
         * <pre>
         *&#47; TotalRange is the Hybrid Range including fuel
         * </pre>
         *
         * <code>int32 totalRange = 2;</code>
         */
        public int getTotalRange() {
          return totalRange_;
        }
        /**
         * <pre>
         *&#47; TotalRange is the Hybrid Range including fuel
         * </pre>
         *
         * <code>int32 totalRange = 2;</code>
         */
        public Builder setTotalRange(int value) {
          
          totalRange_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; TotalRange is the Hybrid Range including fuel
         * </pre>
         *
         * <code>int32 totalRange = 2;</code>
         */
        public Builder clearTotalRange() {
          
          totalRange_ = 0;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


        // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeDataPublish.Range)
      }

      // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeDataPublish.Range)
      private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range();
      }

      public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface PlugStatusOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>bool isPluggedIn = 1;</code>
       */
      boolean getIsPluggedIn();

      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
       */
      boolean hasChargeLevel();
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel getChargeLevel();
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevelOrBuilder getChargeLevelOrBuilder();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ChargeDataPublish.PlugStatus}
     */
    public  static final class PlugStatus extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
        PlugStatusOrBuilder {
      // Use PlugStatus.newBuilder() to construct.
      private PlugStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PlugStatus() {
        isPluggedIn_ = false;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private PlugStatus(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 8: {

                isPluggedIn_ = input.readBool();
                break;
              }
              case 18: {
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.Builder subBuilder = null;
                if (chargeLevel_ != null) {
                  subBuilder = chargeLevel_.toBuilder();
                }
                chargeLevel_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(chargeLevel_);
                  chargeLevel_ = subBuilder.buildPartial();
                }

                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.Builder.class);
      }

      public static final int ISPLUGGEDIN_FIELD_NUMBER = 1;
      private boolean isPluggedIn_;
      /**
       * <code>bool isPluggedIn = 1;</code>
       */
      public boolean getIsPluggedIn() {
        return isPluggedIn_;
      }

      public static final int CHARGELEVEL_FIELD_NUMBER = 2;
      private com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel chargeLevel_;
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
       */
      public boolean hasChargeLevel() {
        return chargeLevel_ != null;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel getChargeLevel() {
        return chargeLevel_ == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.getDefaultInstance() : chargeLevel_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevelOrBuilder getChargeLevelOrBuilder() {
        return getChargeLevel();
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (isPluggedIn_ != false) {
          output.writeBool(1, isPluggedIn_);
        }
        if (chargeLevel_ != null) {
          output.writeMessage(2, getChargeLevel());
        }
      }

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

        size = 0;
        if (isPluggedIn_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, isPluggedIn_);
        }
        if (chargeLevel_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getChargeLevel());
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus) obj;

        boolean result = true;
        result = result && (getIsPluggedIn()
            == other.getIsPluggedIn());
        result = result && (hasChargeLevel() == other.hasChargeLevel());
        if (hasChargeLevel()) {
          result = result && getChargeLevel()
              .equals(other.getChargeLevel());
        }
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + ISPLUGGEDIN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsPluggedIn());
        if (hasChargeLevel()) {
          hash = (37 * hash) + CHARGELEVEL_FIELD_NUMBER;
          hash = (53 * hash) + getChargeLevel().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.ChargeDataPublish.PlugStatus}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatusOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

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

          if (chargeLevelBuilder_ == null) {
            chargeLevel_ = null;
          } else {
            chargeLevel_ = null;
            chargeLevelBuilder_ = null;
          }
          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_descriptor;
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.getDefaultInstance();
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus build() {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus(this);
          result.isPluggedIn_ = isPluggedIn_;
          if (chargeLevelBuilder_ == null) {
            result.chargeLevel_ = chargeLevel_;
          } else {
            result.chargeLevel_ = chargeLevelBuilder_.build();
          }
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.getDefaultInstance()) return this;
          if (other.getIsPluggedIn() != false) {
            setIsPluggedIn(other.getIsPluggedIn());
          }
          if (other.hasChargeLevel()) {
            mergeChargeLevel(other.getChargeLevel());
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private boolean isPluggedIn_ ;
        /**
         * <code>bool isPluggedIn = 1;</code>
         */
        public boolean getIsPluggedIn() {
          return isPluggedIn_;
        }
        /**
         * <code>bool isPluggedIn = 1;</code>
         */
        public Builder setIsPluggedIn(boolean value) {
          
          isPluggedIn_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bool isPluggedIn = 1;</code>
         */
        public Builder clearIsPluggedIn() {
          
          isPluggedIn_ = false;
          onChanged();
          return this;
        }

        private com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel chargeLevel_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevelOrBuilder> chargeLevelBuilder_;
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        public boolean hasChargeLevel() {
          return chargeLevelBuilder_ != null || chargeLevel_ != null;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel getChargeLevel() {
          if (chargeLevelBuilder_ == null) {
            return chargeLevel_ == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.getDefaultInstance() : chargeLevel_;
          } else {
            return chargeLevelBuilder_.getMessage();
          }
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        public Builder setChargeLevel(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel value) {
          if (chargeLevelBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            chargeLevel_ = value;
            onChanged();
          } else {
            chargeLevelBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        public Builder setChargeLevel(
            com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.Builder builderForValue) {
          if (chargeLevelBuilder_ == null) {
            chargeLevel_ = builderForValue.build();
            onChanged();
          } else {
            chargeLevelBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        public Builder mergeChargeLevel(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel value) {
          if (chargeLevelBuilder_ == null) {
            if (chargeLevel_ != null) {
              chargeLevel_ =
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.newBuilder(chargeLevel_).mergeFrom(value).buildPartial();
            } else {
              chargeLevel_ = value;
            }
            onChanged();
          } else {
            chargeLevelBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        public Builder clearChargeLevel() {
          if (chargeLevelBuilder_ == null) {
            chargeLevel_ = null;
            onChanged();
          } else {
            chargeLevel_ = null;
            chargeLevelBuilder_ = null;
          }

          return this;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.Builder getChargeLevelBuilder() {
          
          onChanged();
          return getChargeLevelFieldBuilder().getBuilder();
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevelOrBuilder getChargeLevelOrBuilder() {
          if (chargeLevelBuilder_ != null) {
            return chargeLevelBuilder_.getMessageOrBuilder();
          } else {
            return chargeLevel_ == null ?
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.getDefaultInstance() : chargeLevel_;
          }
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevelOrBuilder> 
            getChargeLevelFieldBuilder() {
          if (chargeLevelBuilder_ == null) {
            chargeLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevelOrBuilder>(
                    getChargeLevel(),
                    getParentForChildren(),
                    isClean());
            chargeLevel_ = null;
          }
          return chargeLevelBuilder_;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


        // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
      }

      // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
      private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus();
      }

      public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ChargeLevelOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
       */
      int getChargeLevelValue();
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum getChargeLevel();

      /**
       * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
       */
      java.lang.String getEstimatedTimeToChargeLEV1();
      /**
       * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
       */
      com.google.protobuf.ByteString
          getEstimatedTimeToChargeLEV1Bytes();

      /**
       * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
       */
      java.lang.String getEstimatedTimeToChargeLEV2();
      /**
       * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
       */
      com.google.protobuf.ByteString
          getEstimatedTimeToChargeLEV2Bytes();

      /**
       * <code>int32 Int_EstimatedTimeToCharge_LEV1 = 5;</code>
       */
      int getIntEstimatedTimeToChargeLEV1();

      /**
       * <code>int32 Int_EstimatedTimeToCharge_LEV2 = 6;</code>
       */
      int getIntEstimatedTimeToChargeLEV2();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ChargeDataPublish.ChargeLevel}
     */
    public  static final class ChargeLevel extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
        ChargeLevelOrBuilder {
      // Use ChargeLevel.newBuilder() to construct.
      private ChargeLevel(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ChargeLevel() {
        chargeLevel_ = 0;
        estimatedTimeToChargeLEV1_ = "";
        estimatedTimeToChargeLEV2_ = "";
        intEstimatedTimeToChargeLEV1_ = 0;
        intEstimatedTimeToChargeLEV2_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
      }
      private ChargeLevel(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!input.skipField(tag)) {
                  done = true;
                }
                break;
              }
              case 16: {
                int rawValue = input.readEnum();

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

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

                estimatedTimeToChargeLEV2_ = s;
                break;
              }
              case 40: {

                intEstimatedTimeToChargeLEV1_ = input.readInt32();
                break;
              }
              case 48: {

                intEstimatedTimeToChargeLEV2_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.Builder.class);
      }

      public static final int CHARGELEVEL_FIELD_NUMBER = 2;
      private int chargeLevel_;
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
       */
      public int getChargeLevelValue() {
        return chargeLevel_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum getChargeLevel() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum.valueOf(chargeLevel_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum.UNRECOGNIZED : result;
      }

      public static final int ESTIMATEDTIMETOCHARGE_LEV1_FIELD_NUMBER = 3;
      private volatile java.lang.Object estimatedTimeToChargeLEV1_;
      /**
       * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
       */
      public java.lang.String getEstimatedTimeToChargeLEV1() {
        java.lang.Object ref = estimatedTimeToChargeLEV1_;
        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();
          estimatedTimeToChargeLEV1_ = s;
          return s;
        }
      }
      /**
       * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
       */
      public com.google.protobuf.ByteString
          getEstimatedTimeToChargeLEV1Bytes() {
        java.lang.Object ref = estimatedTimeToChargeLEV1_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          estimatedTimeToChargeLEV1_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int ESTIMATEDTIMETOCHARGE_LEV2_FIELD_NUMBER = 4;
      private volatile java.lang.Object estimatedTimeToChargeLEV2_;
      /**
       * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
       */
      public java.lang.String getEstimatedTimeToChargeLEV2() {
        java.lang.Object ref = estimatedTimeToChargeLEV2_;
        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();
          estimatedTimeToChargeLEV2_ = s;
          return s;
        }
      }
      /**
       * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
       */
      public com.google.protobuf.ByteString
          getEstimatedTimeToChargeLEV2Bytes() {
        java.lang.Object ref = estimatedTimeToChargeLEV2_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          estimatedTimeToChargeLEV2_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int INT_ESTIMATEDTIMETOCHARGE_LEV1_FIELD_NUMBER = 5;
      private int intEstimatedTimeToChargeLEV1_;
      /**
       * <code>int32 Int_EstimatedTimeToCharge_LEV1 = 5;</code>
       */
      public int getIntEstimatedTimeToChargeLEV1() {
        return intEstimatedTimeToChargeLEV1_;
      }

      public static final int INT_ESTIMATEDTIMETOCHARGE_LEV2_FIELD_NUMBER = 6;
      private int intEstimatedTimeToChargeLEV2_;
      /**
       * <code>int32 Int_EstimatedTimeToCharge_LEV2 = 6;</code>
       */
      public int getIntEstimatedTimeToChargeLEV2() {
        return intEstimatedTimeToChargeLEV2_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (chargeLevel_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum.DEFAULT.getNumber()) {
          output.writeEnum(2, chargeLevel_);
        }
        if (!getEstimatedTimeToChargeLEV1Bytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, estimatedTimeToChargeLEV1_);
        }
        if (!getEstimatedTimeToChargeLEV2Bytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, estimatedTimeToChargeLEV2_);
        }
        if (intEstimatedTimeToChargeLEV1_ != 0) {
          output.writeInt32(5, intEstimatedTimeToChargeLEV1_);
        }
        if (intEstimatedTimeToChargeLEV2_ != 0) {
          output.writeInt32(6, intEstimatedTimeToChargeLEV2_);
        }
      }

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

        size = 0;
        if (chargeLevel_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum.DEFAULT.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, chargeLevel_);
        }
        if (!getEstimatedTimeToChargeLEV1Bytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, estimatedTimeToChargeLEV1_);
        }
        if (!getEstimatedTimeToChargeLEV2Bytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, estimatedTimeToChargeLEV2_);
        }
        if (intEstimatedTimeToChargeLEV1_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(5, intEstimatedTimeToChargeLEV1_);
        }
        if (intEstimatedTimeToChargeLEV2_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(6, intEstimatedTimeToChargeLEV2_);
        }
        memoizedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel) obj;

        boolean result = true;
        result = result && chargeLevel_ == other.chargeLevel_;
        result = result && getEstimatedTimeToChargeLEV1()
            .equals(other.getEstimatedTimeToChargeLEV1());
        result = result && getEstimatedTimeToChargeLEV2()
            .equals(other.getEstimatedTimeToChargeLEV2());
        result = result && (getIntEstimatedTimeToChargeLEV1()
            == other.getIntEstimatedTimeToChargeLEV1());
        result = result && (getIntEstimatedTimeToChargeLEV2()
            == other.getIntEstimatedTimeToChargeLEV2());
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + CHARGELEVEL_FIELD_NUMBER;
        hash = (53 * hash) + chargeLevel_;
        hash = (37 * hash) + ESTIMATEDTIMETOCHARGE_LEV1_FIELD_NUMBER;
        hash = (53 * hash) + getEstimatedTimeToChargeLEV1().hashCode();
        hash = (37 * hash) + ESTIMATEDTIMETOCHARGE_LEV2_FIELD_NUMBER;
        hash = (53 * hash) + getEstimatedTimeToChargeLEV2().hashCode();
        hash = (37 * hash) + INT_ESTIMATEDTIMETOCHARGE_LEV1_FIELD_NUMBER;
        hash = (53 * hash) + getIntEstimatedTimeToChargeLEV1();
        hash = (37 * hash) + INT_ESTIMATEDTIMETOCHARGE_LEV2_FIELD_NUMBER;
        hash = (53 * hash) + getIntEstimatedTimeToChargeLEV2();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

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

      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.ChargeDataPublish.ChargeLevel}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevelOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

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

          estimatedTimeToChargeLEV1_ = "";

          estimatedTimeToChargeLEV2_ = "";

          intEstimatedTimeToChargeLEV1_ = 0;

          intEstimatedTimeToChargeLEV2_ = 0;

          return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_descriptor;
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.getDefaultInstance();
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel build() {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel(this);
          result.chargeLevel_ = chargeLevel_;
          result.estimatedTimeToChargeLEV1_ = estimatedTimeToChargeLEV1_;
          result.estimatedTimeToChargeLEV2_ = estimatedTimeToChargeLEV2_;
          result.intEstimatedTimeToChargeLEV1_ = intEstimatedTimeToChargeLEV1_;
          result.intEstimatedTimeToChargeLEV2_ = intEstimatedTimeToChargeLEV2_;
          onBuilt();
          return result;
        }

        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel.getDefaultInstance()) return this;
          if (other.chargeLevel_ != 0) {
            setChargeLevelValue(other.getChargeLevelValue());
          }
          if (!other.getEstimatedTimeToChargeLEV1().isEmpty()) {
            estimatedTimeToChargeLEV1_ = other.estimatedTimeToChargeLEV1_;
            onChanged();
          }
          if (!other.getEstimatedTimeToChargeLEV2().isEmpty()) {
            estimatedTimeToChargeLEV2_ = other.estimatedTimeToChargeLEV2_;
            onChanged();
          }
          if (other.getIntEstimatedTimeToChargeLEV1() != 0) {
            setIntEstimatedTimeToChargeLEV1(other.getIntEstimatedTimeToChargeLEV1());
          }
          if (other.getIntEstimatedTimeToChargeLEV2() != 0) {
            setIntEstimatedTimeToChargeLEV2(other.getIntEstimatedTimeToChargeLEV2());
          }
          onChanged();
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private int chargeLevel_ = 0;
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
         */
        public int getChargeLevelValue() {
          return chargeLevel_;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
         */
        public Builder setChargeLevelValue(int value) {
          chargeLevel_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum getChargeLevel() {
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum.valueOf(chargeLevel_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum.UNRECOGNIZED : result;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
         */
        public Builder setChargeLevel(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.VoltageEnum value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          chargeLevel_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>.com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;</code>
         */
        public Builder clearChargeLevel() {
          
          chargeLevel_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object estimatedTimeToChargeLEV1_ = "";
        /**
         * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
         */
        public java.lang.String getEstimatedTimeToChargeLEV1() {
          java.lang.Object ref = estimatedTimeToChargeLEV1_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            estimatedTimeToChargeLEV1_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
         */
        public com.google.protobuf.ByteString
            getEstimatedTimeToChargeLEV1Bytes() {
          java.lang.Object ref = estimatedTimeToChargeLEV1_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            estimatedTimeToChargeLEV1_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
         */
        public Builder setEstimatedTimeToChargeLEV1(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          estimatedTimeToChargeLEV1_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
         */
        public Builder clearEstimatedTimeToChargeLEV1() {
          
          estimatedTimeToChargeLEV1_ = getDefaultInstance().getEstimatedTimeToChargeLEV1();
          onChanged();
          return this;
        }
        /**
         * <code>string EstimatedTimeToCharge_LEV1 = 3;</code>
         */
        public Builder setEstimatedTimeToChargeLEV1Bytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          estimatedTimeToChargeLEV1_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object estimatedTimeToChargeLEV2_ = "";
        /**
         * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
         */
        public java.lang.String getEstimatedTimeToChargeLEV2() {
          java.lang.Object ref = estimatedTimeToChargeLEV2_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            estimatedTimeToChargeLEV2_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
         */
        public com.google.protobuf.ByteString
            getEstimatedTimeToChargeLEV2Bytes() {
          java.lang.Object ref = estimatedTimeToChargeLEV2_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            estimatedTimeToChargeLEV2_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
         */
        public Builder setEstimatedTimeToChargeLEV2(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          estimatedTimeToChargeLEV2_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
         */
        public Builder clearEstimatedTimeToChargeLEV2() {
          
          estimatedTimeToChargeLEV2_ = getDefaultInstance().getEstimatedTimeToChargeLEV2();
          onChanged();
          return this;
        }
        /**
         * <code>string EstimatedTimeToCharge_LEV2 = 4;</code>
         */
        public Builder setEstimatedTimeToChargeLEV2Bytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          estimatedTimeToChargeLEV2_ = value;
          onChanged();
          return this;
        }

        private int intEstimatedTimeToChargeLEV1_ ;
        /**
         * <code>int32 Int_EstimatedTimeToCharge_LEV1 = 5;</code>
         */
        public int getIntEstimatedTimeToChargeLEV1() {
          return intEstimatedTimeToChargeLEV1_;
        }
        /**
         * <code>int32 Int_EstimatedTimeToCharge_LEV1 = 5;</code>
         */
        public Builder setIntEstimatedTimeToChargeLEV1(int value) {
          
          intEstimatedTimeToChargeLEV1_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 Int_EstimatedTimeToCharge_LEV1 = 5;</code>
         */
        public Builder clearIntEstimatedTimeToChargeLEV1() {
          
          intEstimatedTimeToChargeLEV1_ = 0;
          onChanged();
          return this;
        }

        private int intEstimatedTimeToChargeLEV2_ ;
        /**
         * <code>int32 Int_EstimatedTimeToCharge_LEV2 = 6;</code>
         */
        public int getIntEstimatedTimeToChargeLEV2() {
          return intEstimatedTimeToChargeLEV2_;
        }
        /**
         * <code>int32 Int_EstimatedTimeToCharge_LEV2 = 6;</code>
         */
        public Builder setIntEstimatedTimeToChargeLEV2(int value) {
          
          intEstimatedTimeToChargeLEV2_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 Int_EstimatedTimeToCharge_LEV2 = 6;</code>
         */
        public Builder clearIntEstimatedTimeToChargeLEV2() {
          
          intEstimatedTimeToChargeLEV2_ = 0;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return this;
        }

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


        // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
      }

      // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
      private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel();
      }

      public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeLevel getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int BATTERYLEVEL_FIELD_NUMBER = 8;
    private float batteryLevel_;
    /**
     * <pre>
     *&#47; High voltage battery level in percent
     * </pre>
     *
     * <code>float BatteryLevel = 8;</code>
     */
    public float getBatteryLevel() {
      return batteryLevel_;
    }

    public static final int EVENTTRIGGER_FIELD_NUMBER = 1;
    private int eventTrigger_;
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
     */
    public int getEventTriggerValue() {
      return eventTrigger_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum getEventTrigger() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum.valueOf(eventTrigger_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum.UNRECOGNIZED : result;
    }

    public static final int PLUGSTATUS_FIELD_NUMBER = 2;
    private com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus plugStatus_;
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
     */
    public boolean hasPlugStatus() {
      return plugStatus_ != null;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus getPlugStatus() {
      return plugStatus_ == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.getDefaultInstance() : plugStatus_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatusOrBuilder getPlugStatusOrBuilder() {
      return getPlugStatus();
    }

    public static final int RANGEESTIMATES_FIELD_NUMBER = 3;
    private com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range rangeEstimates_;
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
     */
    public boolean hasRangeEstimates() {
      return rangeEstimates_ != null;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range getRangeEstimates() {
      return rangeEstimates_ == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.getDefaultInstance() : rangeEstimates_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.RangeOrBuilder getRangeEstimatesOrBuilder() {
      return getRangeEstimates();
    }

    public static final int CHARGESTATUS_FIELD_NUMBER = 4;
    private int chargeStatus_;
    /**
     * <pre>
     *&#47; actual reported value of the ChargeSysStat can signal
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
     */
    public int getChargeStatusValue() {
      return chargeStatus_;
    }
    /**
     * <pre>
     *&#47; actual reported value of the ChargeSysStat can signal
     * </pre>
     *
     * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum getChargeStatus() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum.valueOf(chargeStatus_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum.UNRECOGNIZED : result;
    }

    public static final int CHARGESCHEDULES_FIELD_NUMBER = 5;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> chargeSchedules_;
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> getChargeSchedulesList() {
      return chargeSchedules_;
    }
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> 
        getChargeSchedulesOrBuilderList() {
      return chargeSchedules_;
    }
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    public int getChargeSchedulesCount() {
      return chargeSchedules_.size();
    }
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getChargeSchedules(int index) {
      return chargeSchedules_.get(index);
    }
    /**
     * <pre>
     *&#47; Only required once charge now and charge scheduling are implemented
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder getChargeSchedulesOrBuilder(
        int index) {
      return chargeSchedules_.get(index);
    }

    public static final int CHARGESCHEDULESV2_FIELD_NUMBER = 10;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> chargeSchedulesV2_;
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> getChargeSchedulesV2List() {
      return chargeSchedulesV2_;
    }
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> 
        getChargeSchedulesV2OrBuilderList() {
      return chargeSchedulesV2_;
    }
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    public int getChargeSchedulesV2Count() {
      return chargeSchedulesV2_.size();
    }
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getChargeSchedulesV2(int index) {
      return chargeSchedulesV2_.get(index);
    }
    /**
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder getChargeSchedulesV2OrBuilder(
        int index) {
      return chargeSchedulesV2_.get(index);
    }

    public static final int RESPONSE_FIELD_NUMBER = 9;
    private int response_;
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
     */
    public int getResponseValue() {
      return response_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum.UNRECOGNIZED : result;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (eventTrigger_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum.IGNITION_ON.getNumber()) {
        output.writeEnum(1, eventTrigger_);
      }
      if (plugStatus_ != null) {
        output.writeMessage(2, getPlugStatus());
      }
      if (rangeEstimates_ != null) {
        output.writeMessage(3, getRangeEstimates());
      }
      if (chargeStatus_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum.NOT_CHARGING.getNumber()) {
        output.writeEnum(4, chargeStatus_);
      }
      for (int i = 0; i < chargeSchedules_.size(); i++) {
        output.writeMessage(5, chargeSchedules_.get(i));
      }
      if (batteryLevel_ != 0F) {
        output.writeFloat(8, batteryLevel_);
      }
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum.SUCCESS.getNumber()) {
        output.writeEnum(9, response_);
      }
      for (int i = 0; i < chargeSchedulesV2_.size(); i++) {
        output.writeMessage(10, chargeSchedulesV2_.get(i));
      }
    }

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

      size = 0;
      if (eventTrigger_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum.IGNITION_ON.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, eventTrigger_);
      }
      if (plugStatus_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getPlugStatus());
      }
      if (rangeEstimates_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getRangeEstimates());
      }
      if (chargeStatus_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum.NOT_CHARGING.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, chargeStatus_);
      }
      for (int i = 0; i < chargeSchedules_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, chargeSchedules_.get(i));
      }
      if (batteryLevel_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(8, batteryLevel_);
      }
      if (response_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum.SUCCESS.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(9, response_);
      }
      for (int i = 0; i < chargeSchedulesV2_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, chargeSchedulesV2_.get(i));
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish) obj;

      boolean result = true;
      result = result && (
          java.lang.Float.floatToIntBits(getBatteryLevel())
          == java.lang.Float.floatToIntBits(
              other.getBatteryLevel()));
      result = result && eventTrigger_ == other.eventTrigger_;
      result = result && (hasPlugStatus() == other.hasPlugStatus());
      if (hasPlugStatus()) {
        result = result && getPlugStatus()
            .equals(other.getPlugStatus());
      }
      result = result && (hasRangeEstimates() == other.hasRangeEstimates());
      if (hasRangeEstimates()) {
        result = result && getRangeEstimates()
            .equals(other.getRangeEstimates());
      }
      result = result && chargeStatus_ == other.chargeStatus_;
      result = result && getChargeSchedulesList()
          .equals(other.getChargeSchedulesList());
      result = result && getChargeSchedulesV2List()
          .equals(other.getChargeSchedulesV2List());
      result = result && response_ == other.response_;
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + BATTERYLEVEL_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getBatteryLevel());
      hash = (37 * hash) + EVENTTRIGGER_FIELD_NUMBER;
      hash = (53 * hash) + eventTrigger_;
      if (hasPlugStatus()) {
        hash = (37 * hash) + PLUGSTATUS_FIELD_NUMBER;
        hash = (53 * hash) + getPlugStatus().hashCode();
      }
      if (hasRangeEstimates()) {
        hash = (37 * hash) + RANGEESTIMATES_FIELD_NUMBER;
        hash = (53 * hash) + getRangeEstimates().hashCode();
      }
      hash = (37 * hash) + CHARGESTATUS_FIELD_NUMBER;
      hash = (53 * hash) + chargeStatus_;
      if (getChargeSchedulesCount() > 0) {
        hash = (37 * hash) + CHARGESCHEDULES_FIELD_NUMBER;
        hash = (53 * hash) + getChargeSchedulesList().hashCode();
      }
      if (getChargeSchedulesV2Count() > 0) {
        hash = (37 * hash) + CHARGESCHEDULESV2_FIELD_NUMBER;
        hash = (53 * hash) + getChargeSchedulesV2List().hashCode();
      }
      hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
      hash = (53 * hash) + response_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ChargeDataPublish}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeDataPublish)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublishOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        eventTrigger_ = 0;

        if (plugStatusBuilder_ == null) {
          plugStatus_ = null;
        } else {
          plugStatus_ = null;
          plugStatusBuilder_ = null;
        }
        if (rangeEstimatesBuilder_ == null) {
          rangeEstimates_ = null;
        } else {
          rangeEstimates_ = null;
          rangeEstimatesBuilder_ = null;
        }
        chargeStatus_ = 0;

        if (chargeSchedulesBuilder_ == null) {
          chargeSchedules_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          chargeSchedulesBuilder_.clear();
        }
        if (chargeSchedulesV2Builder_ == null) {
          chargeSchedulesV2_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          chargeSchedulesV2Builder_.clear();
        }
        response_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.batteryLevel_ = batteryLevel_;
        result.eventTrigger_ = eventTrigger_;
        if (plugStatusBuilder_ == null) {
          result.plugStatus_ = plugStatus_;
        } else {
          result.plugStatus_ = plugStatusBuilder_.build();
        }
        if (rangeEstimatesBuilder_ == null) {
          result.rangeEstimates_ = rangeEstimates_;
        } else {
          result.rangeEstimates_ = rangeEstimatesBuilder_.build();
        }
        result.chargeStatus_ = chargeStatus_;
        if (chargeSchedulesBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            chargeSchedules_ = java.util.Collections.unmodifiableList(chargeSchedules_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.chargeSchedules_ = chargeSchedules_;
        } else {
          result.chargeSchedules_ = chargeSchedulesBuilder_.build();
        }
        if (chargeSchedulesV2Builder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            chargeSchedulesV2_ = java.util.Collections.unmodifiableList(chargeSchedulesV2_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.chargeSchedulesV2_ = chargeSchedulesV2_;
        } else {
          result.chargeSchedulesV2_ = chargeSchedulesV2Builder_.build();
        }
        result.response_ = response_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.getDefaultInstance()) return this;
        if (other.getBatteryLevel() != 0F) {
          setBatteryLevel(other.getBatteryLevel());
        }
        if (other.eventTrigger_ != 0) {
          setEventTriggerValue(other.getEventTriggerValue());
        }
        if (other.hasPlugStatus()) {
          mergePlugStatus(other.getPlugStatus());
        }
        if (other.hasRangeEstimates()) {
          mergeRangeEstimates(other.getRangeEstimates());
        }
        if (other.chargeStatus_ != 0) {
          setChargeStatusValue(other.getChargeStatusValue());
        }
        if (chargeSchedulesBuilder_ == null) {
          if (!other.chargeSchedules_.isEmpty()) {
            if (chargeSchedules_.isEmpty()) {
              chargeSchedules_ = other.chargeSchedules_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureChargeSchedulesIsMutable();
              chargeSchedules_.addAll(other.chargeSchedules_);
            }
            onChanged();
          }
        } else {
          if (!other.chargeSchedules_.isEmpty()) {
            if (chargeSchedulesBuilder_.isEmpty()) {
              chargeSchedulesBuilder_.dispose();
              chargeSchedulesBuilder_ = null;
              chargeSchedules_ = other.chargeSchedules_;
              bitField0_ = (bitField0_ & ~0x00000020);
              chargeSchedulesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getChargeSchedulesFieldBuilder() : null;
            } else {
              chargeSchedulesBuilder_.addAllMessages(other.chargeSchedules_);
            }
          }
        }
        if (chargeSchedulesV2Builder_ == null) {
          if (!other.chargeSchedulesV2_.isEmpty()) {
            if (chargeSchedulesV2_.isEmpty()) {
              chargeSchedulesV2_ = other.chargeSchedulesV2_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureChargeSchedulesV2IsMutable();
              chargeSchedulesV2_.addAll(other.chargeSchedulesV2_);
            }
            onChanged();
          }
        } else {
          if (!other.chargeSchedulesV2_.isEmpty()) {
            if (chargeSchedulesV2Builder_.isEmpty()) {
              chargeSchedulesV2Builder_.dispose();
              chargeSchedulesV2Builder_ = null;
              chargeSchedulesV2_ = other.chargeSchedulesV2_;
              bitField0_ = (bitField0_ & ~0x00000040);
              chargeSchedulesV2Builder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getChargeSchedulesV2FieldBuilder() : null;
            } else {
              chargeSchedulesV2Builder_.addAllMessages(other.chargeSchedulesV2_);
            }
          }
        }
        if (other.response_ != 0) {
          setResponseValue(other.getResponseValue());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private float batteryLevel_ ;
      /**
       * <pre>
       *&#47; High voltage battery level in percent
       * </pre>
       *
       * <code>float BatteryLevel = 8;</code>
       */
      public float getBatteryLevel() {
        return batteryLevel_;
      }
      /**
       * <pre>
       *&#47; High voltage battery level in percent
       * </pre>
       *
       * <code>float BatteryLevel = 8;</code>
       */
      public Builder setBatteryLevel(float value) {
        
        batteryLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; High voltage battery level in percent
       * </pre>
       *
       * <code>float BatteryLevel = 8;</code>
       */
      public Builder clearBatteryLevel() {
        
        batteryLevel_ = 0F;
        onChanged();
        return this;
      }

      private int eventTrigger_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
       */
      public int getEventTriggerValue() {
        return eventTrigger_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
       */
      public Builder setEventTriggerValue(int value) {
        eventTrigger_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum getEventTrigger() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum.valueOf(eventTrigger_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
       */
      public Builder setEventTrigger(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PublishEventEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        eventTrigger_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;</code>
       */
      public Builder clearEventTrigger() {
        
        eventTrigger_ = 0;
        onChanged();
        return this;
      }

      private com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus plugStatus_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatusOrBuilder> plugStatusBuilder_;
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      public boolean hasPlugStatus() {
        return plugStatusBuilder_ != null || plugStatus_ != null;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus getPlugStatus() {
        if (plugStatusBuilder_ == null) {
          return plugStatus_ == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.getDefaultInstance() : plugStatus_;
        } else {
          return plugStatusBuilder_.getMessage();
        }
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      public Builder setPlugStatus(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus value) {
        if (plugStatusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          plugStatus_ = value;
          onChanged();
        } else {
          plugStatusBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      public Builder setPlugStatus(
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.Builder builderForValue) {
        if (plugStatusBuilder_ == null) {
          plugStatus_ = builderForValue.build();
          onChanged();
        } else {
          plugStatusBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      public Builder mergePlugStatus(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus value) {
        if (plugStatusBuilder_ == null) {
          if (plugStatus_ != null) {
            plugStatus_ =
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.newBuilder(plugStatus_).mergeFrom(value).buildPartial();
          } else {
            plugStatus_ = value;
          }
          onChanged();
        } else {
          plugStatusBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      public Builder clearPlugStatus() {
        if (plugStatusBuilder_ == null) {
          plugStatus_ = null;
          onChanged();
        } else {
          plugStatus_ = null;
          plugStatusBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.Builder getPlugStatusBuilder() {
        
        onChanged();
        return getPlugStatusFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatusOrBuilder getPlugStatusOrBuilder() {
        if (plugStatusBuilder_ != null) {
          return plugStatusBuilder_.getMessageOrBuilder();
        } else {
          return plugStatus_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.getDefaultInstance() : plugStatus_;
        }
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatusOrBuilder> 
          getPlugStatusFieldBuilder() {
        if (plugStatusBuilder_ == null) {
          plugStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatus.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.PlugStatusOrBuilder>(
                  getPlugStatus(),
                  getParentForChildren(),
                  isClean());
          plugStatus_ = null;
        }
        return plugStatusBuilder_;
      }

      private com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range rangeEstimates_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.RangeOrBuilder> rangeEstimatesBuilder_;
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      public boolean hasRangeEstimates() {
        return rangeEstimatesBuilder_ != null || rangeEstimates_ != null;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range getRangeEstimates() {
        if (rangeEstimatesBuilder_ == null) {
          return rangeEstimates_ == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.getDefaultInstance() : rangeEstimates_;
        } else {
          return rangeEstimatesBuilder_.getMessage();
        }
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      public Builder setRangeEstimates(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range value) {
        if (rangeEstimatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rangeEstimates_ = value;
          onChanged();
        } else {
          rangeEstimatesBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      public Builder setRangeEstimates(
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.Builder builderForValue) {
        if (rangeEstimatesBuilder_ == null) {
          rangeEstimates_ = builderForValue.build();
          onChanged();
        } else {
          rangeEstimatesBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      public Builder mergeRangeEstimates(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range value) {
        if (rangeEstimatesBuilder_ == null) {
          if (rangeEstimates_ != null) {
            rangeEstimates_ =
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.newBuilder(rangeEstimates_).mergeFrom(value).buildPartial();
          } else {
            rangeEstimates_ = value;
          }
          onChanged();
        } else {
          rangeEstimatesBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      public Builder clearRangeEstimates() {
        if (rangeEstimatesBuilder_ == null) {
          rangeEstimates_ = null;
          onChanged();
        } else {
          rangeEstimates_ = null;
          rangeEstimatesBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.Builder getRangeEstimatesBuilder() {
        
        onChanged();
        return getRangeEstimatesFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.RangeOrBuilder getRangeEstimatesOrBuilder() {
        if (rangeEstimatesBuilder_ != null) {
          return rangeEstimatesBuilder_.getMessageOrBuilder();
        } else {
          return rangeEstimates_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.getDefaultInstance() : rangeEstimates_;
        }
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.RangeOrBuilder> 
          getRangeEstimatesFieldBuilder() {
        if (rangeEstimatesBuilder_ == null) {
          rangeEstimatesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.Range.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.RangeOrBuilder>(
                  getRangeEstimates(),
                  getParentForChildren(),
                  isClean());
          rangeEstimates_ = null;
        }
        return rangeEstimatesBuilder_;
      }

      private int chargeStatus_ = 0;
      /**
       * <pre>
       *&#47; actual reported value of the ChargeSysStat can signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
       */
      public int getChargeStatusValue() {
        return chargeStatus_;
      }
      /**
       * <pre>
       *&#47; actual reported value of the ChargeSysStat can signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
       */
      public Builder setChargeStatusValue(int value) {
        chargeStatus_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; actual reported value of the ChargeSysStat can signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum getChargeStatus() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum.valueOf(chargeStatus_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       *&#47; actual reported value of the ChargeSysStat can signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
       */
      public Builder setChargeStatus(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ChargeStatusEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        chargeStatus_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; actual reported value of the ChargeSysStat can signal
       * </pre>
       *
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;</code>
       */
      public Builder clearChargeStatus() {
        
        chargeStatus_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> chargeSchedules_ =
        java.util.Collections.emptyList();
      private void ensureChargeSchedulesIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          chargeSchedules_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule>(chargeSchedules_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> chargeSchedulesBuilder_;

      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> getChargeSchedulesList() {
        if (chargeSchedulesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(chargeSchedules_);
        } else {
          return chargeSchedulesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public int getChargeSchedulesCount() {
        if (chargeSchedulesBuilder_ == null) {
          return chargeSchedules_.size();
        } else {
          return chargeSchedulesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getChargeSchedules(int index) {
        if (chargeSchedulesBuilder_ == null) {
          return chargeSchedules_.get(index);
        } else {
          return chargeSchedulesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder setChargeSchedules(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule value) {
        if (chargeSchedulesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeSchedulesIsMutable();
          chargeSchedules_.set(index, value);
          onChanged();
        } else {
          chargeSchedulesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder setChargeSchedules(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder builderForValue) {
        if (chargeSchedulesBuilder_ == null) {
          ensureChargeSchedulesIsMutable();
          chargeSchedules_.set(index, builderForValue.build());
          onChanged();
        } else {
          chargeSchedulesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder addChargeSchedules(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule value) {
        if (chargeSchedulesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeSchedulesIsMutable();
          chargeSchedules_.add(value);
          onChanged();
        } else {
          chargeSchedulesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder addChargeSchedules(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule value) {
        if (chargeSchedulesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeSchedulesIsMutable();
          chargeSchedules_.add(index, value);
          onChanged();
        } else {
          chargeSchedulesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder addChargeSchedules(
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder builderForValue) {
        if (chargeSchedulesBuilder_ == null) {
          ensureChargeSchedulesIsMutable();
          chargeSchedules_.add(builderForValue.build());
          onChanged();
        } else {
          chargeSchedulesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder addChargeSchedules(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder builderForValue) {
        if (chargeSchedulesBuilder_ == null) {
          ensureChargeSchedulesIsMutable();
          chargeSchedules_.add(index, builderForValue.build());
          onChanged();
        } else {
          chargeSchedulesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder addAllChargeSchedules(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> values) {
        if (chargeSchedulesBuilder_ == null) {
          ensureChargeSchedulesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, chargeSchedules_);
          onChanged();
        } else {
          chargeSchedulesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder clearChargeSchedules() {
        if (chargeSchedulesBuilder_ == null) {
          chargeSchedules_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          chargeSchedulesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public Builder removeChargeSchedules(int index) {
        if (chargeSchedulesBuilder_ == null) {
          ensureChargeSchedulesIsMutable();
          chargeSchedules_.remove(index);
          onChanged();
        } else {
          chargeSchedulesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder getChargeSchedulesBuilder(
          int index) {
        return getChargeSchedulesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder getChargeSchedulesOrBuilder(
          int index) {
        if (chargeSchedulesBuilder_ == null) {
          return chargeSchedules_.get(index);  } else {
          return chargeSchedulesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> 
           getChargeSchedulesOrBuilderList() {
        if (chargeSchedulesBuilder_ != null) {
          return chargeSchedulesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(chargeSchedules_);
        }
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder addChargeSchedulesBuilder() {
        return getChargeSchedulesFieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder addChargeSchedulesBuilder(
          int index) {
        return getChargeSchedulesFieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; Only required once charge now and charge scheduling are implemented
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder> 
           getChargeSchedulesBuilderList() {
        return getChargeSchedulesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> 
          getChargeSchedulesFieldBuilder() {
        if (chargeSchedulesBuilder_ == null) {
          chargeSchedulesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder>(
                  chargeSchedules_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          chargeSchedules_ = null;
        }
        return chargeSchedulesBuilder_;
      }

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> chargeSchedulesV2_ =
        java.util.Collections.emptyList();
      private void ensureChargeSchedulesV2IsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          chargeSchedulesV2_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2>(chargeSchedulesV2_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> chargeSchedulesV2Builder_;

      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> getChargeSchedulesV2List() {
        if (chargeSchedulesV2Builder_ == null) {
          return java.util.Collections.unmodifiableList(chargeSchedulesV2_);
        } else {
          return chargeSchedulesV2Builder_.getMessageList();
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public int getChargeSchedulesV2Count() {
        if (chargeSchedulesV2Builder_ == null) {
          return chargeSchedulesV2_.size();
        } else {
          return chargeSchedulesV2Builder_.getCount();
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getChargeSchedulesV2(int index) {
        if (chargeSchedulesV2Builder_ == null) {
          return chargeSchedulesV2_.get(index);
        } else {
          return chargeSchedulesV2Builder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder setChargeSchedulesV2(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 value) {
        if (chargeSchedulesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeSchedulesV2IsMutable();
          chargeSchedulesV2_.set(index, value);
          onChanged();
        } else {
          chargeSchedulesV2Builder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder setChargeSchedulesV2(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder builderForValue) {
        if (chargeSchedulesV2Builder_ == null) {
          ensureChargeSchedulesV2IsMutable();
          chargeSchedulesV2_.set(index, builderForValue.build());
          onChanged();
        } else {
          chargeSchedulesV2Builder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder addChargeSchedulesV2(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 value) {
        if (chargeSchedulesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeSchedulesV2IsMutable();
          chargeSchedulesV2_.add(value);
          onChanged();
        } else {
          chargeSchedulesV2Builder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder addChargeSchedulesV2(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 value) {
        if (chargeSchedulesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChargeSchedulesV2IsMutable();
          chargeSchedulesV2_.add(index, value);
          onChanged();
        } else {
          chargeSchedulesV2Builder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder addChargeSchedulesV2(
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder builderForValue) {
        if (chargeSchedulesV2Builder_ == null) {
          ensureChargeSchedulesV2IsMutable();
          chargeSchedulesV2_.add(builderForValue.build());
          onChanged();
        } else {
          chargeSchedulesV2Builder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder addChargeSchedulesV2(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder builderForValue) {
        if (chargeSchedulesV2Builder_ == null) {
          ensureChargeSchedulesV2IsMutable();
          chargeSchedulesV2_.add(index, builderForValue.build());
          onChanged();
        } else {
          chargeSchedulesV2Builder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder addAllChargeSchedulesV2(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> values) {
        if (chargeSchedulesV2Builder_ == null) {
          ensureChargeSchedulesV2IsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, chargeSchedulesV2_);
          onChanged();
        } else {
          chargeSchedulesV2Builder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder clearChargeSchedulesV2() {
        if (chargeSchedulesV2Builder_ == null) {
          chargeSchedulesV2_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          chargeSchedulesV2Builder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public Builder removeChargeSchedulesV2(int index) {
        if (chargeSchedulesV2Builder_ == null) {
          ensureChargeSchedulesV2IsMutable();
          chargeSchedulesV2_.remove(index);
          onChanged();
        } else {
          chargeSchedulesV2Builder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder getChargeSchedulesV2Builder(
          int index) {
        return getChargeSchedulesV2FieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder getChargeSchedulesV2OrBuilder(
          int index) {
        if (chargeSchedulesV2Builder_ == null) {
          return chargeSchedulesV2_.get(index);  } else {
          return chargeSchedulesV2Builder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> 
           getChargeSchedulesV2OrBuilderList() {
        if (chargeSchedulesV2Builder_ != null) {
          return chargeSchedulesV2Builder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(chargeSchedulesV2_);
        }
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder addChargeSchedulesV2Builder() {
        return getChargeSchedulesV2FieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.getDefaultInstance());
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder addChargeSchedulesV2Builder(
          int index) {
        return getChargeSchedulesV2FieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.getDefaultInstance());
      }
      /**
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder> 
           getChargeSchedulesV2BuilderList() {
        return getChargeSchedulesV2FieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> 
          getChargeSchedulesV2FieldBuilder() {
        if (chargeSchedulesV2Builder_ == null) {
          chargeSchedulesV2Builder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder>(
                  chargeSchedulesV2_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          chargeSchedulesV2_ = null;
        }
        return chargeSchedulesV2Builder_;
      }

      private int response_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
       */
      public int getResponseValue() {
        return response_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
       */
      public Builder setResponseValue(int value) {
        response_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;</code>
       */
      public Builder clearResponse() {
        
        response_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeDataPublish)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeDataPublish)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeDataPublish getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UpdateChargeScheduleOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.UpdateChargeSchedule)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> 
        getUpdatedChargeSchedulesList();
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getUpdatedChargeSchedules(int index);
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    int getUpdatedChargeSchedulesCount();
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> 
        getUpdatedChargeSchedulesOrBuilderList();
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder getUpdatedChargeSchedulesOrBuilder(
        int index);

    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> 
        getUpdateChargeShedulesV2List();
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getUpdateChargeShedulesV2(int index);
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    int getUpdateChargeShedulesV2Count();
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> 
        getUpdateChargeShedulesV2OrBuilderList();
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder getUpdateChargeShedulesV2OrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.UpdateChargeSchedule}
   */
  public  static final class UpdateChargeSchedule extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.UpdateChargeSchedule)
      UpdateChargeScheduleOrBuilder {
    // Use UpdateChargeSchedule.newBuilder() to construct.
    private UpdateChargeSchedule(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UpdateChargeSchedule() {
      updatedChargeSchedules_ = java.util.Collections.emptyList();
      updateChargeShedulesV2_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private UpdateChargeSchedule(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                updatedChargeSchedules_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule>();
                mutable_bitField0_ |= 0x00000001;
              }
              updatedChargeSchedules_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.parser(), extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                updateChargeShedulesV2_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2>();
                mutable_bitField0_ |= 0x00000002;
              }
              updateChargeShedulesV2_.add(
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          updatedChargeSchedules_ = java.util.Collections.unmodifiableList(updatedChargeSchedules_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          updateChargeShedulesV2_ = java.util.Collections.unmodifiableList(updateChargeShedulesV2_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_UpdateChargeSchedule_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_UpdateChargeSchedule_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule.Builder.class);
    }

    public static final int UPDATEDCHARGESCHEDULES_FIELD_NUMBER = 1;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> updatedChargeSchedules_;
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> getUpdatedChargeSchedulesList() {
      return updatedChargeSchedules_;
    }
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> 
        getUpdatedChargeSchedulesOrBuilderList() {
      return updatedChargeSchedules_;
    }
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    public int getUpdatedChargeSchedulesCount() {
      return updatedChargeSchedules_.size();
    }
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getUpdatedChargeSchedules(int index) {
      return updatedChargeSchedules_.get(index);
    }
    /**
     * <pre>
     *&#47; Used for the RU and K8 for 2019.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder getUpdatedChargeSchedulesOrBuilder(
        int index) {
      return updatedChargeSchedules_.get(index);
    }

    public static final int UPDATECHARGESHEDULESV2_FIELD_NUMBER = 2;
    private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> updateChargeShedulesV2_;
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> getUpdateChargeShedulesV2List() {
      return updateChargeShedulesV2_;
    }
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> 
        getUpdateChargeShedulesV2OrBuilderList() {
      return updateChargeShedulesV2_;
    }
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    public int getUpdateChargeShedulesV2Count() {
      return updateChargeShedulesV2_.size();
    }
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getUpdateChargeShedulesV2(int index) {
      return updateChargeShedulesV2_.get(index);
    }
    /**
     * <pre>
     *&#47; Used for Charge Schedules for 520 and after.
     * </pre>
     *
     * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder getUpdateChargeShedulesV2OrBuilder(
        int index) {
      return updateChargeShedulesV2_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < updatedChargeSchedules_.size(); i++) {
        output.writeMessage(1, updatedChargeSchedules_.get(i));
      }
      for (int i = 0; i < updateChargeShedulesV2_.size(); i++) {
        output.writeMessage(2, updateChargeShedulesV2_.get(i));
      }
    }

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

      size = 0;
      for (int i = 0; i < updatedChargeSchedules_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, updatedChargeSchedules_.get(i));
      }
      for (int i = 0; i < updateChargeShedulesV2_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, updateChargeShedulesV2_.get(i));
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule) obj;

      boolean result = true;
      result = result && getUpdatedChargeSchedulesList()
          .equals(other.getUpdatedChargeSchedulesList());
      result = result && getUpdateChargeShedulesV2List()
          .equals(other.getUpdateChargeShedulesV2List());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getUpdatedChargeSchedulesCount() > 0) {
        hash = (37 * hash) + UPDATEDCHARGESCHEDULES_FIELD_NUMBER;
        hash = (53 * hash) + getUpdatedChargeSchedulesList().hashCode();
      }
      if (getUpdateChargeShedulesV2Count() > 0) {
        hash = (37 * hash) + UPDATECHARGESHEDULESV2_FIELD_NUMBER;
        hash = (53 * hash) + getUpdateChargeShedulesV2List().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.UpdateChargeSchedule}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.UpdateChargeSchedule)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeScheduleOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_UpdateChargeSchedule_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_UpdateChargeSchedule_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getUpdatedChargeSchedulesFieldBuilder();
          getUpdateChargeShedulesV2FieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (updatedChargeSchedulesBuilder_ == null) {
          updatedChargeSchedules_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          updatedChargeSchedulesBuilder_.clear();
        }
        if (updateChargeShedulesV2Builder_ == null) {
          updateChargeShedulesV2_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          updateChargeShedulesV2Builder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_UpdateChargeSchedule_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule(this);
        int from_bitField0_ = bitField0_;
        if (updatedChargeSchedulesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            updatedChargeSchedules_ = java.util.Collections.unmodifiableList(updatedChargeSchedules_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.updatedChargeSchedules_ = updatedChargeSchedules_;
        } else {
          result.updatedChargeSchedules_ = updatedChargeSchedulesBuilder_.build();
        }
        if (updateChargeShedulesV2Builder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            updateChargeShedulesV2_ = java.util.Collections.unmodifiableList(updateChargeShedulesV2_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.updateChargeShedulesV2_ = updateChargeShedulesV2_;
        } else {
          result.updateChargeShedulesV2_ = updateChargeShedulesV2Builder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule.getDefaultInstance()) return this;
        if (updatedChargeSchedulesBuilder_ == null) {
          if (!other.updatedChargeSchedules_.isEmpty()) {
            if (updatedChargeSchedules_.isEmpty()) {
              updatedChargeSchedules_ = other.updatedChargeSchedules_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureUpdatedChargeSchedulesIsMutable();
              updatedChargeSchedules_.addAll(other.updatedChargeSchedules_);
            }
            onChanged();
          }
        } else {
          if (!other.updatedChargeSchedules_.isEmpty()) {
            if (updatedChargeSchedulesBuilder_.isEmpty()) {
              updatedChargeSchedulesBuilder_.dispose();
              updatedChargeSchedulesBuilder_ = null;
              updatedChargeSchedules_ = other.updatedChargeSchedules_;
              bitField0_ = (bitField0_ & ~0x00000001);
              updatedChargeSchedulesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getUpdatedChargeSchedulesFieldBuilder() : null;
            } else {
              updatedChargeSchedulesBuilder_.addAllMessages(other.updatedChargeSchedules_);
            }
          }
        }
        if (updateChargeShedulesV2Builder_ == null) {
          if (!other.updateChargeShedulesV2_.isEmpty()) {
            if (updateChargeShedulesV2_.isEmpty()) {
              updateChargeShedulesV2_ = other.updateChargeShedulesV2_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureUpdateChargeShedulesV2IsMutable();
              updateChargeShedulesV2_.addAll(other.updateChargeShedulesV2_);
            }
            onChanged();
          }
        } else {
          if (!other.updateChargeShedulesV2_.isEmpty()) {
            if (updateChargeShedulesV2Builder_.isEmpty()) {
              updateChargeShedulesV2Builder_.dispose();
              updateChargeShedulesV2Builder_ = null;
              updateChargeShedulesV2_ = other.updateChargeShedulesV2_;
              bitField0_ = (bitField0_ & ~0x00000002);
              updateChargeShedulesV2Builder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getUpdateChargeShedulesV2FieldBuilder() : null;
            } else {
              updateChargeShedulesV2Builder_.addAllMessages(other.updateChargeShedulesV2_);
            }
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> updatedChargeSchedules_ =
        java.util.Collections.emptyList();
      private void ensureUpdatedChargeSchedulesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          updatedChargeSchedules_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule>(updatedChargeSchedules_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> updatedChargeSchedulesBuilder_;

      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> getUpdatedChargeSchedulesList() {
        if (updatedChargeSchedulesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(updatedChargeSchedules_);
        } else {
          return updatedChargeSchedulesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public int getUpdatedChargeSchedulesCount() {
        if (updatedChargeSchedulesBuilder_ == null) {
          return updatedChargeSchedules_.size();
        } else {
          return updatedChargeSchedulesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getUpdatedChargeSchedules(int index) {
        if (updatedChargeSchedulesBuilder_ == null) {
          return updatedChargeSchedules_.get(index);
        } else {
          return updatedChargeSchedulesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder setUpdatedChargeSchedules(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule value) {
        if (updatedChargeSchedulesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdatedChargeSchedulesIsMutable();
          updatedChargeSchedules_.set(index, value);
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder setUpdatedChargeSchedules(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder builderForValue) {
        if (updatedChargeSchedulesBuilder_ == null) {
          ensureUpdatedChargeSchedulesIsMutable();
          updatedChargeSchedules_.set(index, builderForValue.build());
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder addUpdatedChargeSchedules(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule value) {
        if (updatedChargeSchedulesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdatedChargeSchedulesIsMutable();
          updatedChargeSchedules_.add(value);
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder addUpdatedChargeSchedules(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule value) {
        if (updatedChargeSchedulesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdatedChargeSchedulesIsMutable();
          updatedChargeSchedules_.add(index, value);
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder addUpdatedChargeSchedules(
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder builderForValue) {
        if (updatedChargeSchedulesBuilder_ == null) {
          ensureUpdatedChargeSchedulesIsMutable();
          updatedChargeSchedules_.add(builderForValue.build());
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder addUpdatedChargeSchedules(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder builderForValue) {
        if (updatedChargeSchedulesBuilder_ == null) {
          ensureUpdatedChargeSchedulesIsMutable();
          updatedChargeSchedules_.add(index, builderForValue.build());
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder addAllUpdatedChargeSchedules(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule> values) {
        if (updatedChargeSchedulesBuilder_ == null) {
          ensureUpdatedChargeSchedulesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, updatedChargeSchedules_);
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder clearUpdatedChargeSchedules() {
        if (updatedChargeSchedulesBuilder_ == null) {
          updatedChargeSchedules_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public Builder removeUpdatedChargeSchedules(int index) {
        if (updatedChargeSchedulesBuilder_ == null) {
          ensureUpdatedChargeSchedulesIsMutable();
          updatedChargeSchedules_.remove(index);
          onChanged();
        } else {
          updatedChargeSchedulesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder getUpdatedChargeSchedulesBuilder(
          int index) {
        return getUpdatedChargeSchedulesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder getUpdatedChargeSchedulesOrBuilder(
          int index) {
        if (updatedChargeSchedulesBuilder_ == null) {
          return updatedChargeSchedules_.get(index);  } else {
          return updatedChargeSchedulesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> 
           getUpdatedChargeSchedulesOrBuilderList() {
        if (updatedChargeSchedulesBuilder_ != null) {
          return updatedChargeSchedulesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(updatedChargeSchedules_);
        }
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder addUpdatedChargeSchedulesBuilder() {
        return getUpdatedChargeSchedulesFieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder addUpdatedChargeSchedulesBuilder(
          int index) {
        return getUpdatedChargeSchedulesFieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; Used for the RU and K8 for 2019.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder> 
           getUpdatedChargeSchedulesBuilderList() {
        return getUpdatedChargeSchedulesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder> 
          getUpdatedChargeSchedulesFieldBuilder() {
        if (updatedChargeSchedulesBuilder_ == null) {
          updatedChargeSchedulesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder>(
                  updatedChargeSchedules_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          updatedChargeSchedules_ = null;
        }
        return updatedChargeSchedulesBuilder_;
      }

      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> updateChargeShedulesV2_ =
        java.util.Collections.emptyList();
      private void ensureUpdateChargeShedulesV2IsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          updateChargeShedulesV2_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2>(updateChargeShedulesV2_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> updateChargeShedulesV2Builder_;

      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> getUpdateChargeShedulesV2List() {
        if (updateChargeShedulesV2Builder_ == null) {
          return java.util.Collections.unmodifiableList(updateChargeShedulesV2_);
        } else {
          return updateChargeShedulesV2Builder_.getMessageList();
        }
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public int getUpdateChargeShedulesV2Count() {
        if (updateChargeShedulesV2Builder_ == null) {
          return updateChargeShedulesV2_.size();
        } else {
          return updateChargeShedulesV2Builder_.getCount();
        }
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getUpdateChargeShedulesV2(int index) {
        if (updateChargeShedulesV2Builder_ == null) {
          return updateChargeShedulesV2_.get(index);
        } else {
          return updateChargeShedulesV2Builder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder setUpdateChargeShedulesV2(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 value) {
        if (updateChargeShedulesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdateChargeShedulesV2IsMutable();
          updateChargeShedulesV2_.set(index, value);
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder setUpdateChargeShedulesV2(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder builderForValue) {
        if (updateChargeShedulesV2Builder_ == null) {
          ensureUpdateChargeShedulesV2IsMutable();
          updateChargeShedulesV2_.set(index, builderForValue.build());
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder addUpdateChargeShedulesV2(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 value) {
        if (updateChargeShedulesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdateChargeShedulesV2IsMutable();
          updateChargeShedulesV2_.add(value);
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder addUpdateChargeShedulesV2(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 value) {
        if (updateChargeShedulesV2Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUpdateChargeShedulesV2IsMutable();
          updateChargeShedulesV2_.add(index, value);
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder addUpdateChargeShedulesV2(
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder builderForValue) {
        if (updateChargeShedulesV2Builder_ == null) {
          ensureUpdateChargeShedulesV2IsMutable();
          updateChargeShedulesV2_.add(builderForValue.build());
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder addUpdateChargeShedulesV2(
          int index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder builderForValue) {
        if (updateChargeShedulesV2Builder_ == null) {
          ensureUpdateChargeShedulesV2IsMutable();
          updateChargeShedulesV2_.add(index, builderForValue.build());
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder addAllUpdateChargeShedulesV2(
          java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2> values) {
        if (updateChargeShedulesV2Builder_ == null) {
          ensureUpdateChargeShedulesV2IsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, updateChargeShedulesV2_);
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder clearUpdateChargeShedulesV2() {
        if (updateChargeShedulesV2Builder_ == null) {
          updateChargeShedulesV2_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public Builder removeUpdateChargeShedulesV2(int index) {
        if (updateChargeShedulesV2Builder_ == null) {
          ensureUpdateChargeShedulesV2IsMutable();
          updateChargeShedulesV2_.remove(index);
          onChanged();
        } else {
          updateChargeShedulesV2Builder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder getUpdateChargeShedulesV2Builder(
          int index) {
        return getUpdateChargeShedulesV2FieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder getUpdateChargeShedulesV2OrBuilder(
          int index) {
        if (updateChargeShedulesV2Builder_ == null) {
          return updateChargeShedulesV2_.get(index);  } else {
          return updateChargeShedulesV2Builder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> 
           getUpdateChargeShedulesV2OrBuilderList() {
        if (updateChargeShedulesV2Builder_ != null) {
          return updateChargeShedulesV2Builder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(updateChargeShedulesV2_);
        }
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder addUpdateChargeShedulesV2Builder() {
        return getUpdateChargeShedulesV2FieldBuilder().addBuilder(
            com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder addUpdateChargeShedulesV2Builder(
          int index) {
        return getUpdateChargeShedulesV2FieldBuilder().addBuilder(
            index, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.getDefaultInstance());
      }
      /**
       * <pre>
       *&#47; Used for Charge Schedules for 520 and after.
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder> 
           getUpdateChargeShedulesV2BuilderList() {
        return getUpdateChargeShedulesV2FieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder> 
          getUpdateChargeShedulesV2FieldBuilder() {
        if (updateChargeShedulesV2Builder_ == null) {
          updateChargeShedulesV2Builder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder>(
                  updateChargeShedulesV2_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          updateChargeShedulesV2_ = null;
        }
        return updateChargeShedulesV2Builder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.UpdateChargeSchedule)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.UpdateChargeSchedule)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.UpdateChargeSchedule getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeScheduleV2OrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeScheduleV2)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool EnableScheduleType = 1;</code>
     */
    boolean getEnableScheduleType();

    /**
     * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
     */
    int getScheduleTypeValue();
    /**
     * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType getScheduleType();

    /**
     * <pre>
     *&#47; follows HH:MM starting at 00:00. In example integer 530 would translate to 05:30 hours.
     * </pre>
     *
     * <code>int32 StartTime = 3;</code>
     */
    int getStartTime();

    /**
     * <pre>
     *&#47; follows HH:MM starting at 00:00 - not required if ChargeToFull is True or if This is a climate schedule. In example integer 1030 would translate to 10:30 hours
     * </pre>
     *
     * <code>int32 EndTime = 4;</code>
     */
    int getEndTime();

    /**
     * <pre>
     * Used only for ChargeSchedules
     * </pre>
     *
     * <code>bool ChargeToFull = 5;</code>
     */
    boolean getChargeToFull();

    /**
     * <pre>
     * Used only for Climate Schedules
     * </pre>
     *
     * <code>bool CabinPriority = 6;</code>
     */
    boolean getCabinPriority();

    /**
     * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
     */
    boolean hasScheduledDays();
    /**
     * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.Days getScheduledDays();
    /**
     * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.DaysOrBuilder getScheduledDaysOrBuilder();

    /**
     * <code>bool RepeatSchedule = 8;</code>
     */
    boolean getRepeatSchedule();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.ChargeScheduleV2}
   */
  public  static final class ChargeScheduleV2 extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeScheduleV2)
      ChargeScheduleV2OrBuilder {
    // Use ChargeScheduleV2.newBuilder() to construct.
    private ChargeScheduleV2(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChargeScheduleV2() {
      enableScheduleType_ = false;
      scheduleType_ = 0;
      startTime_ = 0;
      endTime_ = 0;
      chargeToFull_ = false;
      cabinPriority_ = false;
      repeatSchedule_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ChargeScheduleV2(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              enableScheduleType_ = input.readBool();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();

              scheduleType_ = rawValue;
              break;
            }
            case 24: {

              startTime_ = input.readInt32();
              break;
            }
            case 32: {

              endTime_ = input.readInt32();
              break;
            }
            case 40: {

              chargeToFull_ = input.readBool();
              break;
            }
            case 48: {

              cabinPriority_ = input.readBool();
              break;
            }
            case 58: {
              com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.Builder subBuilder = null;
              if (scheduledDays_ != null) {
                subBuilder = scheduledDays_.toBuilder();
              }
              scheduledDays_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(scheduledDays_);
                scheduledDays_ = subBuilder.buildPartial();
              }

              break;
            }
            case 64: {

              repeatSchedule_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeScheduleV2_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeScheduleV2_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeScheduleV2.ScheduleType}
     */
    public enum ScheduleType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE = 0;</code>
       */
      NONE(0),
      /**
       * <code>CHARGE = 1;</code>
       */
      CHARGE(1),
      /**
       * <code>CLIMATE = 2;</code>
       */
      CLIMATE(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE = 0;</code>
       */
      public static final int NONE_VALUE = 0;
      /**
       * <code>CHARGE = 1;</code>
       */
      public static final int CHARGE_VALUE = 1;
      /**
       * <code>CLIMATE = 2;</code>
       */
      public static final int CLIMATE_VALUE = 2;


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

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

      public static ScheduleType forNumber(int value) {
        switch (value) {
          case 0: return NONE;
          case 1: return CHARGE;
          case 2: return CLIMATE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeScheduleV2.ScheduleType)
    }

    public static final int ENABLESCHEDULETYPE_FIELD_NUMBER = 1;
    private boolean enableScheduleType_;
    /**
     * <code>bool EnableScheduleType = 1;</code>
     */
    public boolean getEnableScheduleType() {
      return enableScheduleType_;
    }

    public static final int SCHEDULETYPE_FIELD_NUMBER = 2;
    private int scheduleType_;
    /**
     * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
     */
    public int getScheduleTypeValue() {
      return scheduleType_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType getScheduleType() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType.valueOf(scheduleType_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType.UNRECOGNIZED : result;
    }

    public static final int STARTTIME_FIELD_NUMBER = 3;
    private int startTime_;
    /**
     * <pre>
     *&#47; follows HH:MM starting at 00:00. In example integer 530 would translate to 05:30 hours.
     * </pre>
     *
     * <code>int32 StartTime = 3;</code>
     */
    public int getStartTime() {
      return startTime_;
    }

    public static final int ENDTIME_FIELD_NUMBER = 4;
    private int endTime_;
    /**
     * <pre>
     *&#47; follows HH:MM starting at 00:00 - not required if ChargeToFull is True or if This is a climate schedule. In example integer 1030 would translate to 10:30 hours
     * </pre>
     *
     * <code>int32 EndTime = 4;</code>
     */
    public int getEndTime() {
      return endTime_;
    }

    public static final int CHARGETOFULL_FIELD_NUMBER = 5;
    private boolean chargeToFull_;
    /**
     * <pre>
     * Used only for ChargeSchedules
     * </pre>
     *
     * <code>bool ChargeToFull = 5;</code>
     */
    public boolean getChargeToFull() {
      return chargeToFull_;
    }

    public static final int CABINPRIORITY_FIELD_NUMBER = 6;
    private boolean cabinPriority_;
    /**
     * <pre>
     * Used only for Climate Schedules
     * </pre>
     *
     * <code>bool CabinPriority = 6;</code>
     */
    public boolean getCabinPriority() {
      return cabinPriority_;
    }

    public static final int SCHEDULEDDAYS_FIELD_NUMBER = 7;
    private com.fca.uconnect.global.GlobalUconnectExtPHEV.Days scheduledDays_;
    /**
     * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
     */
    public boolean hasScheduledDays() {
      return scheduledDays_ != null;
    }
    /**
     * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.Days getScheduledDays() {
      return scheduledDays_ == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.getDefaultInstance() : scheduledDays_;
    }
    /**
     * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.DaysOrBuilder getScheduledDaysOrBuilder() {
      return getScheduledDays();
    }

    public static final int REPEATSCHEDULE_FIELD_NUMBER = 8;
    private boolean repeatSchedule_;
    /**
     * <code>bool RepeatSchedule = 8;</code>
     */
    public boolean getRepeatSchedule() {
      return repeatSchedule_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (enableScheduleType_ != false) {
        output.writeBool(1, enableScheduleType_);
      }
      if (scheduleType_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType.NONE.getNumber()) {
        output.writeEnum(2, scheduleType_);
      }
      if (startTime_ != 0) {
        output.writeInt32(3, startTime_);
      }
      if (endTime_ != 0) {
        output.writeInt32(4, endTime_);
      }
      if (chargeToFull_ != false) {
        output.writeBool(5, chargeToFull_);
      }
      if (cabinPriority_ != false) {
        output.writeBool(6, cabinPriority_);
      }
      if (scheduledDays_ != null) {
        output.writeMessage(7, getScheduledDays());
      }
      if (repeatSchedule_ != false) {
        output.writeBool(8, repeatSchedule_);
      }
    }

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

      size = 0;
      if (enableScheduleType_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, enableScheduleType_);
      }
      if (scheduleType_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType.NONE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, scheduleType_);
      }
      if (startTime_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, startTime_);
      }
      if (endTime_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, endTime_);
      }
      if (chargeToFull_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, chargeToFull_);
      }
      if (cabinPriority_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, cabinPriority_);
      }
      if (scheduledDays_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getScheduledDays());
      }
      if (repeatSchedule_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, repeatSchedule_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2) obj;

      boolean result = true;
      result = result && (getEnableScheduleType()
          == other.getEnableScheduleType());
      result = result && scheduleType_ == other.scheduleType_;
      result = result && (getStartTime()
          == other.getStartTime());
      result = result && (getEndTime()
          == other.getEndTime());
      result = result && (getChargeToFull()
          == other.getChargeToFull());
      result = result && (getCabinPriority()
          == other.getCabinPriority());
      result = result && (hasScheduledDays() == other.hasScheduledDays());
      if (hasScheduledDays()) {
        result = result && getScheduledDays()
            .equals(other.getScheduledDays());
      }
      result = result && (getRepeatSchedule()
          == other.getRepeatSchedule());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ENABLESCHEDULETYPE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getEnableScheduleType());
      hash = (37 * hash) + SCHEDULETYPE_FIELD_NUMBER;
      hash = (53 * hash) + scheduleType_;
      hash = (37 * hash) + STARTTIME_FIELD_NUMBER;
      hash = (53 * hash) + getStartTime();
      hash = (37 * hash) + ENDTIME_FIELD_NUMBER;
      hash = (53 * hash) + getEndTime();
      hash = (37 * hash) + CHARGETOFULL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getChargeToFull());
      hash = (37 * hash) + CABINPRIORITY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCabinPriority());
      if (hasScheduledDays()) {
        hash = (37 * hash) + SCHEDULEDDAYS_FIELD_NUMBER;
        hash = (53 * hash) + getScheduledDays().hashCode();
      }
      hash = (37 * hash) + REPEATSCHEDULE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getRepeatSchedule());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ChargeScheduleV2}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeScheduleV2)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2OrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeScheduleV2_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeScheduleV2_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        scheduleType_ = 0;

        startTime_ = 0;

        endTime_ = 0;

        chargeToFull_ = false;

        cabinPriority_ = false;

        if (scheduledDaysBuilder_ == null) {
          scheduledDays_ = null;
        } else {
          scheduledDays_ = null;
          scheduledDaysBuilder_ = null;
        }
        repeatSchedule_ = false;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeScheduleV2_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2(this);
        result.enableScheduleType_ = enableScheduleType_;
        result.scheduleType_ = scheduleType_;
        result.startTime_ = startTime_;
        result.endTime_ = endTime_;
        result.chargeToFull_ = chargeToFull_;
        result.cabinPriority_ = cabinPriority_;
        if (scheduledDaysBuilder_ == null) {
          result.scheduledDays_ = scheduledDays_;
        } else {
          result.scheduledDays_ = scheduledDaysBuilder_.build();
        }
        result.repeatSchedule_ = repeatSchedule_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.getDefaultInstance()) return this;
        if (other.getEnableScheduleType() != false) {
          setEnableScheduleType(other.getEnableScheduleType());
        }
        if (other.scheduleType_ != 0) {
          setScheduleTypeValue(other.getScheduleTypeValue());
        }
        if (other.getStartTime() != 0) {
          setStartTime(other.getStartTime());
        }
        if (other.getEndTime() != 0) {
          setEndTime(other.getEndTime());
        }
        if (other.getChargeToFull() != false) {
          setChargeToFull(other.getChargeToFull());
        }
        if (other.getCabinPriority() != false) {
          setCabinPriority(other.getCabinPriority());
        }
        if (other.hasScheduledDays()) {
          mergeScheduledDays(other.getScheduledDays());
        }
        if (other.getRepeatSchedule() != false) {
          setRepeatSchedule(other.getRepeatSchedule());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private boolean enableScheduleType_ ;
      /**
       * <code>bool EnableScheduleType = 1;</code>
       */
      public boolean getEnableScheduleType() {
        return enableScheduleType_;
      }
      /**
       * <code>bool EnableScheduleType = 1;</code>
       */
      public Builder setEnableScheduleType(boolean value) {
        
        enableScheduleType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool EnableScheduleType = 1;</code>
       */
      public Builder clearEnableScheduleType() {
        
        enableScheduleType_ = false;
        onChanged();
        return this;
      }

      private int scheduleType_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
       */
      public int getScheduleTypeValue() {
        return scheduleType_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
       */
      public Builder setScheduleTypeValue(int value) {
        scheduleType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType getScheduleType() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType.valueOf(scheduleType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
       */
      public Builder setScheduleType(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2.ScheduleType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        scheduleType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;</code>
       */
      public Builder clearScheduleType() {
        
        scheduleType_ = 0;
        onChanged();
        return this;
      }

      private int startTime_ ;
      /**
       * <pre>
       *&#47; follows HH:MM starting at 00:00. In example integer 530 would translate to 05:30 hours.
       * </pre>
       *
       * <code>int32 StartTime = 3;</code>
       */
      public int getStartTime() {
        return startTime_;
      }
      /**
       * <pre>
       *&#47; follows HH:MM starting at 00:00. In example integer 530 would translate to 05:30 hours.
       * </pre>
       *
       * <code>int32 StartTime = 3;</code>
       */
      public Builder setStartTime(int value) {
        
        startTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; follows HH:MM starting at 00:00. In example integer 530 would translate to 05:30 hours.
       * </pre>
       *
       * <code>int32 StartTime = 3;</code>
       */
      public Builder clearStartTime() {
        
        startTime_ = 0;
        onChanged();
        return this;
      }

      private int endTime_ ;
      /**
       * <pre>
       *&#47; follows HH:MM starting at 00:00 - not required if ChargeToFull is True or if This is a climate schedule. In example integer 1030 would translate to 10:30 hours
       * </pre>
       *
       * <code>int32 EndTime = 4;</code>
       */
      public int getEndTime() {
        return endTime_;
      }
      /**
       * <pre>
       *&#47; follows HH:MM starting at 00:00 - not required if ChargeToFull is True or if This is a climate schedule. In example integer 1030 would translate to 10:30 hours
       * </pre>
       *
       * <code>int32 EndTime = 4;</code>
       */
      public Builder setEndTime(int value) {
        
        endTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; follows HH:MM starting at 00:00 - not required if ChargeToFull is True or if This is a climate schedule. In example integer 1030 would translate to 10:30 hours
       * </pre>
       *
       * <code>int32 EndTime = 4;</code>
       */
      public Builder clearEndTime() {
        
        endTime_ = 0;
        onChanged();
        return this;
      }

      private boolean chargeToFull_ ;
      /**
       * <pre>
       * Used only for ChargeSchedules
       * </pre>
       *
       * <code>bool ChargeToFull = 5;</code>
       */
      public boolean getChargeToFull() {
        return chargeToFull_;
      }
      /**
       * <pre>
       * Used only for ChargeSchedules
       * </pre>
       *
       * <code>bool ChargeToFull = 5;</code>
       */
      public Builder setChargeToFull(boolean value) {
        
        chargeToFull_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Used only for ChargeSchedules
       * </pre>
       *
       * <code>bool ChargeToFull = 5;</code>
       */
      public Builder clearChargeToFull() {
        
        chargeToFull_ = false;
        onChanged();
        return this;
      }

      private boolean cabinPriority_ ;
      /**
       * <pre>
       * Used only for Climate Schedules
       * </pre>
       *
       * <code>bool CabinPriority = 6;</code>
       */
      public boolean getCabinPriority() {
        return cabinPriority_;
      }
      /**
       * <pre>
       * Used only for Climate Schedules
       * </pre>
       *
       * <code>bool CabinPriority = 6;</code>
       */
      public Builder setCabinPriority(boolean value) {
        
        cabinPriority_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Used only for Climate Schedules
       * </pre>
       *
       * <code>bool CabinPriority = 6;</code>
       */
      public Builder clearCabinPriority() {
        
        cabinPriority_ = false;
        onChanged();
        return this;
      }

      private com.fca.uconnect.global.GlobalUconnectExtPHEV.Days scheduledDays_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.Days, com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.DaysOrBuilder> scheduledDaysBuilder_;
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      public boolean hasScheduledDays() {
        return scheduledDaysBuilder_ != null || scheduledDays_ != null;
      }
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.Days getScheduledDays() {
        if (scheduledDaysBuilder_ == null) {
          return scheduledDays_ == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.getDefaultInstance() : scheduledDays_;
        } else {
          return scheduledDaysBuilder_.getMessage();
        }
      }
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      public Builder setScheduledDays(com.fca.uconnect.global.GlobalUconnectExtPHEV.Days value) {
        if (scheduledDaysBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          scheduledDays_ = value;
          onChanged();
        } else {
          scheduledDaysBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      public Builder setScheduledDays(
          com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.Builder builderForValue) {
        if (scheduledDaysBuilder_ == null) {
          scheduledDays_ = builderForValue.build();
          onChanged();
        } else {
          scheduledDaysBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      public Builder mergeScheduledDays(com.fca.uconnect.global.GlobalUconnectExtPHEV.Days value) {
        if (scheduledDaysBuilder_ == null) {
          if (scheduledDays_ != null) {
            scheduledDays_ =
              com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.newBuilder(scheduledDays_).mergeFrom(value).buildPartial();
          } else {
            scheduledDays_ = value;
          }
          onChanged();
        } else {
          scheduledDaysBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      public Builder clearScheduledDays() {
        if (scheduledDaysBuilder_ == null) {
          scheduledDays_ = null;
          onChanged();
        } else {
          scheduledDays_ = null;
          scheduledDaysBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.Builder getScheduledDaysBuilder() {
        
        onChanged();
        return getScheduledDaysFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.DaysOrBuilder getScheduledDaysOrBuilder() {
        if (scheduledDaysBuilder_ != null) {
          return scheduledDaysBuilder_.getMessageOrBuilder();
        } else {
          return scheduledDays_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.getDefaultInstance() : scheduledDays_;
        }
      }
      /**
       * <code>.com.fca.uconnect.global.Days scheduledDays = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPHEV.Days, com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.DaysOrBuilder> 
          getScheduledDaysFieldBuilder() {
        if (scheduledDaysBuilder_ == null) {
          scheduledDaysBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPHEV.Days, com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.Builder, com.fca.uconnect.global.GlobalUconnectExtPHEV.DaysOrBuilder>(
                  getScheduledDays(),
                  getParentForChildren(),
                  isClean());
          scheduledDays_ = null;
        }
        return scheduledDaysBuilder_;
      }

      private boolean repeatSchedule_ ;
      /**
       * <code>bool RepeatSchedule = 8;</code>
       */
      public boolean getRepeatSchedule() {
        return repeatSchedule_;
      }
      /**
       * <code>bool RepeatSchedule = 8;</code>
       */
      public Builder setRepeatSchedule(boolean value) {
        
        repeatSchedule_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool RepeatSchedule = 8;</code>
       */
      public Builder clearRepeatSchedule() {
        
        repeatSchedule_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeScheduleV2)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeScheduleV2)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleV2 getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DaysOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.Days)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>bool isSunday = 1;</code>
     */
    boolean getIsSunday();

    /**
     * <code>bool isMonday = 2;</code>
     */
    boolean getIsMonday();

    /**
     * <code>bool isTuesday = 3;</code>
     */
    boolean getIsTuesday();

    /**
     * <code>bool isWednesday = 4;</code>
     */
    boolean getIsWednesday();

    /**
     * <code>bool isThursday = 5;</code>
     */
    boolean getIsThursday();

    /**
     * <code>bool isFriday = 6;</code>
     */
    boolean getIsFriday();

    /**
     * <code>bool isSaturday = 7;</code>
     */
    boolean getIsSaturday();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.Days}
   */
  public  static final class Days extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.Days)
      DaysOrBuilder {
    // Use Days.newBuilder() to construct.
    private Days(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Days() {
      isSunday_ = false;
      isMonday_ = false;
      isTuesday_ = false;
      isWednesday_ = false;
      isThursday_ = false;
      isFriday_ = false;
      isSaturday_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private Days(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              isSunday_ = input.readBool();
              break;
            }
            case 16: {

              isMonday_ = input.readBool();
              break;
            }
            case 24: {

              isTuesday_ = input.readBool();
              break;
            }
            case 32: {

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

              isThursday_ = input.readBool();
              break;
            }
            case 48: {

              isFriday_ = input.readBool();
              break;
            }
            case 56: {

              isSaturday_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_Days_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_Days_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.Builder.class);
    }

    public static final int ISSUNDAY_FIELD_NUMBER = 1;
    private boolean isSunday_;
    /**
     * <code>bool isSunday = 1;</code>
     */
    public boolean getIsSunday() {
      return isSunday_;
    }

    public static final int ISMONDAY_FIELD_NUMBER = 2;
    private boolean isMonday_;
    /**
     * <code>bool isMonday = 2;</code>
     */
    public boolean getIsMonday() {
      return isMonday_;
    }

    public static final int ISTUESDAY_FIELD_NUMBER = 3;
    private boolean isTuesday_;
    /**
     * <code>bool isTuesday = 3;</code>
     */
    public boolean getIsTuesday() {
      return isTuesday_;
    }

    public static final int ISWEDNESDAY_FIELD_NUMBER = 4;
    private boolean isWednesday_;
    /**
     * <code>bool isWednesday = 4;</code>
     */
    public boolean getIsWednesday() {
      return isWednesday_;
    }

    public static final int ISTHURSDAY_FIELD_NUMBER = 5;
    private boolean isThursday_;
    /**
     * <code>bool isThursday = 5;</code>
     */
    public boolean getIsThursday() {
      return isThursday_;
    }

    public static final int ISFRIDAY_FIELD_NUMBER = 6;
    private boolean isFriday_;
    /**
     * <code>bool isFriday = 6;</code>
     */
    public boolean getIsFriday() {
      return isFriday_;
    }

    public static final int ISSATURDAY_FIELD_NUMBER = 7;
    private boolean isSaturday_;
    /**
     * <code>bool isSaturday = 7;</code>
     */
    public boolean getIsSaturday() {
      return isSaturday_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (isSunday_ != false) {
        output.writeBool(1, isSunday_);
      }
      if (isMonday_ != false) {
        output.writeBool(2, isMonday_);
      }
      if (isTuesday_ != false) {
        output.writeBool(3, isTuesday_);
      }
      if (isWednesday_ != false) {
        output.writeBool(4, isWednesday_);
      }
      if (isThursday_ != false) {
        output.writeBool(5, isThursday_);
      }
      if (isFriday_ != false) {
        output.writeBool(6, isFriday_);
      }
      if (isSaturday_ != false) {
        output.writeBool(7, isSaturday_);
      }
    }

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

      size = 0;
      if (isSunday_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, isSunday_);
      }
      if (isMonday_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isMonday_);
      }
      if (isTuesday_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isTuesday_);
      }
      if (isWednesday_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, isWednesday_);
      }
      if (isThursday_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, isThursday_);
      }
      if (isFriday_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, isFriday_);
      }
      if (isSaturday_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, isSaturday_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.Days)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.Days other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.Days) obj;

      boolean result = true;
      result = result && (getIsSunday()
          == other.getIsSunday());
      result = result && (getIsMonday()
          == other.getIsMonday());
      result = result && (getIsTuesday()
          == other.getIsTuesday());
      result = result && (getIsWednesday()
          == other.getIsWednesday());
      result = result && (getIsThursday()
          == other.getIsThursday());
      result = result && (getIsFriday()
          == other.getIsFriday());
      result = result && (getIsSaturday()
          == other.getIsSaturday());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ISSUNDAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsSunday());
      hash = (37 * hash) + ISMONDAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsMonday());
      hash = (37 * hash) + ISTUESDAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsTuesday());
      hash = (37 * hash) + ISWEDNESDAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsWednesday());
      hash = (37 * hash) + ISTHURSDAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsThursday());
      hash = (37 * hash) + ISFRIDAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsFriday());
      hash = (37 * hash) + ISSATURDAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsSaturday());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.Days prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.Days}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.Days)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.DaysOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_Days_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_Days_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        isMonday_ = false;

        isTuesday_ = false;

        isWednesday_ = false;

        isThursday_ = false;

        isFriday_ = false;

        isSaturday_ = false;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_Days_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.Days getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.Days build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.Days result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.Days buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.Days result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.Days(this);
        result.isSunday_ = isSunday_;
        result.isMonday_ = isMonday_;
        result.isTuesday_ = isTuesday_;
        result.isWednesday_ = isWednesday_;
        result.isThursday_ = isThursday_;
        result.isFriday_ = isFriday_;
        result.isSaturday_ = isSaturday_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.Days) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.Days)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.Days other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.Days.getDefaultInstance()) return this;
        if (other.getIsSunday() != false) {
          setIsSunday(other.getIsSunday());
        }
        if (other.getIsMonday() != false) {
          setIsMonday(other.getIsMonday());
        }
        if (other.getIsTuesday() != false) {
          setIsTuesday(other.getIsTuesday());
        }
        if (other.getIsWednesday() != false) {
          setIsWednesday(other.getIsWednesday());
        }
        if (other.getIsThursday() != false) {
          setIsThursday(other.getIsThursday());
        }
        if (other.getIsFriday() != false) {
          setIsFriday(other.getIsFriday());
        }
        if (other.getIsSaturday() != false) {
          setIsSaturday(other.getIsSaturday());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.Days parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.Days) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private boolean isSunday_ ;
      /**
       * <code>bool isSunday = 1;</code>
       */
      public boolean getIsSunday() {
        return isSunday_;
      }
      /**
       * <code>bool isSunday = 1;</code>
       */
      public Builder setIsSunday(boolean value) {
        
        isSunday_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool isSunday = 1;</code>
       */
      public Builder clearIsSunday() {
        
        isSunday_ = false;
        onChanged();
        return this;
      }

      private boolean isMonday_ ;
      /**
       * <code>bool isMonday = 2;</code>
       */
      public boolean getIsMonday() {
        return isMonday_;
      }
      /**
       * <code>bool isMonday = 2;</code>
       */
      public Builder setIsMonday(boolean value) {
        
        isMonday_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool isMonday = 2;</code>
       */
      public Builder clearIsMonday() {
        
        isMonday_ = false;
        onChanged();
        return this;
      }

      private boolean isTuesday_ ;
      /**
       * <code>bool isTuesday = 3;</code>
       */
      public boolean getIsTuesday() {
        return isTuesday_;
      }
      /**
       * <code>bool isTuesday = 3;</code>
       */
      public Builder setIsTuesday(boolean value) {
        
        isTuesday_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool isTuesday = 3;</code>
       */
      public Builder clearIsTuesday() {
        
        isTuesday_ = false;
        onChanged();
        return this;
      }

      private boolean isWednesday_ ;
      /**
       * <code>bool isWednesday = 4;</code>
       */
      public boolean getIsWednesday() {
        return isWednesday_;
      }
      /**
       * <code>bool isWednesday = 4;</code>
       */
      public Builder setIsWednesday(boolean value) {
        
        isWednesday_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool isWednesday = 4;</code>
       */
      public Builder clearIsWednesday() {
        
        isWednesday_ = false;
        onChanged();
        return this;
      }

      private boolean isThursday_ ;
      /**
       * <code>bool isThursday = 5;</code>
       */
      public boolean getIsThursday() {
        return isThursday_;
      }
      /**
       * <code>bool isThursday = 5;</code>
       */
      public Builder setIsThursday(boolean value) {
        
        isThursday_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool isThursday = 5;</code>
       */
      public Builder clearIsThursday() {
        
        isThursday_ = false;
        onChanged();
        return this;
      }

      private boolean isFriday_ ;
      /**
       * <code>bool isFriday = 6;</code>
       */
      public boolean getIsFriday() {
        return isFriday_;
      }
      /**
       * <code>bool isFriday = 6;</code>
       */
      public Builder setIsFriday(boolean value) {
        
        isFriday_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool isFriday = 6;</code>
       */
      public Builder clearIsFriday() {
        
        isFriday_ = false;
        onChanged();
        return this;
      }

      private boolean isSaturday_ ;
      /**
       * <code>bool isSaturday = 7;</code>
       */
      public boolean getIsSaturday() {
        return isSaturday_;
      }
      /**
       * <code>bool isSaturday = 7;</code>
       */
      public Builder setIsSaturday(boolean value) {
        
        isSaturday_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool isSaturday = 7;</code>
       */
      public Builder clearIsSaturday() {
        
        isSaturday_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.Days)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.Days)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.Days DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.Days();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.Days getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.Days getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargeScheduleOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargeSchedule)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
     */
    int getEnableChargeScheduleValue();
    /**
     * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType getEnableChargeSchedule();

    /**
     * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
     */
    int getScheduleTypeValue();
    /**
     * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum getScheduleType();

    /**
     * <code>bool chargeUntilFull = 2;</code>
     */
    boolean getChargeUntilFull();

    /**
     * <pre>
     *&#47;Expressed as 00:00 to 23:00. In example integer 530 would translate to 05:30 hours.
     * </pre>
     *
     * <code>int32 scheduleStartTime = 3;</code>
     */
    int getScheduleStartTime();

    /**
     * <pre>
     *&#47; Expressed as 00:00 to 23:00. In example integer 1030 would translate to 10:30 hours
     * </pre>
     *
     * <code>int32 scheduleEndTime = 4;</code>
     */
    int getScheduleEndTime();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.ChargeSchedule}
   */
  public  static final class ChargeSchedule extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargeSchedule)
      ChargeScheduleOrBuilder {
    // Use ChargeSchedule.newBuilder() to construct.
    private ChargeSchedule(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChargeSchedule() {
      enableChargeSchedule_ = 0;
      scheduleType_ = 0;
      chargeUntilFull_ = false;
      scheduleStartTime_ = 0;
      scheduleEndTime_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ChargeSchedule(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              scheduleType_ = rawValue;
              break;
            }
            case 16: {

              chargeUntilFull_ = input.readBool();
              break;
            }
            case 24: {

              scheduleStartTime_ = input.readInt32();
              break;
            }
            case 32: {

              scheduleEndTime_ = input.readInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

              enableChargeSchedule_ = rawValue;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeSchedule_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeSchedule_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum}
     */
    public enum ScheduleTypeEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>WEEKDAY = 0;</code>
       */
      WEEKDAY(0),
      /**
       * <code>WEEKEND = 1;</code>
       */
      WEEKEND(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>WEEKDAY = 0;</code>
       */
      public static final int WEEKDAY_VALUE = 0;
      /**
       * <code>WEEKEND = 1;</code>
       */
      public static final int WEEKEND_VALUE = 1;


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

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

      public static ScheduleTypeEnum forNumber(int value) {
        switch (value) {
          case 0: return WEEKDAY;
          case 1: return WEEKEND;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType}
     */
    public enum EnableChargeScheduleType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>DEFAULT = 0;</code>
       */
      DEFAULT(0),
      /**
       * <code>ENABLE_SCHEDULE = 1;</code>
       */
      ENABLE_SCHEDULE(1),
      /**
       * <code>DISABLE_SCHEDULE = 2;</code>
       */
      DISABLE_SCHEDULE(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>DEFAULT = 0;</code>
       */
      public static final int DEFAULT_VALUE = 0;
      /**
       * <code>ENABLE_SCHEDULE = 1;</code>
       */
      public static final int ENABLE_SCHEDULE_VALUE = 1;
      /**
       * <code>DISABLE_SCHEDULE = 2;</code>
       */
      public static final int DISABLE_SCHEDULE_VALUE = 2;


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

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

      public static EnableChargeScheduleType forNumber(int value) {
        switch (value) {
          case 0: return DEFAULT;
          case 1: return ENABLE_SCHEDULE;
          case 2: return DISABLE_SCHEDULE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.getDescriptor().getEnumTypes().get(1);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType)
    }

    public static final int ENABLECHARGESCHEDULE_FIELD_NUMBER = 5;
    private int enableChargeSchedule_;
    /**
     * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
     */
    public int getEnableChargeScheduleValue() {
      return enableChargeSchedule_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType getEnableChargeSchedule() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType.valueOf(enableChargeSchedule_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType.UNRECOGNIZED : result;
    }

    public static final int SCHEDULETYPE_FIELD_NUMBER = 1;
    private int scheduleType_;
    /**
     * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
     */
    public int getScheduleTypeValue() {
      return scheduleType_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum getScheduleType() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum.valueOf(scheduleType_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum.UNRECOGNIZED : result;
    }

    public static final int CHARGEUNTILFULL_FIELD_NUMBER = 2;
    private boolean chargeUntilFull_;
    /**
     * <code>bool chargeUntilFull = 2;</code>
     */
    public boolean getChargeUntilFull() {
      return chargeUntilFull_;
    }

    public static final int SCHEDULESTARTTIME_FIELD_NUMBER = 3;
    private int scheduleStartTime_;
    /**
     * <pre>
     *&#47;Expressed as 00:00 to 23:00. In example integer 530 would translate to 05:30 hours.
     * </pre>
     *
     * <code>int32 scheduleStartTime = 3;</code>
     */
    public int getScheduleStartTime() {
      return scheduleStartTime_;
    }

    public static final int SCHEDULEENDTIME_FIELD_NUMBER = 4;
    private int scheduleEndTime_;
    /**
     * <pre>
     *&#47; Expressed as 00:00 to 23:00. In example integer 1030 would translate to 10:30 hours
     * </pre>
     *
     * <code>int32 scheduleEndTime = 4;</code>
     */
    public int getScheduleEndTime() {
      return scheduleEndTime_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (scheduleType_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum.WEEKDAY.getNumber()) {
        output.writeEnum(1, scheduleType_);
      }
      if (chargeUntilFull_ != false) {
        output.writeBool(2, chargeUntilFull_);
      }
      if (scheduleStartTime_ != 0) {
        output.writeInt32(3, scheduleStartTime_);
      }
      if (scheduleEndTime_ != 0) {
        output.writeInt32(4, scheduleEndTime_);
      }
      if (enableChargeSchedule_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType.DEFAULT.getNumber()) {
        output.writeEnum(5, enableChargeSchedule_);
      }
    }

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

      size = 0;
      if (scheduleType_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum.WEEKDAY.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, scheduleType_);
      }
      if (chargeUntilFull_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, chargeUntilFull_);
      }
      if (scheduleStartTime_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, scheduleStartTime_);
      }
      if (scheduleEndTime_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, scheduleEndTime_);
      }
      if (enableChargeSchedule_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType.DEFAULT.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, enableChargeSchedule_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule) obj;

      boolean result = true;
      result = result && enableChargeSchedule_ == other.enableChargeSchedule_;
      result = result && scheduleType_ == other.scheduleType_;
      result = result && (getChargeUntilFull()
          == other.getChargeUntilFull());
      result = result && (getScheduleStartTime()
          == other.getScheduleStartTime());
      result = result && (getScheduleEndTime()
          == other.getScheduleEndTime());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ENABLECHARGESCHEDULE_FIELD_NUMBER;
      hash = (53 * hash) + enableChargeSchedule_;
      hash = (37 * hash) + SCHEDULETYPE_FIELD_NUMBER;
      hash = (53 * hash) + scheduleType_;
      hash = (37 * hash) + CHARGEUNTILFULL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getChargeUntilFull());
      hash = (37 * hash) + SCHEDULESTARTTIME_FIELD_NUMBER;
      hash = (53 * hash) + getScheduleStartTime();
      hash = (37 * hash) + SCHEDULEENDTIME_FIELD_NUMBER;
      hash = (53 * hash) + getScheduleEndTime();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.ChargeSchedule}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargeSchedule)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeScheduleOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeSchedule_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeSchedule_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        scheduleType_ = 0;

        chargeUntilFull_ = false;

        scheduleStartTime_ = 0;

        scheduleEndTime_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargeSchedule_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule(this);
        result.enableChargeSchedule_ = enableChargeSchedule_;
        result.scheduleType_ = scheduleType_;
        result.chargeUntilFull_ = chargeUntilFull_;
        result.scheduleStartTime_ = scheduleStartTime_;
        result.scheduleEndTime_ = scheduleEndTime_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.getDefaultInstance()) return this;
        if (other.enableChargeSchedule_ != 0) {
          setEnableChargeScheduleValue(other.getEnableChargeScheduleValue());
        }
        if (other.scheduleType_ != 0) {
          setScheduleTypeValue(other.getScheduleTypeValue());
        }
        if (other.getChargeUntilFull() != false) {
          setChargeUntilFull(other.getChargeUntilFull());
        }
        if (other.getScheduleStartTime() != 0) {
          setScheduleStartTime(other.getScheduleStartTime());
        }
        if (other.getScheduleEndTime() != 0) {
          setScheduleEndTime(other.getScheduleEndTime());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int enableChargeSchedule_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
       */
      public int getEnableChargeScheduleValue() {
        return enableChargeSchedule_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
       */
      public Builder setEnableChargeScheduleValue(int value) {
        enableChargeSchedule_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType getEnableChargeSchedule() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType.valueOf(enableChargeSchedule_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
       */
      public Builder setEnableChargeSchedule(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.EnableChargeScheduleType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        enableChargeSchedule_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;</code>
       */
      public Builder clearEnableChargeSchedule() {
        
        enableChargeSchedule_ = 0;
        onChanged();
        return this;
      }

      private int scheduleType_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
       */
      public int getScheduleTypeValue() {
        return scheduleType_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
       */
      public Builder setScheduleTypeValue(int value) {
        scheduleType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum getScheduleType() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum.valueOf(scheduleType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
       */
      public Builder setScheduleType(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule.ScheduleTypeEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        scheduleType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;</code>
       */
      public Builder clearScheduleType() {
        
        scheduleType_ = 0;
        onChanged();
        return this;
      }

      private boolean chargeUntilFull_ ;
      /**
       * <code>bool chargeUntilFull = 2;</code>
       */
      public boolean getChargeUntilFull() {
        return chargeUntilFull_;
      }
      /**
       * <code>bool chargeUntilFull = 2;</code>
       */
      public Builder setChargeUntilFull(boolean value) {
        
        chargeUntilFull_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool chargeUntilFull = 2;</code>
       */
      public Builder clearChargeUntilFull() {
        
        chargeUntilFull_ = false;
        onChanged();
        return this;
      }

      private int scheduleStartTime_ ;
      /**
       * <pre>
       *&#47;Expressed as 00:00 to 23:00. In example integer 530 would translate to 05:30 hours.
       * </pre>
       *
       * <code>int32 scheduleStartTime = 3;</code>
       */
      public int getScheduleStartTime() {
        return scheduleStartTime_;
      }
      /**
       * <pre>
       *&#47;Expressed as 00:00 to 23:00. In example integer 530 would translate to 05:30 hours.
       * </pre>
       *
       * <code>int32 scheduleStartTime = 3;</code>
       */
      public Builder setScheduleStartTime(int value) {
        
        scheduleStartTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;Expressed as 00:00 to 23:00. In example integer 530 would translate to 05:30 hours.
       * </pre>
       *
       * <code>int32 scheduleStartTime = 3;</code>
       */
      public Builder clearScheduleStartTime() {
        
        scheduleStartTime_ = 0;
        onChanged();
        return this;
      }

      private int scheduleEndTime_ ;
      /**
       * <pre>
       *&#47; Expressed as 00:00 to 23:00. In example integer 1030 would translate to 10:30 hours
       * </pre>
       *
       * <code>int32 scheduleEndTime = 4;</code>
       */
      public int getScheduleEndTime() {
        return scheduleEndTime_;
      }
      /**
       * <pre>
       *&#47; Expressed as 00:00 to 23:00. In example integer 1030 would translate to 10:30 hours
       * </pre>
       *
       * <code>int32 scheduleEndTime = 4;</code>
       */
      public Builder setScheduleEndTime(int value) {
        
        scheduleEndTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Expressed as 00:00 to 23:00. In example integer 1030 would translate to 10:30 hours
       * </pre>
       *
       * <code>int32 scheduleEndTime = 4;</code>
       */
      public Builder clearScheduleEndTime() {
        
        scheduleEndTime_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargeSchedule)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargeSchedule)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargeSchedule getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChargePowerPreferenceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.ChargePowerPreference)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
     */
    int getPreferenceValue();
    /**
     * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum getPreference();
  }
  /**
   * <pre>
   *&#47; Expressed as percent of maximum current output for charge type
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.ChargePowerPreference}
   */
  public  static final class ChargePowerPreference extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.ChargePowerPreference)
      ChargePowerPreferenceOrBuilder {
    // Use ChargePowerPreference.newBuilder() to construct.
    private ChargePowerPreference(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChargePowerPreference() {
      preference_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ChargePowerPreference(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();

              preference_ = rawValue;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargePowerPreference_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargePowerPreference_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum}
     */
    public enum PreferencesEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NOT_USED_VALUE = 0;</code>
       */
      NOT_USED_VALUE(0),
      /**
       * <pre>
       *&#47; Low (20% max A)
       * </pre>
       *
       * <code>LEVEL_ONE = 1;</code>
       */
      LEVEL_ONE(1),
      /**
       * <pre>
       *&#47; Low+ (40% max A)
       * </pre>
       *
       * <code>LEVEL_TWO = 2;</code>
       */
      LEVEL_TWO(2),
      /**
       * <pre>
       *&#47; Med (60% max A)
       * </pre>
       *
       * <code>LEVEL_THREE = 3;</code>
       */
      LEVEL_THREE(3),
      /**
       * <pre>
       *&#47; Med+ (80% max A)
       * </pre>
       *
       * <code>LEVEL_FOUR = 4;</code>
       */
      LEVEL_FOUR(4),
      /**
       * <pre>
       *&#47; High (100% max A)
       * </pre>
       *
       * <code>LEVEL_FIVE = 5;</code>
       */
      LEVEL_FIVE(5),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NOT_USED_VALUE = 0;</code>
       */
      public static final int NOT_USED_VALUE_VALUE = 0;
      /**
       * <pre>
       *&#47; Low (20% max A)
       * </pre>
       *
       * <code>LEVEL_ONE = 1;</code>
       */
      public static final int LEVEL_ONE_VALUE = 1;
      /**
       * <pre>
       *&#47; Low+ (40% max A)
       * </pre>
       *
       * <code>LEVEL_TWO = 2;</code>
       */
      public static final int LEVEL_TWO_VALUE = 2;
      /**
       * <pre>
       *&#47; Med (60% max A)
       * </pre>
       *
       * <code>LEVEL_THREE = 3;</code>
       */
      public static final int LEVEL_THREE_VALUE = 3;
      /**
       * <pre>
       *&#47; Med+ (80% max A)
       * </pre>
       *
       * <code>LEVEL_FOUR = 4;</code>
       */
      public static final int LEVEL_FOUR_VALUE = 4;
      /**
       * <pre>
       *&#47; High (100% max A)
       * </pre>
       *
       * <code>LEVEL_FIVE = 5;</code>
       */
      public static final int LEVEL_FIVE_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;
      }

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

      public static PreferencesEnum forNumber(int value) {
        switch (value) {
          case 0: return NOT_USED_VALUE;
          case 1: return LEVEL_ONE;
          case 2: return LEVEL_TWO;
          case 3: return LEVEL_THREE;
          case 4: return LEVEL_FOUR;
          case 5: return LEVEL_FIVE;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.getDescriptor().getEnumTypes().get(0);
      }

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

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum)
    }

    public static final int PREFERENCE_FIELD_NUMBER = 1;
    private int preference_;
    /**
     * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
     */
    public int getPreferenceValue() {
      return preference_;
    }
    /**
     * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum getPreference() {
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum.valueOf(preference_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum.UNRECOGNIZED : result;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (preference_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum.NOT_USED_VALUE.getNumber()) {
        output.writeEnum(1, preference_);
      }
    }

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

      size = 0;
      if (preference_ != com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum.NOT_USED_VALUE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, preference_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference other = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference) obj;

      boolean result = true;
      result = result && preference_ == other.preference_;
      return result;
    }

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

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

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *&#47; Expressed as percent of maximum current output for charge type
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.ChargePowerPreference}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.ChargePowerPreference)
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreferenceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargePowerPreference_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargePowerPreference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.class, com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.internal_static_com_fca_uconnect_global_ChargePowerPreference_descriptor;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.getDefaultInstance();
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference build() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference result = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference(this);
        result.preference_ = preference_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.getDefaultInstance()) return this;
        if (other.preference_ != 0) {
          setPreferenceValue(other.getPreferenceValue());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int preference_ = 0;
      /**
       * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
       */
      public int getPreferenceValue() {
        return preference_;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
       */
      public Builder setPreferenceValue(int value) {
        preference_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum getPreference() {
        com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum result = com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum.valueOf(preference_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum.UNRECOGNIZED : result;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
       */
      public Builder setPreference(com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference.PreferencesEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        preference_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.com.fca.uconnect.global.ChargePowerPreference.PreferencesEnum preference = 1;</code>
       */
      public Builder clearPreference() {
        
        preference_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.ChargePowerPreference)
    }

    // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.ChargePowerPreference)
    private static final com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference();
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPHEV.ChargePowerPreference getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeNowRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeNowRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeNowResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeNowResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeDataRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeDataRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeDataPublish_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_UpdateChargeSchedule_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_UpdateChargeSchedule_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeScheduleV2_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeScheduleV2_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_Days_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_Days_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargeSchedule_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargeSchedule_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_ChargePowerPreference_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_ChargePowerPreference_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\036Global_Uconnect_Ext_PHEV.proto\022\027com.fc" +
      "a.uconnect.global\"\236\001\n\020ChargeNowRequest\022R" +
      "\n\rchargeCommand\030\001 \001(\0162;.com.fca.uconnect" +
      ".global.ChargeNowRequest.ChargeCommandEn" +
      "um\"6\n\021ChargeCommandEnum\022\020\n\014START_CHARGE\020" +
      "\000\022\017\n\013STOP_CHARGE\020\001\"\317\001\n\021ChargeNowResponse" +
      "\022I\n\010response\030\005 \001(\01627.com.fca.uconnect.gl" +
      "obal.ChargeNowResponse.ResponseEnum\022\023\n\013i" +
      "sTransient\030\003 \001(\010\022\031\n\021failureReasonCode\030\004 " +
      "\001(\005\"?\n\014ResponseEnum\022\013\n\007SUCCESS\020\000\022\025\n\021UNPL",
      "UGGED_FAILURE\020\001\022\013\n\007FAILURE\020\002\"\023\n\021ChargeDa" +
      "taRequest\"\307\013\n\021ChargeDataPublish\022\024\n\014Batte" +
      "ryLevel\030\010 \001(\002\022Q\n\014eventTrigger\030\001 \001(\0162;.co" +
      "m.fca.uconnect.global.ChargeDataPublish." +
      "PublishEventEnum\022I\n\nplugStatus\030\002 \001(\01325.c" +
      "om.fca.uconnect.global.ChargeDataPublish" +
      ".PlugStatus\022H\n\016rangeEstimates\030\003 \001(\01320.co" +
      "m.fca.uconnect.global.ChargeDataPublish." +
      "Range\022Q\n\014chargeStatus\030\004 \001(\0162;.com.fca.uc" +
      "onnect.global.ChargeDataPublish.ChargeSt",
      "atusEnum\022@\n\017chargeSchedules\030\005 \003(\0132\'.com." +
      "fca.uconnect.global.ChargeSchedule\022D\n\021ch" +
      "argeSchedulesV2\030\n \003(\0132).com.fca.uconnect" +
      ".global.ChargeScheduleV2\022I\n\010response\030\t \001" +
      "(\01627.com.fca.uconnect.global.ChargeDataP" +
      "ublish.ResponseEnum\0323\n\005Range\022\026\n\016estimate" +
      "dRange\030\001 \001(\005\022\022\n\ntotalRange\030\002 \001(\005\032n\n\nPlug" +
      "Status\022\023\n\013isPluggedIn\030\001 \001(\010\022K\n\013chargeLev" +
      "el\030\002 \001(\01326.com.fca.uconnect.global.Charg" +
      "eDataPublish.ChargeLevel\032\362\001\n\013ChargeLevel",
      "\022K\n\013chargeLevel\030\002 \001(\01626.com.fca.uconnect" +
      ".global.ChargeDataPublish.VoltageEnum\022\"\n" +
      "\032EstimatedTimeToCharge_LEV1\030\003 \001(\t\022\"\n\032Est" +
      "imatedTimeToCharge_LEV2\030\004 \001(\t\022&\n\036Int_Est" +
      "imatedTimeToCharge_LEV1\030\005 \001(\005\022&\n\036Int_Est" +
      "imatedTimeToCharge_LEV2\030\006 \001(\005\"_\n\014Respons" +
      "eEnum\022\013\n\007SUCCESS\020\000\022\025\n\021UNPLUGGED_FAILURE\020" +
      "\001\022\013\n\007FAILURE\020\002\022\036\n\032VEHICLE_DATA_NOT_AVAIL" +
      "ABLE\020\003\"x\n\020ChargeStatusEnum\022\020\n\014NOT_CHARGI" +
      "NG\020\000\022\014\n\010CHARGING\020\001\022\024\n\020CHARGE_INTERRUPT\020\002",
      "\022\020\n\014CHARGE_FAULT\020\003\022\023\n\017CHARGE_COMPLETE\020\004\022" +
      "\007\n\003SNA\020\005\"\342\001\n\020PublishEventEnum\022\017\n\013IGNITIO" +
      "N_ON\020\000\022\020\n\014IGNITION_OFF\020\001\022\016\n\nPLUGGED_IN\020\002" +
      "\022\r\n\tUNPLUGGED\020\003\022\020\n\014CHARGE_START\020\004\022\024\n\020CHA" +
      "RGE_COMPLETED\020\005\022\026\n\022CHARGE_INTERRUPTED\020\006\022" +
      "\022\n\016CHARGE_FAULTED\020\007\022\r\n\tON_DEMAND\020\010\022\023\n\017CH" +
      "ARGE_SCHEDULE\020\t\022\024\n\020POWER_PREFERENCE\020\n\"4\n" +
      "\013VoltageEnum\022\013\n\007DEFAULT\020\000\022\013\n\007LEVEL_1\020\001\022\013" +
      "\n\007LEVEL_2\020\002\"\252\001\n\024UpdateChargeSchedule\022G\n\026" +
      "updatedChargeSchedules\030\001 \003(\0132\'.com.fca.u",
      "connect.global.ChargeSchedule\022I\n\026updateC" +
      "hargeShedulesV2\030\002 \003(\0132).com.fca.uconnect" +
      ".global.ChargeScheduleV2\"\316\002\n\020ChargeSched" +
      "uleV2\022\032\n\022EnableScheduleType\030\001 \001(\010\022L\n\014sch" +
      "eduleType\030\002 \001(\01626.com.fca.uconnect.globa" +
      "l.ChargeScheduleV2.ScheduleType\022\021\n\tStart" +
      "Time\030\003 \001(\005\022\017\n\007EndTime\030\004 \001(\005\022\024\n\014ChargeToF" +
      "ull\030\005 \001(\010\022\025\n\rCabinPriority\030\006 \001(\010\0224\n\rsche" +
      "duledDays\030\007 \001(\0132\035.com.fca.uconnect.globa" +
      "l.Days\022\026\n\016RepeatSchedule\030\010 \001(\010\"1\n\014Schedu",
      "leType\022\010\n\004NONE\020\000\022\n\n\006CHARGE\020\001\022\013\n\007CLIMATE\020" +
      "\002\"\214\001\n\004Days\022\020\n\010isSunday\030\001 \001(\010\022\020\n\010isMonday" +
      "\030\002 \001(\010\022\021\n\tisTuesday\030\003 \001(\010\022\023\n\013isWednesday" +
      "\030\004 \001(\010\022\022\n\nisThursday\030\005 \001(\010\022\020\n\010isFriday\030\006" +
      " \001(\010\022\022\n\nisSaturday\030\007 \001(\010\"\217\003\n\016ChargeSched" +
      "ule\022^\n\024enableChargeSchedule\030\005 \001(\0162@.com." +
      "fca.uconnect.global.ChargeSchedule.Enabl" +
      "eChargeScheduleType\022N\n\014scheduleType\030\001 \001(" +
      "\01628.com.fca.uconnect.global.ChargeSchedu" +
      "le.ScheduleTypeEnum\022\027\n\017chargeUntilFull\030\002",
      " \001(\010\022\031\n\021scheduleStartTime\030\003 \001(\005\022\027\n\017sched" +
      "uleEndTime\030\004 \001(\005\",\n\020ScheduleTypeEnum\022\013\n\007" +
      "WEEKDAY\020\000\022\013\n\007WEEKEND\020\001\"R\n\030EnableChargeSc" +
      "heduleType\022\013\n\007DEFAULT\020\000\022\023\n\017ENABLE_SCHEDU" +
      "LE\020\001\022\024\n\020DISABLE_SCHEDULE\020\002\"\341\001\n\025ChargePow" +
      "erPreference\022R\n\npreference\030\001 \001(\0162>.com.f" +
      "ca.uconnect.global.ChargePowerPreference" +
      ".PreferencesEnum\"t\n\017PreferencesEnum\022\022\n\016N" +
      "OT_USED_VALUE\020\000\022\r\n\tLEVEL_ONE\020\001\022\r\n\tLEVEL_" +
      "TWO\020\002\022\017\n\013LEVEL_THREE\020\003\022\016\n\nLEVEL_FOUR\020\004\022\016",
      "\n\nLEVEL_FIVE\020\005b\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_com_fca_uconnect_global_ChargeNowRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_ChargeNowRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeNowRequest_descriptor,
        new java.lang.String[] { "ChargeCommand", });
    internal_static_com_fca_uconnect_global_ChargeNowResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_ChargeNowResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeNowResponse_descriptor,
        new java.lang.String[] { "Response", "IsTransient", "FailureReasonCode", });
    internal_static_com_fca_uconnect_global_ChargeDataRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_ChargeDataRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeDataRequest_descriptor,
        new java.lang.String[] { });
    internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_fca_uconnect_global_ChargeDataPublish_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor,
        new java.lang.String[] { "BatteryLevel", "EventTrigger", "PlugStatus", "RangeEstimates", "ChargeStatus", "ChargeSchedules", "ChargeSchedulesV2", "Response", });
    internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_descriptor =
      internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeDataPublish_Range_descriptor,
        new java.lang.String[] { "EstimatedRange", "TotalRange", });
    internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_descriptor =
      internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor.getNestedTypes().get(1);
    internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeDataPublish_PlugStatus_descriptor,
        new java.lang.String[] { "IsPluggedIn", "ChargeLevel", });
    internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_descriptor =
      internal_static_com_fca_uconnect_global_ChargeDataPublish_descriptor.getNestedTypes().get(2);
    internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeDataPublish_ChargeLevel_descriptor,
        new java.lang.String[] { "ChargeLevel", "EstimatedTimeToChargeLEV1", "EstimatedTimeToChargeLEV2", "IntEstimatedTimeToChargeLEV1", "IntEstimatedTimeToChargeLEV2", });
    internal_static_com_fca_uconnect_global_UpdateChargeSchedule_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_fca_uconnect_global_UpdateChargeSchedule_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_UpdateChargeSchedule_descriptor,
        new java.lang.String[] { "UpdatedChargeSchedules", "UpdateChargeShedulesV2", });
    internal_static_com_fca_uconnect_global_ChargeScheduleV2_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_fca_uconnect_global_ChargeScheduleV2_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeScheduleV2_descriptor,
        new java.lang.String[] { "EnableScheduleType", "ScheduleType", "StartTime", "EndTime", "ChargeToFull", "CabinPriority", "ScheduledDays", "RepeatSchedule", });
    internal_static_com_fca_uconnect_global_Days_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_com_fca_uconnect_global_Days_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_Days_descriptor,
        new java.lang.String[] { "IsSunday", "IsMonday", "IsTuesday", "IsWednesday", "IsThursday", "IsFriday", "IsSaturday", });
    internal_static_com_fca_uconnect_global_ChargeSchedule_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_com_fca_uconnect_global_ChargeSchedule_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargeSchedule_descriptor,
        new java.lang.String[] { "EnableChargeSchedule", "ScheduleType", "ChargeUntilFull", "ScheduleStartTime", "ScheduleEndTime", });
    internal_static_com_fca_uconnect_global_ChargePowerPreference_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_com_fca_uconnect_global_ChargePowerPreference_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_ChargePowerPreference_descriptor,
        new java.lang.String[] { "Preference", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
