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

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "Global_Uconnect_Ext_PHEV.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)

namespace com {
namespace fca {
namespace uconnect {
namespace global {
class ChargeNowRequestDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeNowRequest> {
} _ChargeNowRequest_default_instance_;
class ChargeNowResponseDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeNowResponse> {
} _ChargeNowResponse_default_instance_;
class ChargeDataRequestDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeDataRequest> {
} _ChargeDataRequest_default_instance_;
class ChargeDataPublish_RangeDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeDataPublish_Range> {
} _ChargeDataPublish_Range_default_instance_;
class ChargeDataPublish_PlugStatusDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeDataPublish_PlugStatus> {
} _ChargeDataPublish_PlugStatus_default_instance_;
class ChargeDataPublish_ChargeLevelDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeDataPublish_ChargeLevel> {
} _ChargeDataPublish_ChargeLevel_default_instance_;
class ChargeDataPublishDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeDataPublish> {
} _ChargeDataPublish_default_instance_;
class UpdateChargeScheduleDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<UpdateChargeSchedule> {
} _UpdateChargeSchedule_default_instance_;
class ChargeScheduleV2DefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeScheduleV2> {
} _ChargeScheduleV2_default_instance_;
class DaysDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<Days> {
} _Days_default_instance_;
class ChargeScheduleDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<ChargeSchedule> {
} _ChargeSchedule_default_instance_;

namespace protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto {


namespace {

::google::protobuf::Metadata file_level_metadata[11];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[9];

}  // namespace

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
    const TableStruct::entries[] = {
  {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
};

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
    const TableStruct::aux[] = {
  ::google::protobuf::internal::AuxillaryParseTableField(),
};
PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
    TableStruct::schema[] = {
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
};

const ::google::protobuf::uint32 TableStruct::offsets[] = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeNowRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeNowRequest, chargecommand_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeNowResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeNowResponse, response_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeNowResponse, istransient_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeNowResponse, failurereasoncode_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_Range, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_Range, estimatedrange_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_Range, totalrange_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_PlugStatus, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_PlugStatus, ispluggedin_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_PlugStatus, chargelevel_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_ChargeLevel, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_ChargeLevel, chargelevel_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_ChargeLevel, estimatedtimetocharge_lev1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_ChargeLevel, estimatedtimetocharge_lev2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_ChargeLevel, int_estimatedtimetocharge_lev1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish_ChargeLevel, int_estimatedtimetocharge_lev2_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, batterylevel_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, eventtrigger_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, plugstatus_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, rangeestimates_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, chargestatus_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, chargeschedules_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, chargeschedulesv2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeDataPublish, response_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UpdateChargeSchedule, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UpdateChargeSchedule, updatedchargeschedules_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UpdateChargeSchedule, updatechargeshedulesv2_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, enablescheduletype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, scheduletype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, starttime_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, endtime_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, chargetofull_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, cabinpriority_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, scheduleddays_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeScheduleV2, repeatschedule_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Days, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Days, issunday_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Days, ismonday_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Days, istuesday_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Days, iswednesday_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Days, isthursday_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Days, isfriday_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Days, issaturday_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeSchedule, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeSchedule, enablechargeschedule_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeSchedule, scheduletype_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeSchedule, chargeuntilfull_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeSchedule, schedulestarttime_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ChargeSchedule, scheduleendtime_),
};

static const ::google::protobuf::internal::MigrationSchema schemas[] = {
  { 0, -1, sizeof(ChargeNowRequest)},
  { 6, -1, sizeof(ChargeNowResponse)},
  { 14, -1, sizeof(ChargeDataRequest)},
  { 19, -1, sizeof(ChargeDataPublish_Range)},
  { 26, -1, sizeof(ChargeDataPublish_PlugStatus)},
  { 33, -1, sizeof(ChargeDataPublish_ChargeLevel)},
  { 43, -1, sizeof(ChargeDataPublish)},
  { 56, -1, sizeof(UpdateChargeSchedule)},
  { 63, -1, sizeof(ChargeScheduleV2)},
  { 76, -1, sizeof(Days)},
  { 88, -1, sizeof(ChargeSchedule)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeNowRequest_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeNowResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeDataRequest_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeDataPublish_Range_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeDataPublish_PlugStatus_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeDataPublish_ChargeLevel_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeDataPublish_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_UpdateChargeSchedule_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeScheduleV2_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_Days_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_ChargeSchedule_default_instance_),
};

namespace {

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "Global_Uconnect_Ext_PHEV.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 11);
}

}  // namespace

void TableStruct::Shutdown() {
  _ChargeNowRequest_default_instance_.Shutdown();
  delete file_level_metadata[0].reflection;
  _ChargeNowResponse_default_instance_.Shutdown();
  delete file_level_metadata[1].reflection;
  _ChargeDataRequest_default_instance_.Shutdown();
  delete file_level_metadata[2].reflection;
  _ChargeDataPublish_Range_default_instance_.Shutdown();
  delete file_level_metadata[3].reflection;
  _ChargeDataPublish_PlugStatus_default_instance_.Shutdown();
  delete file_level_metadata[4].reflection;
  _ChargeDataPublish_ChargeLevel_default_instance_.Shutdown();
  delete file_level_metadata[5].reflection;
  _ChargeDataPublish_default_instance_.Shutdown();
  delete file_level_metadata[6].reflection;
  _UpdateChargeSchedule_default_instance_.Shutdown();
  delete file_level_metadata[7].reflection;
  _ChargeScheduleV2_default_instance_.Shutdown();
  delete file_level_metadata[8].reflection;
  _Days_default_instance_.Shutdown();
  delete file_level_metadata[9].reflection;
  _ChargeSchedule_default_instance_.Shutdown();
  delete file_level_metadata[10].reflection;
}

void TableStruct::InitDefaultsImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::internal::InitProtobufDefaults();
  _ChargeNowRequest_default_instance_.DefaultConstruct();
  _ChargeNowResponse_default_instance_.DefaultConstruct();
  _ChargeDataRequest_default_instance_.DefaultConstruct();
  _ChargeDataPublish_Range_default_instance_.DefaultConstruct();
  _ChargeDataPublish_PlugStatus_default_instance_.DefaultConstruct();
  _ChargeDataPublish_ChargeLevel_default_instance_.DefaultConstruct();
  _ChargeDataPublish_default_instance_.DefaultConstruct();
  _UpdateChargeSchedule_default_instance_.DefaultConstruct();
  _ChargeScheduleV2_default_instance_.DefaultConstruct();
  _Days_default_instance_.DefaultConstruct();
  _ChargeSchedule_default_instance_.DefaultConstruct();
  _ChargeDataPublish_PlugStatus_default_instance_.get_mutable()->chargelevel_ = const_cast< ::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel*>(
      ::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel::internal_default_instance());
  _ChargeDataPublish_default_instance_.get_mutable()->plugstatus_ = const_cast< ::com::fca::uconnect::global::ChargeDataPublish_PlugStatus*>(
      ::com::fca::uconnect::global::ChargeDataPublish_PlugStatus::internal_default_instance());
  _ChargeDataPublish_default_instance_.get_mutable()->rangeestimates_ = const_cast< ::com::fca::uconnect::global::ChargeDataPublish_Range*>(
      ::com::fca::uconnect::global::ChargeDataPublish_Range::internal_default_instance());
  _ChargeScheduleV2_default_instance_.get_mutable()->scheduleddays_ = const_cast< ::com::fca::uconnect::global::Days*>(
      ::com::fca::uconnect::global::Days::internal_default_instance());
}

void InitDefaults() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
}
void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] = {
      "\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\"\261\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\"\314\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\"4\n\013VoltageEnum\022\013\n\007DEFAUL"
      "T\020\000\022\013\n\007LEVEL_1\020\001\022\013\n\007LEVEL_2\020\002\"\252\001\n\024Update"
      "ChargeSchedule\022G\n\026updatedChargeSchedules"
      "\030\001 \003(\0132\'.com.fca.uconnect.global.ChargeS"
      "chedule\022I\n\026updateChargeShedulesV2\030\002 \003(\0132"
      ").com.fca.uconnect.global.ChargeSchedule"
      "V2\"\316\002\n\020ChargeScheduleV2\022\032\n\022EnableSchedul"
      "eType\030\001 \001(\010\022L\n\014scheduleType\030\002 \001(\01626.com."
      "fca.uconnect.global.ChargeScheduleV2.Sch"
      "eduleType\022\021\n\tStartTime\030\003 \001(\005\022\017\n\007EndTime\030"
      "\004 \001(\005\022\024\n\014ChargeToFull\030\005 \001(\010\022\025\n\rCabinPrio"
      "rity\030\006 \001(\010\0224\n\rscheduledDays\030\007 \001(\0132\035.com."
      "fca.uconnect.global.Days\022\026\n\016RepeatSchedu"
      "le\030\010 \001(\010\"1\n\014ScheduleType\022\010\n\004NONE\020\000\022\n\n\006CH"
      "ARGE\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\016ChargeSchedule\022^\n\024enableChargeSch"
      "edule\030\005 \001(\0162@.com.fca.uconnect.global.Ch"
      "argeSchedule.EnableChargeScheduleType\022N\n"
      "\014scheduleType\030\001 \001(\01628.com.fca.uconnect.g"
      "lobal.ChargeSchedule.ScheduleTypeEnum\022\027\n"
      "\017chargeUntilFull\030\002 \001(\010\022\031\n\021scheduleStartT"
      "ime\030\003 \001(\005\022\027\n\017scheduleEndTime\030\004 \001(\005\",\n\020Sc"
      "heduleTypeEnum\022\013\n\007WEEKDAY\020\000\022\013\n\007WEEKEND\020\001"
      "\"R\n\030EnableChargeScheduleType\022\013\n\007DEFAULT\020"
      "\000\022\023\n\017ENABLE_SCHEDULE\020\001\022\024\n\020DISABLE_SCHEDU"
      "LE\020\002b\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 2972);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "Global_Uconnect_Ext_PHEV.proto", &protobuf_RegisterTypes);
  ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;

}  // namespace protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto

const ::google::protobuf::EnumDescriptor* ChargeNowRequest_ChargeCommandEnum_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[0];
}
bool ChargeNowRequest_ChargeCommandEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeNowRequest_ChargeCommandEnum ChargeNowRequest::START_CHARGE;
const ChargeNowRequest_ChargeCommandEnum ChargeNowRequest::STOP_CHARGE;
const ChargeNowRequest_ChargeCommandEnum ChargeNowRequest::ChargeCommandEnum_MIN;
const ChargeNowRequest_ChargeCommandEnum ChargeNowRequest::ChargeCommandEnum_MAX;
const int ChargeNowRequest::ChargeCommandEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* ChargeNowResponse_ResponseEnum_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[1];
}
bool ChargeNowResponse_ResponseEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeNowResponse_ResponseEnum ChargeNowResponse::SUCCESS;
const ChargeNowResponse_ResponseEnum ChargeNowResponse::UNPLUGGED_FAILURE;
const ChargeNowResponse_ResponseEnum ChargeNowResponse::FAILURE;
const ChargeNowResponse_ResponseEnum ChargeNowResponse::ResponseEnum_MIN;
const ChargeNowResponse_ResponseEnum ChargeNowResponse::ResponseEnum_MAX;
const int ChargeNowResponse::ResponseEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* ChargeDataPublish_ResponseEnum_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[2];
}
bool ChargeDataPublish_ResponseEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeDataPublish_ResponseEnum ChargeDataPublish::SUCCESS;
const ChargeDataPublish_ResponseEnum ChargeDataPublish::UNPLUGGED_FAILURE;
const ChargeDataPublish_ResponseEnum ChargeDataPublish::FAILURE;
const ChargeDataPublish_ResponseEnum ChargeDataPublish::VEHICLE_DATA_NOT_AVAILABLE;
const ChargeDataPublish_ResponseEnum ChargeDataPublish::ResponseEnum_MIN;
const ChargeDataPublish_ResponseEnum ChargeDataPublish::ResponseEnum_MAX;
const int ChargeDataPublish::ResponseEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* ChargeDataPublish_ChargeStatusEnum_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[3];
}
bool ChargeDataPublish_ChargeStatusEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::NOT_CHARGING;
const ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::CHARGING;
const ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::CHARGE_INTERRUPT;
const ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::CHARGE_FAULT;
const ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::CHARGE_COMPLETE;
const ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::SNA;
const ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::ChargeStatusEnum_MIN;
const ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::ChargeStatusEnum_MAX;
const int ChargeDataPublish::ChargeStatusEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* ChargeDataPublish_PublishEventEnum_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[4];
}
bool ChargeDataPublish_PublishEventEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::IGNITION_ON;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::IGNITION_OFF;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::PLUGGED_IN;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::UNPLUGGED;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::CHARGE_START;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::CHARGE_COMPLETED;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::CHARGE_INTERRUPTED;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::CHARGE_FAULTED;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::ON_DEMAND;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::CHARGE_SCHEDULE;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::PublishEventEnum_MIN;
const ChargeDataPublish_PublishEventEnum ChargeDataPublish::PublishEventEnum_MAX;
const int ChargeDataPublish::PublishEventEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* ChargeDataPublish_VoltageEnum_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[5];
}
bool ChargeDataPublish_VoltageEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeDataPublish_VoltageEnum ChargeDataPublish::DEFAULT;
const ChargeDataPublish_VoltageEnum ChargeDataPublish::LEVEL_1;
const ChargeDataPublish_VoltageEnum ChargeDataPublish::LEVEL_2;
const ChargeDataPublish_VoltageEnum ChargeDataPublish::VoltageEnum_MIN;
const ChargeDataPublish_VoltageEnum ChargeDataPublish::VoltageEnum_MAX;
const int ChargeDataPublish::VoltageEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* ChargeScheduleV2_ScheduleType_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[6];
}
bool ChargeScheduleV2_ScheduleType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeScheduleV2_ScheduleType ChargeScheduleV2::NONE;
const ChargeScheduleV2_ScheduleType ChargeScheduleV2::CHARGE;
const ChargeScheduleV2_ScheduleType ChargeScheduleV2::CLIMATE;
const ChargeScheduleV2_ScheduleType ChargeScheduleV2::ScheduleType_MIN;
const ChargeScheduleV2_ScheduleType ChargeScheduleV2::ScheduleType_MAX;
const int ChargeScheduleV2::ScheduleType_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* ChargeSchedule_ScheduleTypeEnum_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[7];
}
bool ChargeSchedule_ScheduleTypeEnum_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeSchedule_ScheduleTypeEnum ChargeSchedule::WEEKDAY;
const ChargeSchedule_ScheduleTypeEnum ChargeSchedule::WEEKEND;
const ChargeSchedule_ScheduleTypeEnum ChargeSchedule::ScheduleTypeEnum_MIN;
const ChargeSchedule_ScheduleTypeEnum ChargeSchedule::ScheduleTypeEnum_MAX;
const int ChargeSchedule::ScheduleTypeEnum_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* ChargeSchedule_EnableChargeScheduleType_descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_enum_descriptors[8];
}
bool ChargeSchedule_EnableChargeScheduleType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const ChargeSchedule_EnableChargeScheduleType ChargeSchedule::DEFAULT;
const ChargeSchedule_EnableChargeScheduleType ChargeSchedule::ENABLE_SCHEDULE;
const ChargeSchedule_EnableChargeScheduleType ChargeSchedule::DISABLE_SCHEDULE;
const ChargeSchedule_EnableChargeScheduleType ChargeSchedule::EnableChargeScheduleType_MIN;
const ChargeSchedule_EnableChargeScheduleType ChargeSchedule::EnableChargeScheduleType_MAX;
const int ChargeSchedule::EnableChargeScheduleType_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChargeNowRequest::kChargeCommandFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeNowRequest::ChargeNowRequest()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeNowRequest)
}
ChargeNowRequest::ChargeNowRequest(const ChargeNowRequest& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  chargecommand_ = from.chargecommand_;
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeNowRequest)
}

void ChargeNowRequest::SharedCtor() {
  chargecommand_ = 0;
  _cached_size_ = 0;
}

ChargeNowRequest::~ChargeNowRequest() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeNowRequest)
  SharedDtor();
}

void ChargeNowRequest::SharedDtor() {
}

void ChargeNowRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeNowRequest::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeNowRequest& ChargeNowRequest::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeNowRequest* ChargeNowRequest::New(::google::protobuf::Arena* arena) const {
  ChargeNowRequest* n = new ChargeNowRequest;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeNowRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeNowRequest)
  chargecommand_ = 0;
}

bool ChargeNowRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeNowRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_chargecommand(static_cast< ::com::fca::uconnect::global::ChargeNowRequest_ChargeCommandEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeNowRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeNowRequest)
  return false;
#undef DO_
}

void ChargeNowRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeNowRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;
  if (this->chargecommand() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->chargecommand(), output);
  }

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

::google::protobuf::uint8* ChargeNowRequest::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeNowRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;
  if (this->chargecommand() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->chargecommand(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeNowRequest)
  return target;
}

size_t ChargeNowRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeNowRequest)
  size_t total_size = 0;

  // .com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;
  if (this->chargecommand() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->chargecommand());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeNowRequest::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeNowRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeNowRequest* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeNowRequest>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeNowRequest)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeNowRequest)
    MergeFrom(*source);
  }
}

void ChargeNowRequest::MergeFrom(const ChargeNowRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeNowRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.chargecommand() != 0) {
    set_chargecommand(from.chargecommand());
  }
}

void ChargeNowRequest::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeNowRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeNowRequest::CopyFrom(const ChargeNowRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeNowRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeNowRequest::IsInitialized() const {
  return true;
}

void ChargeNowRequest::Swap(ChargeNowRequest* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeNowRequest::InternalSwap(ChargeNowRequest* other) {
  std::swap(chargecommand_, other->chargecommand_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeNowRequest::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeNowRequest

// .com.fca.uconnect.global.ChargeNowRequest.ChargeCommandEnum chargeCommand = 1;
void ChargeNowRequest::clear_chargecommand() {
  chargecommand_ = 0;
}
::com::fca::uconnect::global::ChargeNowRequest_ChargeCommandEnum ChargeNowRequest::chargecommand() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeNowRequest.chargeCommand)
  return static_cast< ::com::fca::uconnect::global::ChargeNowRequest_ChargeCommandEnum >(chargecommand_);
}
void ChargeNowRequest::set_chargecommand(::com::fca::uconnect::global::ChargeNowRequest_ChargeCommandEnum value) {
  
  chargecommand_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeNowRequest.chargeCommand)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChargeNowResponse::kResponseFieldNumber;
const int ChargeNowResponse::kIsTransientFieldNumber;
const int ChargeNowResponse::kFailureReasonCodeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeNowResponse::ChargeNowResponse()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeNowResponse)
}
ChargeNowResponse::ChargeNowResponse(const ChargeNowResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&istransient_, &from.istransient_,
    reinterpret_cast<char*>(&response_) -
    reinterpret_cast<char*>(&istransient_) + sizeof(response_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeNowResponse)
}

void ChargeNowResponse::SharedCtor() {
  ::memset(&istransient_, 0, reinterpret_cast<char*>(&response_) -
    reinterpret_cast<char*>(&istransient_) + sizeof(response_));
  _cached_size_ = 0;
}

ChargeNowResponse::~ChargeNowResponse() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeNowResponse)
  SharedDtor();
}

void ChargeNowResponse::SharedDtor() {
}

void ChargeNowResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeNowResponse::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeNowResponse& ChargeNowResponse::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeNowResponse* ChargeNowResponse::New(::google::protobuf::Arena* arena) const {
  ChargeNowResponse* n = new ChargeNowResponse;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeNowResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeNowResponse)
  ::memset(&istransient_, 0, reinterpret_cast<char*>(&response_) -
    reinterpret_cast<char*>(&istransient_) + sizeof(response_));
}

bool ChargeNowResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeNowResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // bool isTransient = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &istransient_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 failureReasonCode = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &failurereasoncode_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_response(static_cast< ::com::fca::uconnect::global::ChargeNowResponse_ResponseEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeNowResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeNowResponse)
  return false;
#undef DO_
}

void ChargeNowResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeNowResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool isTransient = 3;
  if (this->istransient() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->istransient(), output);
  }

  // int32 failureReasonCode = 4;
  if (this->failurereasoncode() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->failurereasoncode(), output);
  }

  // .com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;
  if (this->response() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      5, this->response(), output);
  }

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

::google::protobuf::uint8* ChargeNowResponse::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeNowResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool isTransient = 3;
  if (this->istransient() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->istransient(), target);
  }

  // int32 failureReasonCode = 4;
  if (this->failurereasoncode() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->failurereasoncode(), target);
  }

  // .com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;
  if (this->response() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      5, this->response(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeNowResponse)
  return target;
}

size_t ChargeNowResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeNowResponse)
  size_t total_size = 0;

  // bool isTransient = 3;
  if (this->istransient() != 0) {
    total_size += 1 + 1;
  }

  // int32 failureReasonCode = 4;
  if (this->failurereasoncode() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->failurereasoncode());
  }

  // .com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;
  if (this->response() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->response());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeNowResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeNowResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeNowResponse* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeNowResponse>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeNowResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeNowResponse)
    MergeFrom(*source);
  }
}

void ChargeNowResponse::MergeFrom(const ChargeNowResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeNowResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.istransient() != 0) {
    set_istransient(from.istransient());
  }
  if (from.failurereasoncode() != 0) {
    set_failurereasoncode(from.failurereasoncode());
  }
  if (from.response() != 0) {
    set_response(from.response());
  }
}

void ChargeNowResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeNowResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeNowResponse::CopyFrom(const ChargeNowResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeNowResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeNowResponse::IsInitialized() const {
  return true;
}

void ChargeNowResponse::Swap(ChargeNowResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeNowResponse::InternalSwap(ChargeNowResponse* other) {
  std::swap(istransient_, other->istransient_);
  std::swap(failurereasoncode_, other->failurereasoncode_);
  std::swap(response_, other->response_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeNowResponse::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeNowResponse

// .com.fca.uconnect.global.ChargeNowResponse.ResponseEnum response = 5;
void ChargeNowResponse::clear_response() {
  response_ = 0;
}
::com::fca::uconnect::global::ChargeNowResponse_ResponseEnum ChargeNowResponse::response() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeNowResponse.response)
  return static_cast< ::com::fca::uconnect::global::ChargeNowResponse_ResponseEnum >(response_);
}
void ChargeNowResponse::set_response(::com::fca::uconnect::global::ChargeNowResponse_ResponseEnum value) {
  
  response_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeNowResponse.response)
}

// bool isTransient = 3;
void ChargeNowResponse::clear_istransient() {
  istransient_ = false;
}
bool ChargeNowResponse::istransient() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeNowResponse.isTransient)
  return istransient_;
}
void ChargeNowResponse::set_istransient(bool value) {
  
  istransient_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeNowResponse.isTransient)
}

// int32 failureReasonCode = 4;
void ChargeNowResponse::clear_failurereasoncode() {
  failurereasoncode_ = 0;
}
::google::protobuf::int32 ChargeNowResponse::failurereasoncode() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeNowResponse.failureReasonCode)
  return failurereasoncode_;
}
void ChargeNowResponse::set_failurereasoncode(::google::protobuf::int32 value) {
  
  failurereasoncode_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeNowResponse.failureReasonCode)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeDataRequest::ChargeDataRequest()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeDataRequest)
}
ChargeDataRequest::ChargeDataRequest(const ChargeDataRequest& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeDataRequest)
}

void ChargeDataRequest::SharedCtor() {
  _cached_size_ = 0;
}

ChargeDataRequest::~ChargeDataRequest() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeDataRequest)
  SharedDtor();
}

void ChargeDataRequest::SharedDtor() {
}

void ChargeDataRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeDataRequest::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeDataRequest& ChargeDataRequest::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeDataRequest* ChargeDataRequest::New(::google::protobuf::Arena* arena) const {
  ChargeDataRequest* n = new ChargeDataRequest;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeDataRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeDataRequest)
}

bool ChargeDataRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeDataRequest)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
  handle_unusual:
    if (tag == 0 ||
        ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
        ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
      goto success;
    }
    DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeDataRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeDataRequest)
  return false;
#undef DO_
}

void ChargeDataRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeDataRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

::google::protobuf::uint8* ChargeDataRequest::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeDataRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeDataRequest)
  return target;
}

size_t ChargeDataRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeDataRequest)
  size_t total_size = 0;

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeDataRequest::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeDataRequest)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeDataRequest* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeDataRequest>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeDataRequest)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeDataRequest)
    MergeFrom(*source);
  }
}

void ChargeDataRequest::MergeFrom(const ChargeDataRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeDataRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

}

void ChargeDataRequest::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeDataRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeDataRequest::CopyFrom(const ChargeDataRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeDataRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeDataRequest::IsInitialized() const {
  return true;
}

void ChargeDataRequest::Swap(ChargeDataRequest* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeDataRequest::InternalSwap(ChargeDataRequest* other) {
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeDataRequest::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeDataRequest

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChargeDataPublish_Range::kEstimatedRangeFieldNumber;
const int ChargeDataPublish_Range::kTotalRangeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeDataPublish_Range::ChargeDataPublish_Range()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeDataPublish.Range)
}
ChargeDataPublish_Range::ChargeDataPublish_Range(const ChargeDataPublish_Range& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&estimatedrange_, &from.estimatedrange_,
    reinterpret_cast<char*>(&totalrange_) -
    reinterpret_cast<char*>(&estimatedrange_) + sizeof(totalrange_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeDataPublish.Range)
}

void ChargeDataPublish_Range::SharedCtor() {
  ::memset(&estimatedrange_, 0, reinterpret_cast<char*>(&totalrange_) -
    reinterpret_cast<char*>(&estimatedrange_) + sizeof(totalrange_));
  _cached_size_ = 0;
}

ChargeDataPublish_Range::~ChargeDataPublish_Range() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeDataPublish.Range)
  SharedDtor();
}

void ChargeDataPublish_Range::SharedDtor() {
}

void ChargeDataPublish_Range::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeDataPublish_Range::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeDataPublish_Range& ChargeDataPublish_Range::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeDataPublish_Range* ChargeDataPublish_Range::New(::google::protobuf::Arena* arena) const {
  ChargeDataPublish_Range* n = new ChargeDataPublish_Range;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeDataPublish_Range::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  ::memset(&estimatedrange_, 0, reinterpret_cast<char*>(&totalrange_) -
    reinterpret_cast<char*>(&estimatedrange_) + sizeof(totalrange_));
}

bool ChargeDataPublish_Range::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int32 estimatedRange = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &estimatedrange_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 totalRange = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &totalrange_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeDataPublish.Range)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeDataPublish.Range)
  return false;
#undef DO_
}

void ChargeDataPublish_Range::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 estimatedRange = 1;
  if (this->estimatedrange() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->estimatedrange(), output);
  }

  // int32 totalRange = 2;
  if (this->totalrange() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->totalrange(), output);
  }

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

::google::protobuf::uint8* ChargeDataPublish_Range::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 estimatedRange = 1;
  if (this->estimatedrange() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->estimatedrange(), target);
  }

  // int32 totalRange = 2;
  if (this->totalrange() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->totalrange(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeDataPublish.Range)
  return target;
}

size_t ChargeDataPublish_Range::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  size_t total_size = 0;

  // int32 estimatedRange = 1;
  if (this->estimatedrange() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->estimatedrange());
  }

  // int32 totalRange = 2;
  if (this->totalrange() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->totalrange());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeDataPublish_Range::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeDataPublish_Range* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeDataPublish_Range>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeDataPublish.Range)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeDataPublish.Range)
    MergeFrom(*source);
  }
}

void ChargeDataPublish_Range::MergeFrom(const ChargeDataPublish_Range& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.estimatedrange() != 0) {
    set_estimatedrange(from.estimatedrange());
  }
  if (from.totalrange() != 0) {
    set_totalrange(from.totalrange());
  }
}

void ChargeDataPublish_Range::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeDataPublish_Range::CopyFrom(const ChargeDataPublish_Range& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeDataPublish.Range)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeDataPublish_Range::IsInitialized() const {
  return true;
}

void ChargeDataPublish_Range::Swap(ChargeDataPublish_Range* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeDataPublish_Range::InternalSwap(ChargeDataPublish_Range* other) {
  std::swap(estimatedrange_, other->estimatedrange_);
  std::swap(totalrange_, other->totalrange_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeDataPublish_Range::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeDataPublish_Range

// int32 estimatedRange = 1;
void ChargeDataPublish_Range::clear_estimatedrange() {
  estimatedrange_ = 0;
}
::google::protobuf::int32 ChargeDataPublish_Range::estimatedrange() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.Range.estimatedRange)
  return estimatedrange_;
}
void ChargeDataPublish_Range::set_estimatedrange(::google::protobuf::int32 value) {
  
  estimatedrange_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.Range.estimatedRange)
}

// int32 totalRange = 2;
void ChargeDataPublish_Range::clear_totalrange() {
  totalrange_ = 0;
}
::google::protobuf::int32 ChargeDataPublish_Range::totalrange() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.Range.totalRange)
  return totalrange_;
}
void ChargeDataPublish_Range::set_totalrange(::google::protobuf::int32 value) {
  
  totalrange_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.Range.totalRange)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChargeDataPublish_PlugStatus::kIsPluggedInFieldNumber;
const int ChargeDataPublish_PlugStatus::kChargeLevelFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeDataPublish_PlugStatus::ChargeDataPublish_PlugStatus()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
}
ChargeDataPublish_PlugStatus::ChargeDataPublish_PlugStatus(const ChargeDataPublish_PlugStatus& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_chargelevel()) {
    chargelevel_ = new ::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel(*from.chargelevel_);
  } else {
    chargelevel_ = NULL;
  }
  ispluggedin_ = from.ispluggedin_;
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
}

void ChargeDataPublish_PlugStatus::SharedCtor() {
  ::memset(&chargelevel_, 0, reinterpret_cast<char*>(&ispluggedin_) -
    reinterpret_cast<char*>(&chargelevel_) + sizeof(ispluggedin_));
  _cached_size_ = 0;
}

ChargeDataPublish_PlugStatus::~ChargeDataPublish_PlugStatus() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  SharedDtor();
}

void ChargeDataPublish_PlugStatus::SharedDtor() {
  if (this != internal_default_instance()) {
    delete chargelevel_;
  }
}

void ChargeDataPublish_PlugStatus::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeDataPublish_PlugStatus::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeDataPublish_PlugStatus& ChargeDataPublish_PlugStatus::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeDataPublish_PlugStatus* ChargeDataPublish_PlugStatus::New(::google::protobuf::Arena* arena) const {
  ChargeDataPublish_PlugStatus* n = new ChargeDataPublish_PlugStatus;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeDataPublish_PlugStatus::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  if (GetArenaNoVirtual() == NULL && chargelevel_ != NULL) {
    delete chargelevel_;
  }
  chargelevel_ = NULL;
  ispluggedin_ = false;
}

bool ChargeDataPublish_PlugStatus::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // bool isPluggedIn = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &ispluggedin_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_chargelevel()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  return false;
#undef DO_
}

void ChargeDataPublish_PlugStatus::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool isPluggedIn = 1;
  if (this->ispluggedin() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->ispluggedin(), output);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;
  if (this->has_chargelevel()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->chargelevel_, output);
  }

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

::google::protobuf::uint8* ChargeDataPublish_PlugStatus::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool isPluggedIn = 1;
  if (this->ispluggedin() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->ispluggedin(), target);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;
  if (this->has_chargelevel()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->chargelevel_, deterministic, target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  return target;
}

size_t ChargeDataPublish_PlugStatus::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  size_t total_size = 0;

  // .com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;
  if (this->has_chargelevel()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->chargelevel_);
  }

  // bool isPluggedIn = 1;
  if (this->ispluggedin() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeDataPublish_PlugStatus::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeDataPublish_PlugStatus* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeDataPublish_PlugStatus>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
    MergeFrom(*source);
  }
}

void ChargeDataPublish_PlugStatus::MergeFrom(const ChargeDataPublish_PlugStatus& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_chargelevel()) {
    mutable_chargelevel()->::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel::MergeFrom(from.chargelevel());
  }
  if (from.ispluggedin() != 0) {
    set_ispluggedin(from.ispluggedin());
  }
}

void ChargeDataPublish_PlugStatus::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeDataPublish_PlugStatus::CopyFrom(const ChargeDataPublish_PlugStatus& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeDataPublish.PlugStatus)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeDataPublish_PlugStatus::IsInitialized() const {
  return true;
}

void ChargeDataPublish_PlugStatus::Swap(ChargeDataPublish_PlugStatus* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeDataPublish_PlugStatus::InternalSwap(ChargeDataPublish_PlugStatus* other) {
  std::swap(chargelevel_, other->chargelevel_);
  std::swap(ispluggedin_, other->ispluggedin_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeDataPublish_PlugStatus::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeDataPublish_PlugStatus

// bool isPluggedIn = 1;
void ChargeDataPublish_PlugStatus::clear_ispluggedin() {
  ispluggedin_ = false;
}
bool ChargeDataPublish_PlugStatus::ispluggedin() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.PlugStatus.isPluggedIn)
  return ispluggedin_;
}
void ChargeDataPublish_PlugStatus::set_ispluggedin(bool value) {
  
  ispluggedin_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.PlugStatus.isPluggedIn)
}

// .com.fca.uconnect.global.ChargeDataPublish.ChargeLevel chargeLevel = 2;
bool ChargeDataPublish_PlugStatus::has_chargelevel() const {
  return this != internal_default_instance() && chargelevel_ != NULL;
}
void ChargeDataPublish_PlugStatus::clear_chargelevel() {
  if (GetArenaNoVirtual() == NULL && chargelevel_ != NULL) delete chargelevel_;
  chargelevel_ = NULL;
}
const ::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel& ChargeDataPublish_PlugStatus::chargelevel() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.PlugStatus.chargeLevel)
  return chargelevel_ != NULL ? *chargelevel_
                         : *::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel::internal_default_instance();
}
::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel* ChargeDataPublish_PlugStatus::mutable_chargelevel() {
  
  if (chargelevel_ == NULL) {
    chargelevel_ = new ::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ChargeDataPublish.PlugStatus.chargeLevel)
  return chargelevel_;
}
::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel* ChargeDataPublish_PlugStatus::release_chargelevel() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ChargeDataPublish.PlugStatus.chargeLevel)
  
  ::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel* temp = chargelevel_;
  chargelevel_ = NULL;
  return temp;
}
void ChargeDataPublish_PlugStatus::set_allocated_chargelevel(::com::fca::uconnect::global::ChargeDataPublish_ChargeLevel* chargelevel) {
  delete chargelevel_;
  chargelevel_ = chargelevel;
  if (chargelevel) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ChargeDataPublish.PlugStatus.chargeLevel)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChargeDataPublish_ChargeLevel::kChargeLevelFieldNumber;
const int ChargeDataPublish_ChargeLevel::kEstimatedTimeToChargeLEV1FieldNumber;
const int ChargeDataPublish_ChargeLevel::kEstimatedTimeToChargeLEV2FieldNumber;
const int ChargeDataPublish_ChargeLevel::kIntEstimatedTimeToChargeLEV1FieldNumber;
const int ChargeDataPublish_ChargeLevel::kIntEstimatedTimeToChargeLEV2FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeDataPublish_ChargeLevel::ChargeDataPublish_ChargeLevel()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
}
ChargeDataPublish_ChargeLevel::ChargeDataPublish_ChargeLevel(const ChargeDataPublish_ChargeLevel& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  estimatedtimetocharge_lev1_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.estimatedtimetocharge_lev1().size() > 0) {
    estimatedtimetocharge_lev1_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.estimatedtimetocharge_lev1_);
  }
  estimatedtimetocharge_lev2_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.estimatedtimetocharge_lev2().size() > 0) {
    estimatedtimetocharge_lev2_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.estimatedtimetocharge_lev2_);
  }
  ::memcpy(&chargelevel_, &from.chargelevel_,
    reinterpret_cast<char*>(&int_estimatedtimetocharge_lev2_) -
    reinterpret_cast<char*>(&chargelevel_) + sizeof(int_estimatedtimetocharge_lev2_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
}

void ChargeDataPublish_ChargeLevel::SharedCtor() {
  estimatedtimetocharge_lev1_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  estimatedtimetocharge_lev2_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&chargelevel_, 0, reinterpret_cast<char*>(&int_estimatedtimetocharge_lev2_) -
    reinterpret_cast<char*>(&chargelevel_) + sizeof(int_estimatedtimetocharge_lev2_));
  _cached_size_ = 0;
}

ChargeDataPublish_ChargeLevel::~ChargeDataPublish_ChargeLevel() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  SharedDtor();
}

void ChargeDataPublish_ChargeLevel::SharedDtor() {
  estimatedtimetocharge_lev1_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  estimatedtimetocharge_lev2_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ChargeDataPublish_ChargeLevel::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeDataPublish_ChargeLevel::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeDataPublish_ChargeLevel& ChargeDataPublish_ChargeLevel::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeDataPublish_ChargeLevel* ChargeDataPublish_ChargeLevel::New(::google::protobuf::Arena* arena) const {
  ChargeDataPublish_ChargeLevel* n = new ChargeDataPublish_ChargeLevel;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeDataPublish_ChargeLevel::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  estimatedtimetocharge_lev1_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  estimatedtimetocharge_lev2_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&chargelevel_, 0, reinterpret_cast<char*>(&int_estimatedtimetocharge_lev2_) -
    reinterpret_cast<char*>(&chargelevel_) + sizeof(int_estimatedtimetocharge_lev2_));
}

bool ChargeDataPublish_ChargeLevel::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_chargelevel(static_cast< ::com::fca::uconnect::global::ChargeDataPublish_VoltageEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string EstimatedTimeToCharge_LEV1 = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_estimatedtimetocharge_lev1()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->estimatedtimetocharge_lev1().data(), this->estimatedtimetocharge_lev1().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string EstimatedTimeToCharge_LEV2 = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_estimatedtimetocharge_lev2()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->estimatedtimetocharge_lev2().data(), this->estimatedtimetocharge_lev2().length(),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 Int_EstimatedTimeToCharge_LEV1 = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &int_estimatedtimetocharge_lev1_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 Int_EstimatedTimeToCharge_LEV2 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &int_estimatedtimetocharge_lev2_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  return false;
#undef DO_
}

void ChargeDataPublish_ChargeLevel::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;
  if (this->chargelevel() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->chargelevel(), output);
  }

  // string EstimatedTimeToCharge_LEV1 = 3;
  if (this->estimatedtimetocharge_lev1().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->estimatedtimetocharge_lev1().data(), this->estimatedtimetocharge_lev1().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->estimatedtimetocharge_lev1(), output);
  }

  // string EstimatedTimeToCharge_LEV2 = 4;
  if (this->estimatedtimetocharge_lev2().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->estimatedtimetocharge_lev2().data(), this->estimatedtimetocharge_lev2().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->estimatedtimetocharge_lev2(), output);
  }

  // int32 Int_EstimatedTimeToCharge_LEV1 = 5;
  if (this->int_estimatedtimetocharge_lev1() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->int_estimatedtimetocharge_lev1(), output);
  }

  // int32 Int_EstimatedTimeToCharge_LEV2 = 6;
  if (this->int_estimatedtimetocharge_lev2() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->int_estimatedtimetocharge_lev2(), output);
  }

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

::google::protobuf::uint8* ChargeDataPublish_ChargeLevel::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;
  if (this->chargelevel() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      2, this->chargelevel(), target);
  }

  // string EstimatedTimeToCharge_LEV1 = 3;
  if (this->estimatedtimetocharge_lev1().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->estimatedtimetocharge_lev1().data(), this->estimatedtimetocharge_lev1().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->estimatedtimetocharge_lev1(), target);
  }

  // string EstimatedTimeToCharge_LEV2 = 4;
  if (this->estimatedtimetocharge_lev2().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->estimatedtimetocharge_lev2().data(), this->estimatedtimetocharge_lev2().length(),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->estimatedtimetocharge_lev2(), target);
  }

  // int32 Int_EstimatedTimeToCharge_LEV1 = 5;
  if (this->int_estimatedtimetocharge_lev1() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->int_estimatedtimetocharge_lev1(), target);
  }

  // int32 Int_EstimatedTimeToCharge_LEV2 = 6;
  if (this->int_estimatedtimetocharge_lev2() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->int_estimatedtimetocharge_lev2(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  return target;
}

size_t ChargeDataPublish_ChargeLevel::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  size_t total_size = 0;

  // string EstimatedTimeToCharge_LEV1 = 3;
  if (this->estimatedtimetocharge_lev1().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->estimatedtimetocharge_lev1());
  }

  // string EstimatedTimeToCharge_LEV2 = 4;
  if (this->estimatedtimetocharge_lev2().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->estimatedtimetocharge_lev2());
  }

  // .com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;
  if (this->chargelevel() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->chargelevel());
  }

  // int32 Int_EstimatedTimeToCharge_LEV1 = 5;
  if (this->int_estimatedtimetocharge_lev1() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->int_estimatedtimetocharge_lev1());
  }

  // int32 Int_EstimatedTimeToCharge_LEV2 = 6;
  if (this->int_estimatedtimetocharge_lev2() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->int_estimatedtimetocharge_lev2());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeDataPublish_ChargeLevel::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeDataPublish_ChargeLevel* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeDataPublish_ChargeLevel>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
    MergeFrom(*source);
  }
}

void ChargeDataPublish_ChargeLevel::MergeFrom(const ChargeDataPublish_ChargeLevel& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.estimatedtimetocharge_lev1().size() > 0) {

    estimatedtimetocharge_lev1_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.estimatedtimetocharge_lev1_);
  }
  if (from.estimatedtimetocharge_lev2().size() > 0) {

    estimatedtimetocharge_lev2_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.estimatedtimetocharge_lev2_);
  }
  if (from.chargelevel() != 0) {
    set_chargelevel(from.chargelevel());
  }
  if (from.int_estimatedtimetocharge_lev1() != 0) {
    set_int_estimatedtimetocharge_lev1(from.int_estimatedtimetocharge_lev1());
  }
  if (from.int_estimatedtimetocharge_lev2() != 0) {
    set_int_estimatedtimetocharge_lev2(from.int_estimatedtimetocharge_lev2());
  }
}

void ChargeDataPublish_ChargeLevel::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeDataPublish_ChargeLevel::CopyFrom(const ChargeDataPublish_ChargeLevel& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeDataPublish_ChargeLevel::IsInitialized() const {
  return true;
}

void ChargeDataPublish_ChargeLevel::Swap(ChargeDataPublish_ChargeLevel* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeDataPublish_ChargeLevel::InternalSwap(ChargeDataPublish_ChargeLevel* other) {
  estimatedtimetocharge_lev1_.Swap(&other->estimatedtimetocharge_lev1_);
  estimatedtimetocharge_lev2_.Swap(&other->estimatedtimetocharge_lev2_);
  std::swap(chargelevel_, other->chargelevel_);
  std::swap(int_estimatedtimetocharge_lev1_, other->int_estimatedtimetocharge_lev1_);
  std::swap(int_estimatedtimetocharge_lev2_, other->int_estimatedtimetocharge_lev2_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeDataPublish_ChargeLevel::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeDataPublish_ChargeLevel

// .com.fca.uconnect.global.ChargeDataPublish.VoltageEnum chargeLevel = 2;
void ChargeDataPublish_ChargeLevel::clear_chargelevel() {
  chargelevel_ = 0;
}
::com::fca::uconnect::global::ChargeDataPublish_VoltageEnum ChargeDataPublish_ChargeLevel::chargelevel() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.chargeLevel)
  return static_cast< ::com::fca::uconnect::global::ChargeDataPublish_VoltageEnum >(chargelevel_);
}
void ChargeDataPublish_ChargeLevel::set_chargelevel(::com::fca::uconnect::global::ChargeDataPublish_VoltageEnum value) {
  
  chargelevel_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.chargeLevel)
}

// string EstimatedTimeToCharge_LEV1 = 3;
void ChargeDataPublish_ChargeLevel::clear_estimatedtimetocharge_lev1() {
  estimatedtimetocharge_lev1_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ChargeDataPublish_ChargeLevel::estimatedtimetocharge_lev1() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1)
  return estimatedtimetocharge_lev1_.GetNoArena();
}
void ChargeDataPublish_ChargeLevel::set_estimatedtimetocharge_lev1(const ::std::string& value) {
  
  estimatedtimetocharge_lev1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1)
}
#if LANG_CXX11
void ChargeDataPublish_ChargeLevel::set_estimatedtimetocharge_lev1(::std::string&& value) {
  
  estimatedtimetocharge_lev1_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1)
}
#endif
void ChargeDataPublish_ChargeLevel::set_estimatedtimetocharge_lev1(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  estimatedtimetocharge_lev1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1)
}
void ChargeDataPublish_ChargeLevel::set_estimatedtimetocharge_lev1(const char* value, size_t size) {
  
  estimatedtimetocharge_lev1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1)
}
::std::string* ChargeDataPublish_ChargeLevel::mutable_estimatedtimetocharge_lev1() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1)
  return estimatedtimetocharge_lev1_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ChargeDataPublish_ChargeLevel::release_estimatedtimetocharge_lev1() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1)
  
  return estimatedtimetocharge_lev1_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ChargeDataPublish_ChargeLevel::set_allocated_estimatedtimetocharge_lev1(::std::string* estimatedtimetocharge_lev1) {
  if (estimatedtimetocharge_lev1 != NULL) {
    
  } else {
    
  }
  estimatedtimetocharge_lev1_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), estimatedtimetocharge_lev1);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV1)
}

// string EstimatedTimeToCharge_LEV2 = 4;
void ChargeDataPublish_ChargeLevel::clear_estimatedtimetocharge_lev2() {
  estimatedtimetocharge_lev2_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& ChargeDataPublish_ChargeLevel::estimatedtimetocharge_lev2() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2)
  return estimatedtimetocharge_lev2_.GetNoArena();
}
void ChargeDataPublish_ChargeLevel::set_estimatedtimetocharge_lev2(const ::std::string& value) {
  
  estimatedtimetocharge_lev2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2)
}
#if LANG_CXX11
void ChargeDataPublish_ChargeLevel::set_estimatedtimetocharge_lev2(::std::string&& value) {
  
  estimatedtimetocharge_lev2_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2)
}
#endif
void ChargeDataPublish_ChargeLevel::set_estimatedtimetocharge_lev2(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  estimatedtimetocharge_lev2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2)
}
void ChargeDataPublish_ChargeLevel::set_estimatedtimetocharge_lev2(const char* value, size_t size) {
  
  estimatedtimetocharge_lev2_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2)
}
::std::string* ChargeDataPublish_ChargeLevel::mutable_estimatedtimetocharge_lev2() {
  
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2)
  return estimatedtimetocharge_lev2_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* ChargeDataPublish_ChargeLevel::release_estimatedtimetocharge_lev2() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2)
  
  return estimatedtimetocharge_lev2_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void ChargeDataPublish_ChargeLevel::set_allocated_estimatedtimetocharge_lev2(::std::string* estimatedtimetocharge_lev2) {
  if (estimatedtimetocharge_lev2 != NULL) {
    
  } else {
    
  }
  estimatedtimetocharge_lev2_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), estimatedtimetocharge_lev2);
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.EstimatedTimeToCharge_LEV2)
}

// int32 Int_EstimatedTimeToCharge_LEV1 = 5;
void ChargeDataPublish_ChargeLevel::clear_int_estimatedtimetocharge_lev1() {
  int_estimatedtimetocharge_lev1_ = 0;
}
::google::protobuf::int32 ChargeDataPublish_ChargeLevel::int_estimatedtimetocharge_lev1() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.Int_EstimatedTimeToCharge_LEV1)
  return int_estimatedtimetocharge_lev1_;
}
void ChargeDataPublish_ChargeLevel::set_int_estimatedtimetocharge_lev1(::google::protobuf::int32 value) {
  
  int_estimatedtimetocharge_lev1_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.Int_EstimatedTimeToCharge_LEV1)
}

// int32 Int_EstimatedTimeToCharge_LEV2 = 6;
void ChargeDataPublish_ChargeLevel::clear_int_estimatedtimetocharge_lev2() {
  int_estimatedtimetocharge_lev2_ = 0;
}
::google::protobuf::int32 ChargeDataPublish_ChargeLevel::int_estimatedtimetocharge_lev2() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.Int_EstimatedTimeToCharge_LEV2)
  return int_estimatedtimetocharge_lev2_;
}
void ChargeDataPublish_ChargeLevel::set_int_estimatedtimetocharge_lev2(::google::protobuf::int32 value) {
  
  int_estimatedtimetocharge_lev2_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.ChargeLevel.Int_EstimatedTimeToCharge_LEV2)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChargeDataPublish::kBatteryLevelFieldNumber;
const int ChargeDataPublish::kEventTriggerFieldNumber;
const int ChargeDataPublish::kPlugStatusFieldNumber;
const int ChargeDataPublish::kRangeEstimatesFieldNumber;
const int ChargeDataPublish::kChargeStatusFieldNumber;
const int ChargeDataPublish::kChargeSchedulesFieldNumber;
const int ChargeDataPublish::kChargeSchedulesV2FieldNumber;
const int ChargeDataPublish::kResponseFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeDataPublish::ChargeDataPublish()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeDataPublish)
}
ChargeDataPublish::ChargeDataPublish(const ChargeDataPublish& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      chargeschedules_(from.chargeschedules_),
      chargeschedulesv2_(from.chargeschedulesv2_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_plugstatus()) {
    plugstatus_ = new ::com::fca::uconnect::global::ChargeDataPublish_PlugStatus(*from.plugstatus_);
  } else {
    plugstatus_ = NULL;
  }
  if (from.has_rangeestimates()) {
    rangeestimates_ = new ::com::fca::uconnect::global::ChargeDataPublish_Range(*from.rangeestimates_);
  } else {
    rangeestimates_ = NULL;
  }
  ::memcpy(&eventtrigger_, &from.eventtrigger_,
    reinterpret_cast<char*>(&response_) -
    reinterpret_cast<char*>(&eventtrigger_) + sizeof(response_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeDataPublish)
}

void ChargeDataPublish::SharedCtor() {
  ::memset(&plugstatus_, 0, reinterpret_cast<char*>(&response_) -
    reinterpret_cast<char*>(&plugstatus_) + sizeof(response_));
  _cached_size_ = 0;
}

ChargeDataPublish::~ChargeDataPublish() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeDataPublish)
  SharedDtor();
}

void ChargeDataPublish::SharedDtor() {
  if (this != internal_default_instance()) {
    delete plugstatus_;
  }
  if (this != internal_default_instance()) {
    delete rangeestimates_;
  }
}

void ChargeDataPublish::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeDataPublish::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeDataPublish& ChargeDataPublish::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeDataPublish* ChargeDataPublish::New(::google::protobuf::Arena* arena) const {
  ChargeDataPublish* n = new ChargeDataPublish;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeDataPublish::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeDataPublish)
  chargeschedules_.Clear();
  chargeschedulesv2_.Clear();
  if (GetArenaNoVirtual() == NULL && plugstatus_ != NULL) {
    delete plugstatus_;
  }
  plugstatus_ = NULL;
  if (GetArenaNoVirtual() == NULL && rangeestimates_ != NULL) {
    delete rangeestimates_;
  }
  rangeestimates_ = NULL;
  ::memset(&eventtrigger_, 0, reinterpret_cast<char*>(&response_) -
    reinterpret_cast<char*>(&eventtrigger_) + sizeof(response_));
}

bool ChargeDataPublish::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeDataPublish)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_eventtrigger(static_cast< ::com::fca::uconnect::global::ChargeDataPublish_PublishEventEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_plugstatus()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_rangeestimates()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_chargestatus(static_cast< ::com::fca::uconnect::global::ChargeDataPublish_ChargeStatusEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_chargeschedules()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // float BatteryLevel = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(69u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                 input, &batterylevel_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(72u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_response(static_cast< ::com::fca::uconnect::global::ChargeDataPublish_ResponseEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_chargeschedulesv2()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeDataPublish)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeDataPublish)
  return false;
#undef DO_
}

void ChargeDataPublish::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeDataPublish)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;
  if (this->eventtrigger() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->eventtrigger(), output);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;
  if (this->has_plugstatus()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->plugstatus_, output);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;
  if (this->has_rangeestimates()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->rangeestimates_, output);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;
  if (this->chargestatus() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      4, this->chargestatus(), output);
  }

  // repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;
  for (unsigned int i = 0, n = this->chargeschedules_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, this->chargeschedules(i), output);
  }

  // float BatteryLevel = 8;
  if (this->batterylevel() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteFloat(8, this->batterylevel(), output);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;
  if (this->response() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      9, this->response(), output);
  }

  // repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;
  for (unsigned int i = 0, n = this->chargeschedulesv2_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      10, this->chargeschedulesv2(i), output);
  }

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

::google::protobuf::uint8* ChargeDataPublish::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeDataPublish)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;
  if (this->eventtrigger() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->eventtrigger(), target);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;
  if (this->has_plugstatus()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->plugstatus_, deterministic, target);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;
  if (this->has_rangeestimates()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->rangeestimates_, deterministic, target);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;
  if (this->chargestatus() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      4, this->chargestatus(), target);
  }

  // repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;
  for (unsigned int i = 0, n = this->chargeschedules_size(); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        5, this->chargeschedules(i), deterministic, target);
  }

  // float BatteryLevel = 8;
  if (this->batterylevel() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(8, this->batterylevel(), target);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;
  if (this->response() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      9, this->response(), target);
  }

  // repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;
  for (unsigned int i = 0, n = this->chargeschedulesv2_size(); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        10, this->chargeschedulesv2(i), deterministic, target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeDataPublish)
  return target;
}

size_t ChargeDataPublish::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeDataPublish)
  size_t total_size = 0;

  // repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;
  {
    unsigned int count = this->chargeschedules_size();
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->chargeschedules(i));
    }
  }

  // repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;
  {
    unsigned int count = this->chargeschedulesv2_size();
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->chargeschedulesv2(i));
    }
  }

  // .com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;
  if (this->has_plugstatus()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->plugstatus_);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;
  if (this->has_rangeestimates()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->rangeestimates_);
  }

  // .com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;
  if (this->eventtrigger() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->eventtrigger());
  }

  // .com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;
  if (this->chargestatus() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->chargestatus());
  }

  // float BatteryLevel = 8;
  if (this->batterylevel() != 0) {
    total_size += 1 + 4;
  }

  // .com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;
  if (this->response() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->response());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeDataPublish::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeDataPublish)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeDataPublish* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeDataPublish>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeDataPublish)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeDataPublish)
    MergeFrom(*source);
  }
}

void ChargeDataPublish::MergeFrom(const ChargeDataPublish& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeDataPublish)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  chargeschedules_.MergeFrom(from.chargeschedules_);
  chargeschedulesv2_.MergeFrom(from.chargeschedulesv2_);
  if (from.has_plugstatus()) {
    mutable_plugstatus()->::com::fca::uconnect::global::ChargeDataPublish_PlugStatus::MergeFrom(from.plugstatus());
  }
  if (from.has_rangeestimates()) {
    mutable_rangeestimates()->::com::fca::uconnect::global::ChargeDataPublish_Range::MergeFrom(from.rangeestimates());
  }
  if (from.eventtrigger() != 0) {
    set_eventtrigger(from.eventtrigger());
  }
  if (from.chargestatus() != 0) {
    set_chargestatus(from.chargestatus());
  }
  if (from.batterylevel() != 0) {
    set_batterylevel(from.batterylevel());
  }
  if (from.response() != 0) {
    set_response(from.response());
  }
}

void ChargeDataPublish::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeDataPublish)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeDataPublish::CopyFrom(const ChargeDataPublish& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeDataPublish)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeDataPublish::IsInitialized() const {
  return true;
}

void ChargeDataPublish::Swap(ChargeDataPublish* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeDataPublish::InternalSwap(ChargeDataPublish* other) {
  chargeschedules_.InternalSwap(&other->chargeschedules_);
  chargeschedulesv2_.InternalSwap(&other->chargeschedulesv2_);
  std::swap(plugstatus_, other->plugstatus_);
  std::swap(rangeestimates_, other->rangeestimates_);
  std::swap(eventtrigger_, other->eventtrigger_);
  std::swap(chargestatus_, other->chargestatus_);
  std::swap(batterylevel_, other->batterylevel_);
  std::swap(response_, other->response_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeDataPublish::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeDataPublish

// float BatteryLevel = 8;
void ChargeDataPublish::clear_batterylevel() {
  batterylevel_ = 0;
}
float ChargeDataPublish::batterylevel() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.BatteryLevel)
  return batterylevel_;
}
void ChargeDataPublish::set_batterylevel(float value) {
  
  batterylevel_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.BatteryLevel)
}

// .com.fca.uconnect.global.ChargeDataPublish.PublishEventEnum eventTrigger = 1;
void ChargeDataPublish::clear_eventtrigger() {
  eventtrigger_ = 0;
}
::com::fca::uconnect::global::ChargeDataPublish_PublishEventEnum ChargeDataPublish::eventtrigger() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.eventTrigger)
  return static_cast< ::com::fca::uconnect::global::ChargeDataPublish_PublishEventEnum >(eventtrigger_);
}
void ChargeDataPublish::set_eventtrigger(::com::fca::uconnect::global::ChargeDataPublish_PublishEventEnum value) {
  
  eventtrigger_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.eventTrigger)
}

// .com.fca.uconnect.global.ChargeDataPublish.PlugStatus plugStatus = 2;
bool ChargeDataPublish::has_plugstatus() const {
  return this != internal_default_instance() && plugstatus_ != NULL;
}
void ChargeDataPublish::clear_plugstatus() {
  if (GetArenaNoVirtual() == NULL && plugstatus_ != NULL) delete plugstatus_;
  plugstatus_ = NULL;
}
const ::com::fca::uconnect::global::ChargeDataPublish_PlugStatus& ChargeDataPublish::plugstatus() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.plugStatus)
  return plugstatus_ != NULL ? *plugstatus_
                         : *::com::fca::uconnect::global::ChargeDataPublish_PlugStatus::internal_default_instance();
}
::com::fca::uconnect::global::ChargeDataPublish_PlugStatus* ChargeDataPublish::mutable_plugstatus() {
  
  if (plugstatus_ == NULL) {
    plugstatus_ = new ::com::fca::uconnect::global::ChargeDataPublish_PlugStatus;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ChargeDataPublish.plugStatus)
  return plugstatus_;
}
::com::fca::uconnect::global::ChargeDataPublish_PlugStatus* ChargeDataPublish::release_plugstatus() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ChargeDataPublish.plugStatus)
  
  ::com::fca::uconnect::global::ChargeDataPublish_PlugStatus* temp = plugstatus_;
  plugstatus_ = NULL;
  return temp;
}
void ChargeDataPublish::set_allocated_plugstatus(::com::fca::uconnect::global::ChargeDataPublish_PlugStatus* plugstatus) {
  delete plugstatus_;
  plugstatus_ = plugstatus;
  if (plugstatus) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ChargeDataPublish.plugStatus)
}

// .com.fca.uconnect.global.ChargeDataPublish.Range rangeEstimates = 3;
bool ChargeDataPublish::has_rangeestimates() const {
  return this != internal_default_instance() && rangeestimates_ != NULL;
}
void ChargeDataPublish::clear_rangeestimates() {
  if (GetArenaNoVirtual() == NULL && rangeestimates_ != NULL) delete rangeestimates_;
  rangeestimates_ = NULL;
}
const ::com::fca::uconnect::global::ChargeDataPublish_Range& ChargeDataPublish::rangeestimates() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.rangeEstimates)
  return rangeestimates_ != NULL ? *rangeestimates_
                         : *::com::fca::uconnect::global::ChargeDataPublish_Range::internal_default_instance();
}
::com::fca::uconnect::global::ChargeDataPublish_Range* ChargeDataPublish::mutable_rangeestimates() {
  
  if (rangeestimates_ == NULL) {
    rangeestimates_ = new ::com::fca::uconnect::global::ChargeDataPublish_Range;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ChargeDataPublish.rangeEstimates)
  return rangeestimates_;
}
::com::fca::uconnect::global::ChargeDataPublish_Range* ChargeDataPublish::release_rangeestimates() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ChargeDataPublish.rangeEstimates)
  
  ::com::fca::uconnect::global::ChargeDataPublish_Range* temp = rangeestimates_;
  rangeestimates_ = NULL;
  return temp;
}
void ChargeDataPublish::set_allocated_rangeestimates(::com::fca::uconnect::global::ChargeDataPublish_Range* rangeestimates) {
  delete rangeestimates_;
  rangeestimates_ = rangeestimates;
  if (rangeestimates) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ChargeDataPublish.rangeEstimates)
}

// .com.fca.uconnect.global.ChargeDataPublish.ChargeStatusEnum chargeStatus = 4;
void ChargeDataPublish::clear_chargestatus() {
  chargestatus_ = 0;
}
::com::fca::uconnect::global::ChargeDataPublish_ChargeStatusEnum ChargeDataPublish::chargestatus() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.chargeStatus)
  return static_cast< ::com::fca::uconnect::global::ChargeDataPublish_ChargeStatusEnum >(chargestatus_);
}
void ChargeDataPublish::set_chargestatus(::com::fca::uconnect::global::ChargeDataPublish_ChargeStatusEnum value) {
  
  chargestatus_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.chargeStatus)
}

// repeated .com.fca.uconnect.global.ChargeSchedule chargeSchedules = 5;
int ChargeDataPublish::chargeschedules_size() const {
  return chargeschedules_.size();
}
void ChargeDataPublish::clear_chargeschedules() {
  chargeschedules_.Clear();
}
const ::com::fca::uconnect::global::ChargeSchedule& ChargeDataPublish::chargeschedules(int index) const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.chargeSchedules)
  return chargeschedules_.Get(index);
}
::com::fca::uconnect::global::ChargeSchedule* ChargeDataPublish::mutable_chargeschedules(int index) {
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ChargeDataPublish.chargeSchedules)
  return chargeschedules_.Mutable(index);
}
::com::fca::uconnect::global::ChargeSchedule* ChargeDataPublish::add_chargeschedules() {
  // @@protoc_insertion_point(field_add:com.fca.uconnect.global.ChargeDataPublish.chargeSchedules)
  return chargeschedules_.Add();
}
::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ChargeSchedule >*
ChargeDataPublish::mutable_chargeschedules() {
  // @@protoc_insertion_point(field_mutable_list:com.fca.uconnect.global.ChargeDataPublish.chargeSchedules)
  return &chargeschedules_;
}
const ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ChargeSchedule >&
ChargeDataPublish::chargeschedules() const {
  // @@protoc_insertion_point(field_list:com.fca.uconnect.global.ChargeDataPublish.chargeSchedules)
  return chargeschedules_;
}

// repeated .com.fca.uconnect.global.ChargeScheduleV2 chargeSchedulesV2 = 10;
int ChargeDataPublish::chargeschedulesv2_size() const {
  return chargeschedulesv2_.size();
}
void ChargeDataPublish::clear_chargeschedulesv2() {
  chargeschedulesv2_.Clear();
}
const ::com::fca::uconnect::global::ChargeScheduleV2& ChargeDataPublish::chargeschedulesv2(int index) const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.chargeSchedulesV2)
  return chargeschedulesv2_.Get(index);
}
::com::fca::uconnect::global::ChargeScheduleV2* ChargeDataPublish::mutable_chargeschedulesv2(int index) {
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ChargeDataPublish.chargeSchedulesV2)
  return chargeschedulesv2_.Mutable(index);
}
::com::fca::uconnect::global::ChargeScheduleV2* ChargeDataPublish::add_chargeschedulesv2() {
  // @@protoc_insertion_point(field_add:com.fca.uconnect.global.ChargeDataPublish.chargeSchedulesV2)
  return chargeschedulesv2_.Add();
}
::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ChargeScheduleV2 >*
ChargeDataPublish::mutable_chargeschedulesv2() {
  // @@protoc_insertion_point(field_mutable_list:com.fca.uconnect.global.ChargeDataPublish.chargeSchedulesV2)
  return &chargeschedulesv2_;
}
const ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ChargeScheduleV2 >&
ChargeDataPublish::chargeschedulesv2() const {
  // @@protoc_insertion_point(field_list:com.fca.uconnect.global.ChargeDataPublish.chargeSchedulesV2)
  return chargeschedulesv2_;
}

// .com.fca.uconnect.global.ChargeDataPublish.ResponseEnum response = 9;
void ChargeDataPublish::clear_response() {
  response_ = 0;
}
::com::fca::uconnect::global::ChargeDataPublish_ResponseEnum ChargeDataPublish::response() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeDataPublish.response)
  return static_cast< ::com::fca::uconnect::global::ChargeDataPublish_ResponseEnum >(response_);
}
void ChargeDataPublish::set_response(::com::fca::uconnect::global::ChargeDataPublish_ResponseEnum value) {
  
  response_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeDataPublish.response)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int UpdateChargeSchedule::kUpdatedChargeSchedulesFieldNumber;
const int UpdateChargeSchedule::kUpdateChargeShedulesV2FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

UpdateChargeSchedule::UpdateChargeSchedule()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.UpdateChargeSchedule)
}
UpdateChargeSchedule::UpdateChargeSchedule(const UpdateChargeSchedule& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      updatedchargeschedules_(from.updatedchargeschedules_),
      updatechargeshedulesv2_(from.updatechargeshedulesv2_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.UpdateChargeSchedule)
}

void UpdateChargeSchedule::SharedCtor() {
  _cached_size_ = 0;
}

UpdateChargeSchedule::~UpdateChargeSchedule() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.UpdateChargeSchedule)
  SharedDtor();
}

void UpdateChargeSchedule::SharedDtor() {
}

void UpdateChargeSchedule::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* UpdateChargeSchedule::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const UpdateChargeSchedule& UpdateChargeSchedule::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

UpdateChargeSchedule* UpdateChargeSchedule::New(::google::protobuf::Arena* arena) const {
  UpdateChargeSchedule* n = new UpdateChargeSchedule;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void UpdateChargeSchedule::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.UpdateChargeSchedule)
  updatedchargeschedules_.Clear();
  updatechargeshedulesv2_.Clear();
}

bool UpdateChargeSchedule::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.UpdateChargeSchedule)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_updatedchargeschedules()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, add_updatechargeshedulesv2()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.UpdateChargeSchedule)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.UpdateChargeSchedule)
  return false;
#undef DO_
}

void UpdateChargeSchedule::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.UpdateChargeSchedule)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;
  for (unsigned int i = 0, n = this->updatedchargeschedules_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->updatedchargeschedules(i), output);
  }

  // repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;
  for (unsigned int i = 0, n = this->updatechargeshedulesv2_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->updatechargeshedulesv2(i), output);
  }

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

::google::protobuf::uint8* UpdateChargeSchedule::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.UpdateChargeSchedule)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;
  for (unsigned int i = 0, n = this->updatedchargeschedules_size(); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, this->updatedchargeschedules(i), deterministic, target);
  }

  // repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;
  for (unsigned int i = 0, n = this->updatechargeshedulesv2_size(); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, this->updatechargeshedulesv2(i), deterministic, target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.UpdateChargeSchedule)
  return target;
}

size_t UpdateChargeSchedule::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.UpdateChargeSchedule)
  size_t total_size = 0;

  // repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;
  {
    unsigned int count = this->updatedchargeschedules_size();
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->updatedchargeschedules(i));
    }
  }

  // repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;
  {
    unsigned int count = this->updatechargeshedulesv2_size();
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->updatechargeshedulesv2(i));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void UpdateChargeSchedule::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.UpdateChargeSchedule)
  GOOGLE_DCHECK_NE(&from, this);
  const UpdateChargeSchedule* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const UpdateChargeSchedule>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.UpdateChargeSchedule)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.UpdateChargeSchedule)
    MergeFrom(*source);
  }
}

void UpdateChargeSchedule::MergeFrom(const UpdateChargeSchedule& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.UpdateChargeSchedule)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  updatedchargeschedules_.MergeFrom(from.updatedchargeschedules_);
  updatechargeshedulesv2_.MergeFrom(from.updatechargeshedulesv2_);
}

void UpdateChargeSchedule::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.UpdateChargeSchedule)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void UpdateChargeSchedule::CopyFrom(const UpdateChargeSchedule& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.UpdateChargeSchedule)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UpdateChargeSchedule::IsInitialized() const {
  return true;
}

void UpdateChargeSchedule::Swap(UpdateChargeSchedule* other) {
  if (other == this) return;
  InternalSwap(other);
}
void UpdateChargeSchedule::InternalSwap(UpdateChargeSchedule* other) {
  updatedchargeschedules_.InternalSwap(&other->updatedchargeschedules_);
  updatechargeshedulesv2_.InternalSwap(&other->updatechargeshedulesv2_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata UpdateChargeSchedule::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// UpdateChargeSchedule

// repeated .com.fca.uconnect.global.ChargeSchedule updatedChargeSchedules = 1;
int UpdateChargeSchedule::updatedchargeschedules_size() const {
  return updatedchargeschedules_.size();
}
void UpdateChargeSchedule::clear_updatedchargeschedules() {
  updatedchargeschedules_.Clear();
}
const ::com::fca::uconnect::global::ChargeSchedule& UpdateChargeSchedule::updatedchargeschedules(int index) const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.UpdateChargeSchedule.updatedChargeSchedules)
  return updatedchargeschedules_.Get(index);
}
::com::fca::uconnect::global::ChargeSchedule* UpdateChargeSchedule::mutable_updatedchargeschedules(int index) {
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.UpdateChargeSchedule.updatedChargeSchedules)
  return updatedchargeschedules_.Mutable(index);
}
::com::fca::uconnect::global::ChargeSchedule* UpdateChargeSchedule::add_updatedchargeschedules() {
  // @@protoc_insertion_point(field_add:com.fca.uconnect.global.UpdateChargeSchedule.updatedChargeSchedules)
  return updatedchargeschedules_.Add();
}
::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ChargeSchedule >*
UpdateChargeSchedule::mutable_updatedchargeschedules() {
  // @@protoc_insertion_point(field_mutable_list:com.fca.uconnect.global.UpdateChargeSchedule.updatedChargeSchedules)
  return &updatedchargeschedules_;
}
const ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ChargeSchedule >&
UpdateChargeSchedule::updatedchargeschedules() const {
  // @@protoc_insertion_point(field_list:com.fca.uconnect.global.UpdateChargeSchedule.updatedChargeSchedules)
  return updatedchargeschedules_;
}

// repeated .com.fca.uconnect.global.ChargeScheduleV2 updateChargeShedulesV2 = 2;
int UpdateChargeSchedule::updatechargeshedulesv2_size() const {
  return updatechargeshedulesv2_.size();
}
void UpdateChargeSchedule::clear_updatechargeshedulesv2() {
  updatechargeshedulesv2_.Clear();
}
const ::com::fca::uconnect::global::ChargeScheduleV2& UpdateChargeSchedule::updatechargeshedulesv2(int index) const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.UpdateChargeSchedule.updateChargeShedulesV2)
  return updatechargeshedulesv2_.Get(index);
}
::com::fca::uconnect::global::ChargeScheduleV2* UpdateChargeSchedule::mutable_updatechargeshedulesv2(int index) {
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.UpdateChargeSchedule.updateChargeShedulesV2)
  return updatechargeshedulesv2_.Mutable(index);
}
::com::fca::uconnect::global::ChargeScheduleV2* UpdateChargeSchedule::add_updatechargeshedulesv2() {
  // @@protoc_insertion_point(field_add:com.fca.uconnect.global.UpdateChargeSchedule.updateChargeShedulesV2)
  return updatechargeshedulesv2_.Add();
}
::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ChargeScheduleV2 >*
UpdateChargeSchedule::mutable_updatechargeshedulesv2() {
  // @@protoc_insertion_point(field_mutable_list:com.fca.uconnect.global.UpdateChargeSchedule.updateChargeShedulesV2)
  return &updatechargeshedulesv2_;
}
const ::google::protobuf::RepeatedPtrField< ::com::fca::uconnect::global::ChargeScheduleV2 >&
UpdateChargeSchedule::updatechargeshedulesv2() const {
  // @@protoc_insertion_point(field_list:com.fca.uconnect.global.UpdateChargeSchedule.updateChargeShedulesV2)
  return updatechargeshedulesv2_;
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChargeScheduleV2::kEnableScheduleTypeFieldNumber;
const int ChargeScheduleV2::kScheduleTypeFieldNumber;
const int ChargeScheduleV2::kStartTimeFieldNumber;
const int ChargeScheduleV2::kEndTimeFieldNumber;
const int ChargeScheduleV2::kChargeToFullFieldNumber;
const int ChargeScheduleV2::kCabinPriorityFieldNumber;
const int ChargeScheduleV2::kScheduledDaysFieldNumber;
const int ChargeScheduleV2::kRepeatScheduleFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeScheduleV2::ChargeScheduleV2()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeScheduleV2)
}
ChargeScheduleV2::ChargeScheduleV2(const ChargeScheduleV2& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_scheduleddays()) {
    scheduleddays_ = new ::com::fca::uconnect::global::Days(*from.scheduleddays_);
  } else {
    scheduleddays_ = NULL;
  }
  ::memcpy(&scheduletype_, &from.scheduletype_,
    reinterpret_cast<char*>(&repeatschedule_) -
    reinterpret_cast<char*>(&scheduletype_) + sizeof(repeatschedule_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeScheduleV2)
}

void ChargeScheduleV2::SharedCtor() {
  ::memset(&scheduleddays_, 0, reinterpret_cast<char*>(&repeatschedule_) -
    reinterpret_cast<char*>(&scheduleddays_) + sizeof(repeatschedule_));
  _cached_size_ = 0;
}

ChargeScheduleV2::~ChargeScheduleV2() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeScheduleV2)
  SharedDtor();
}

void ChargeScheduleV2::SharedDtor() {
  if (this != internal_default_instance()) {
    delete scheduleddays_;
  }
}

void ChargeScheduleV2::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeScheduleV2::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeScheduleV2& ChargeScheduleV2::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeScheduleV2* ChargeScheduleV2::New(::google::protobuf::Arena* arena) const {
  ChargeScheduleV2* n = new ChargeScheduleV2;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeScheduleV2::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeScheduleV2)
  if (GetArenaNoVirtual() == NULL && scheduleddays_ != NULL) {
    delete scheduleddays_;
  }
  scheduleddays_ = NULL;
  ::memset(&scheduletype_, 0, reinterpret_cast<char*>(&repeatschedule_) -
    reinterpret_cast<char*>(&scheduletype_) + sizeof(repeatschedule_));
}

bool ChargeScheduleV2::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeScheduleV2)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // bool EnableScheduleType = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &enablescheduletype_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_scheduletype(static_cast< ::com::fca::uconnect::global::ChargeScheduleV2_ScheduleType >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 StartTime = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &starttime_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 EndTime = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &endtime_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool ChargeToFull = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &chargetofull_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool CabinPriority = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &cabinpriority_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.Days scheduledDays = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_scheduleddays()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool RepeatSchedule = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &repeatschedule_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeScheduleV2)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeScheduleV2)
  return false;
#undef DO_
}

void ChargeScheduleV2::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeScheduleV2)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool EnableScheduleType = 1;
  if (this->enablescheduletype() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->enablescheduletype(), output);
  }

  // .com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;
  if (this->scheduletype() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->scheduletype(), output);
  }

  // int32 StartTime = 3;
  if (this->starttime() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->starttime(), output);
  }

  // int32 EndTime = 4;
  if (this->endtime() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->endtime(), output);
  }

  // bool ChargeToFull = 5;
  if (this->chargetofull() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->chargetofull(), output);
  }

  // bool CabinPriority = 6;
  if (this->cabinpriority() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(6, this->cabinpriority(), output);
  }

  // .com.fca.uconnect.global.Days scheduledDays = 7;
  if (this->has_scheduleddays()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, *this->scheduleddays_, output);
  }

  // bool RepeatSchedule = 8;
  if (this->repeatschedule() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(8, this->repeatschedule(), output);
  }

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

::google::protobuf::uint8* ChargeScheduleV2::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeScheduleV2)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool EnableScheduleType = 1;
  if (this->enablescheduletype() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->enablescheduletype(), target);
  }

  // .com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;
  if (this->scheduletype() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      2, this->scheduletype(), target);
  }

  // int32 StartTime = 3;
  if (this->starttime() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->starttime(), target);
  }

  // int32 EndTime = 4;
  if (this->endtime() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->endtime(), target);
  }

  // bool ChargeToFull = 5;
  if (this->chargetofull() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->chargetofull(), target);
  }

  // bool CabinPriority = 6;
  if (this->cabinpriority() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(6, this->cabinpriority(), target);
  }

  // .com.fca.uconnect.global.Days scheduledDays = 7;
  if (this->has_scheduleddays()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        7, *this->scheduleddays_, deterministic, target);
  }

  // bool RepeatSchedule = 8;
  if (this->repeatschedule() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(8, this->repeatschedule(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeScheduleV2)
  return target;
}

size_t ChargeScheduleV2::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeScheduleV2)
  size_t total_size = 0;

  // .com.fca.uconnect.global.Days scheduledDays = 7;
  if (this->has_scheduleddays()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->scheduleddays_);
  }

  // .com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;
  if (this->scheduletype() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->scheduletype());
  }

  // int32 StartTime = 3;
  if (this->starttime() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->starttime());
  }

  // int32 EndTime = 4;
  if (this->endtime() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->endtime());
  }

  // bool EnableScheduleType = 1;
  if (this->enablescheduletype() != 0) {
    total_size += 1 + 1;
  }

  // bool ChargeToFull = 5;
  if (this->chargetofull() != 0) {
    total_size += 1 + 1;
  }

  // bool CabinPriority = 6;
  if (this->cabinpriority() != 0) {
    total_size += 1 + 1;
  }

  // bool RepeatSchedule = 8;
  if (this->repeatschedule() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeScheduleV2::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeScheduleV2)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeScheduleV2* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeScheduleV2>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeScheduleV2)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeScheduleV2)
    MergeFrom(*source);
  }
}

void ChargeScheduleV2::MergeFrom(const ChargeScheduleV2& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeScheduleV2)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_scheduleddays()) {
    mutable_scheduleddays()->::com::fca::uconnect::global::Days::MergeFrom(from.scheduleddays());
  }
  if (from.scheduletype() != 0) {
    set_scheduletype(from.scheduletype());
  }
  if (from.starttime() != 0) {
    set_starttime(from.starttime());
  }
  if (from.endtime() != 0) {
    set_endtime(from.endtime());
  }
  if (from.enablescheduletype() != 0) {
    set_enablescheduletype(from.enablescheduletype());
  }
  if (from.chargetofull() != 0) {
    set_chargetofull(from.chargetofull());
  }
  if (from.cabinpriority() != 0) {
    set_cabinpriority(from.cabinpriority());
  }
  if (from.repeatschedule() != 0) {
    set_repeatschedule(from.repeatschedule());
  }
}

void ChargeScheduleV2::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeScheduleV2)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeScheduleV2::CopyFrom(const ChargeScheduleV2& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeScheduleV2)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeScheduleV2::IsInitialized() const {
  return true;
}

void ChargeScheduleV2::Swap(ChargeScheduleV2* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeScheduleV2::InternalSwap(ChargeScheduleV2* other) {
  std::swap(scheduleddays_, other->scheduleddays_);
  std::swap(scheduletype_, other->scheduletype_);
  std::swap(starttime_, other->starttime_);
  std::swap(endtime_, other->endtime_);
  std::swap(enablescheduletype_, other->enablescheduletype_);
  std::swap(chargetofull_, other->chargetofull_);
  std::swap(cabinpriority_, other->cabinpriority_);
  std::swap(repeatschedule_, other->repeatschedule_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeScheduleV2::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeScheduleV2

// bool EnableScheduleType = 1;
void ChargeScheduleV2::clear_enablescheduletype() {
  enablescheduletype_ = false;
}
bool ChargeScheduleV2::enablescheduletype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeScheduleV2.EnableScheduleType)
  return enablescheduletype_;
}
void ChargeScheduleV2::set_enablescheduletype(bool value) {
  
  enablescheduletype_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeScheduleV2.EnableScheduleType)
}

// .com.fca.uconnect.global.ChargeScheduleV2.ScheduleType scheduleType = 2;
void ChargeScheduleV2::clear_scheduletype() {
  scheduletype_ = 0;
}
::com::fca::uconnect::global::ChargeScheduleV2_ScheduleType ChargeScheduleV2::scheduletype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeScheduleV2.scheduleType)
  return static_cast< ::com::fca::uconnect::global::ChargeScheduleV2_ScheduleType >(scheduletype_);
}
void ChargeScheduleV2::set_scheduletype(::com::fca::uconnect::global::ChargeScheduleV2_ScheduleType value) {
  
  scheduletype_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeScheduleV2.scheduleType)
}

// int32 StartTime = 3;
void ChargeScheduleV2::clear_starttime() {
  starttime_ = 0;
}
::google::protobuf::int32 ChargeScheduleV2::starttime() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeScheduleV2.StartTime)
  return starttime_;
}
void ChargeScheduleV2::set_starttime(::google::protobuf::int32 value) {
  
  starttime_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeScheduleV2.StartTime)
}

// int32 EndTime = 4;
void ChargeScheduleV2::clear_endtime() {
  endtime_ = 0;
}
::google::protobuf::int32 ChargeScheduleV2::endtime() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeScheduleV2.EndTime)
  return endtime_;
}
void ChargeScheduleV2::set_endtime(::google::protobuf::int32 value) {
  
  endtime_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeScheduleV2.EndTime)
}

// bool ChargeToFull = 5;
void ChargeScheduleV2::clear_chargetofull() {
  chargetofull_ = false;
}
bool ChargeScheduleV2::chargetofull() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeScheduleV2.ChargeToFull)
  return chargetofull_;
}
void ChargeScheduleV2::set_chargetofull(bool value) {
  
  chargetofull_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeScheduleV2.ChargeToFull)
}

// bool CabinPriority = 6;
void ChargeScheduleV2::clear_cabinpriority() {
  cabinpriority_ = false;
}
bool ChargeScheduleV2::cabinpriority() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeScheduleV2.CabinPriority)
  return cabinpriority_;
}
void ChargeScheduleV2::set_cabinpriority(bool value) {
  
  cabinpriority_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeScheduleV2.CabinPriority)
}

// .com.fca.uconnect.global.Days scheduledDays = 7;
bool ChargeScheduleV2::has_scheduleddays() const {
  return this != internal_default_instance() && scheduleddays_ != NULL;
}
void ChargeScheduleV2::clear_scheduleddays() {
  if (GetArenaNoVirtual() == NULL && scheduleddays_ != NULL) delete scheduleddays_;
  scheduleddays_ = NULL;
}
const ::com::fca::uconnect::global::Days& ChargeScheduleV2::scheduleddays() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeScheduleV2.scheduledDays)
  return scheduleddays_ != NULL ? *scheduleddays_
                         : *::com::fca::uconnect::global::Days::internal_default_instance();
}
::com::fca::uconnect::global::Days* ChargeScheduleV2::mutable_scheduleddays() {
  
  if (scheduleddays_ == NULL) {
    scheduleddays_ = new ::com::fca::uconnect::global::Days;
  }
  // @@protoc_insertion_point(field_mutable:com.fca.uconnect.global.ChargeScheduleV2.scheduledDays)
  return scheduleddays_;
}
::com::fca::uconnect::global::Days* ChargeScheduleV2::release_scheduleddays() {
  // @@protoc_insertion_point(field_release:com.fca.uconnect.global.ChargeScheduleV2.scheduledDays)
  
  ::com::fca::uconnect::global::Days* temp = scheduleddays_;
  scheduleddays_ = NULL;
  return temp;
}
void ChargeScheduleV2::set_allocated_scheduleddays(::com::fca::uconnect::global::Days* scheduleddays) {
  delete scheduleddays_;
  scheduleddays_ = scheduleddays;
  if (scheduleddays) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:com.fca.uconnect.global.ChargeScheduleV2.scheduledDays)
}

// bool RepeatSchedule = 8;
void ChargeScheduleV2::clear_repeatschedule() {
  repeatschedule_ = false;
}
bool ChargeScheduleV2::repeatschedule() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeScheduleV2.RepeatSchedule)
  return repeatschedule_;
}
void ChargeScheduleV2::set_repeatschedule(bool value) {
  
  repeatschedule_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeScheduleV2.RepeatSchedule)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Days::kIsSundayFieldNumber;
const int Days::kIsMondayFieldNumber;
const int Days::kIsTuesdayFieldNumber;
const int Days::kIsWednesdayFieldNumber;
const int Days::kIsThursdayFieldNumber;
const int Days::kIsFridayFieldNumber;
const int Days::kIsSaturdayFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Days::Days()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.Days)
}
Days::Days(const Days& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&issunday_, &from.issunday_,
    reinterpret_cast<char*>(&issaturday_) -
    reinterpret_cast<char*>(&issunday_) + sizeof(issaturday_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.Days)
}

void Days::SharedCtor() {
  ::memset(&issunday_, 0, reinterpret_cast<char*>(&issaturday_) -
    reinterpret_cast<char*>(&issunday_) + sizeof(issaturday_));
  _cached_size_ = 0;
}

Days::~Days() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.Days)
  SharedDtor();
}

void Days::SharedDtor() {
}

void Days::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Days::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Days& Days::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

Days* Days::New(::google::protobuf::Arena* arena) const {
  Days* n = new Days;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Days::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.Days)
  ::memset(&issunday_, 0, reinterpret_cast<char*>(&issaturday_) -
    reinterpret_cast<char*>(&issunday_) + sizeof(issaturday_));
}

bool Days::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.Days)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // bool isSunday = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &issunday_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool isMonday = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &ismonday_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool isTuesday = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &istuesday_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool isWednesday = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &iswednesday_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool isThursday = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &isthursday_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool isFriday = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &isfriday_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool isSaturday = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &issaturday_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.Days)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.Days)
  return false;
#undef DO_
}

void Days::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.Days)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool isSunday = 1;
  if (this->issunday() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->issunday(), output);
  }

  // bool isMonday = 2;
  if (this->ismonday() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->ismonday(), output);
  }

  // bool isTuesday = 3;
  if (this->istuesday() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->istuesday(), output);
  }

  // bool isWednesday = 4;
  if (this->iswednesday() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->iswednesday(), output);
  }

  // bool isThursday = 5;
  if (this->isthursday() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->isthursday(), output);
  }

  // bool isFriday = 6;
  if (this->isfriday() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(6, this->isfriday(), output);
  }

  // bool isSaturday = 7;
  if (this->issaturday() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(7, this->issaturday(), output);
  }

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

::google::protobuf::uint8* Days::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.Days)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool isSunday = 1;
  if (this->issunday() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->issunday(), target);
  }

  // bool isMonday = 2;
  if (this->ismonday() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->ismonday(), target);
  }

  // bool isTuesday = 3;
  if (this->istuesday() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->istuesday(), target);
  }

  // bool isWednesday = 4;
  if (this->iswednesday() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->iswednesday(), target);
  }

  // bool isThursday = 5;
  if (this->isthursday() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->isthursday(), target);
  }

  // bool isFriday = 6;
  if (this->isfriday() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(6, this->isfriday(), target);
  }

  // bool isSaturday = 7;
  if (this->issaturday() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(7, this->issaturday(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.Days)
  return target;
}

size_t Days::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.Days)
  size_t total_size = 0;

  // bool isSunday = 1;
  if (this->issunday() != 0) {
    total_size += 1 + 1;
  }

  // bool isMonday = 2;
  if (this->ismonday() != 0) {
    total_size += 1 + 1;
  }

  // bool isTuesday = 3;
  if (this->istuesday() != 0) {
    total_size += 1 + 1;
  }

  // bool isWednesday = 4;
  if (this->iswednesday() != 0) {
    total_size += 1 + 1;
  }

  // bool isThursday = 5;
  if (this->isthursday() != 0) {
    total_size += 1 + 1;
  }

  // bool isFriday = 6;
  if (this->isfriday() != 0) {
    total_size += 1 + 1;
  }

  // bool isSaturday = 7;
  if (this->issaturday() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Days::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.Days)
  GOOGLE_DCHECK_NE(&from, this);
  const Days* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Days>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.Days)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.Days)
    MergeFrom(*source);
  }
}

void Days::MergeFrom(const Days& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.Days)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.issunday() != 0) {
    set_issunday(from.issunday());
  }
  if (from.ismonday() != 0) {
    set_ismonday(from.ismonday());
  }
  if (from.istuesday() != 0) {
    set_istuesday(from.istuesday());
  }
  if (from.iswednesday() != 0) {
    set_iswednesday(from.iswednesday());
  }
  if (from.isthursday() != 0) {
    set_isthursday(from.isthursday());
  }
  if (from.isfriday() != 0) {
    set_isfriday(from.isfriday());
  }
  if (from.issaturday() != 0) {
    set_issaturday(from.issaturday());
  }
}

void Days::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.Days)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Days::CopyFrom(const Days& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.Days)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Days::IsInitialized() const {
  return true;
}

void Days::Swap(Days* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Days::InternalSwap(Days* other) {
  std::swap(issunday_, other->issunday_);
  std::swap(ismonday_, other->ismonday_);
  std::swap(istuesday_, other->istuesday_);
  std::swap(iswednesday_, other->iswednesday_);
  std::swap(isthursday_, other->isthursday_);
  std::swap(isfriday_, other->isfriday_);
  std::swap(issaturday_, other->issaturday_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Days::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// Days

// bool isSunday = 1;
void Days::clear_issunday() {
  issunday_ = false;
}
bool Days::issunday() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Days.isSunday)
  return issunday_;
}
void Days::set_issunday(bool value) {
  
  issunday_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Days.isSunday)
}

// bool isMonday = 2;
void Days::clear_ismonday() {
  ismonday_ = false;
}
bool Days::ismonday() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Days.isMonday)
  return ismonday_;
}
void Days::set_ismonday(bool value) {
  
  ismonday_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Days.isMonday)
}

// bool isTuesday = 3;
void Days::clear_istuesday() {
  istuesday_ = false;
}
bool Days::istuesday() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Days.isTuesday)
  return istuesday_;
}
void Days::set_istuesday(bool value) {
  
  istuesday_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Days.isTuesday)
}

// bool isWednesday = 4;
void Days::clear_iswednesday() {
  iswednesday_ = false;
}
bool Days::iswednesday() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Days.isWednesday)
  return iswednesday_;
}
void Days::set_iswednesday(bool value) {
  
  iswednesday_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Days.isWednesday)
}

// bool isThursday = 5;
void Days::clear_isthursday() {
  isthursday_ = false;
}
bool Days::isthursday() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Days.isThursday)
  return isthursday_;
}
void Days::set_isthursday(bool value) {
  
  isthursday_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Days.isThursday)
}

// bool isFriday = 6;
void Days::clear_isfriday() {
  isfriday_ = false;
}
bool Days::isfriday() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Days.isFriday)
  return isfriday_;
}
void Days::set_isfriday(bool value) {
  
  isfriday_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Days.isFriday)
}

// bool isSaturday = 7;
void Days::clear_issaturday() {
  issaturday_ = false;
}
bool Days::issaturday() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.Days.isSaturday)
  return issaturday_;
}
void Days::set_issaturday(bool value) {
  
  issaturday_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.Days.isSaturday)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// ===================================================================

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChargeSchedule::kEnableChargeScheduleFieldNumber;
const int ChargeSchedule::kScheduleTypeFieldNumber;
const int ChargeSchedule::kChargeUntilFullFieldNumber;
const int ChargeSchedule::kScheduleStartTimeFieldNumber;
const int ChargeSchedule::kScheduleEndTimeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChargeSchedule::ChargeSchedule()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.fca.uconnect.global.ChargeSchedule)
}
ChargeSchedule::ChargeSchedule(const ChargeSchedule& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&scheduletype_, &from.scheduletype_,
    reinterpret_cast<char*>(&enablechargeschedule_) -
    reinterpret_cast<char*>(&scheduletype_) + sizeof(enablechargeschedule_));
  // @@protoc_insertion_point(copy_constructor:com.fca.uconnect.global.ChargeSchedule)
}

void ChargeSchedule::SharedCtor() {
  ::memset(&scheduletype_, 0, reinterpret_cast<char*>(&enablechargeschedule_) -
    reinterpret_cast<char*>(&scheduletype_) + sizeof(enablechargeschedule_));
  _cached_size_ = 0;
}

ChargeSchedule::~ChargeSchedule() {
  // @@protoc_insertion_point(destructor:com.fca.uconnect.global.ChargeSchedule)
  SharedDtor();
}

void ChargeSchedule::SharedDtor() {
}

void ChargeSchedule::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* ChargeSchedule::descriptor() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ChargeSchedule& ChargeSchedule::default_instance() {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::InitDefaults();
  return *internal_default_instance();
}

ChargeSchedule* ChargeSchedule::New(::google::protobuf::Arena* arena) const {
  ChargeSchedule* n = new ChargeSchedule;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void ChargeSchedule::Clear() {
// @@protoc_insertion_point(message_clear_start:com.fca.uconnect.global.ChargeSchedule)
  ::memset(&scheduletype_, 0, reinterpret_cast<char*>(&enablechargeschedule_) -
    reinterpret_cast<char*>(&scheduletype_) + sizeof(enablechargeschedule_));
}

bool ChargeSchedule::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.fca.uconnect.global.ChargeSchedule)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_scheduletype(static_cast< ::com::fca::uconnect::global::ChargeSchedule_ScheduleTypeEnum >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool chargeUntilFull = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &chargeuntilfull_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 scheduleStartTime = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &schedulestarttime_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 scheduleEndTime = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &scheduleendtime_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_enablechargeschedule(static_cast< ::com::fca::uconnect::global::ChargeSchedule_EnableChargeScheduleType >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.fca.uconnect.global.ChargeSchedule)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.fca.uconnect.global.ChargeSchedule)
  return false;
#undef DO_
}

void ChargeSchedule::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.fca.uconnect.global.ChargeSchedule)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;
  if (this->scheduletype() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      1, this->scheduletype(), output);
  }

  // bool chargeUntilFull = 2;
  if (this->chargeuntilfull() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->chargeuntilfull(), output);
  }

  // int32 scheduleStartTime = 3;
  if (this->schedulestarttime() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->schedulestarttime(), output);
  }

  // int32 scheduleEndTime = 4;
  if (this->scheduleendtime() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->scheduleendtime(), output);
  }

  // .com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;
  if (this->enablechargeschedule() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      5, this->enablechargeschedule(), output);
  }

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

::google::protobuf::uint8* ChargeSchedule::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.fca.uconnect.global.ChargeSchedule)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;
  if (this->scheduletype() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      1, this->scheduletype(), target);
  }

  // bool chargeUntilFull = 2;
  if (this->chargeuntilfull() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->chargeuntilfull(), target);
  }

  // int32 scheduleStartTime = 3;
  if (this->schedulestarttime() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->schedulestarttime(), target);
  }

  // int32 scheduleEndTime = 4;
  if (this->scheduleendtime() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->scheduleendtime(), target);
  }

  // .com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;
  if (this->enablechargeschedule() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      5, this->enablechargeschedule(), target);
  }

  // @@protoc_insertion_point(serialize_to_array_end:com.fca.uconnect.global.ChargeSchedule)
  return target;
}

size_t ChargeSchedule::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.fca.uconnect.global.ChargeSchedule)
  size_t total_size = 0;

  // .com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;
  if (this->scheduletype() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->scheduletype());
  }

  // bool chargeUntilFull = 2;
  if (this->chargeuntilfull() != 0) {
    total_size += 1 + 1;
  }

  // int32 scheduleStartTime = 3;
  if (this->schedulestarttime() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->schedulestarttime());
  }

  // int32 scheduleEndTime = 4;
  if (this->scheduleendtime() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->scheduleendtime());
  }

  // .com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;
  if (this->enablechargeschedule() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->enablechargeschedule());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void ChargeSchedule::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.fca.uconnect.global.ChargeSchedule)
  GOOGLE_DCHECK_NE(&from, this);
  const ChargeSchedule* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ChargeSchedule>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.fca.uconnect.global.ChargeSchedule)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.fca.uconnect.global.ChargeSchedule)
    MergeFrom(*source);
  }
}

void ChargeSchedule::MergeFrom(const ChargeSchedule& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.fca.uconnect.global.ChargeSchedule)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.scheduletype() != 0) {
    set_scheduletype(from.scheduletype());
  }
  if (from.chargeuntilfull() != 0) {
    set_chargeuntilfull(from.chargeuntilfull());
  }
  if (from.schedulestarttime() != 0) {
    set_schedulestarttime(from.schedulestarttime());
  }
  if (from.scheduleendtime() != 0) {
    set_scheduleendtime(from.scheduleendtime());
  }
  if (from.enablechargeschedule() != 0) {
    set_enablechargeschedule(from.enablechargeschedule());
  }
}

void ChargeSchedule::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.fca.uconnect.global.ChargeSchedule)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChargeSchedule::CopyFrom(const ChargeSchedule& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.fca.uconnect.global.ChargeSchedule)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChargeSchedule::IsInitialized() const {
  return true;
}

void ChargeSchedule::Swap(ChargeSchedule* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChargeSchedule::InternalSwap(ChargeSchedule* other) {
  std::swap(scheduletype_, other->scheduletype_);
  std::swap(chargeuntilfull_, other->chargeuntilfull_);
  std::swap(schedulestarttime_, other->schedulestarttime_);
  std::swap(scheduleendtime_, other->scheduleendtime_);
  std::swap(enablechargeschedule_, other->enablechargeschedule_);
  std::swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata ChargeSchedule::GetMetadata() const {
  protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_Global_5fUconnect_5fExt_5fPHEV_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ChargeSchedule

// .com.fca.uconnect.global.ChargeSchedule.EnableChargeScheduleType enableChargeSchedule = 5;
void ChargeSchedule::clear_enablechargeschedule() {
  enablechargeschedule_ = 0;
}
::com::fca::uconnect::global::ChargeSchedule_EnableChargeScheduleType ChargeSchedule::enablechargeschedule() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeSchedule.enableChargeSchedule)
  return static_cast< ::com::fca::uconnect::global::ChargeSchedule_EnableChargeScheduleType >(enablechargeschedule_);
}
void ChargeSchedule::set_enablechargeschedule(::com::fca::uconnect::global::ChargeSchedule_EnableChargeScheduleType value) {
  
  enablechargeschedule_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeSchedule.enableChargeSchedule)
}

// .com.fca.uconnect.global.ChargeSchedule.ScheduleTypeEnum scheduleType = 1;
void ChargeSchedule::clear_scheduletype() {
  scheduletype_ = 0;
}
::com::fca::uconnect::global::ChargeSchedule_ScheduleTypeEnum ChargeSchedule::scheduletype() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeSchedule.scheduleType)
  return static_cast< ::com::fca::uconnect::global::ChargeSchedule_ScheduleTypeEnum >(scheduletype_);
}
void ChargeSchedule::set_scheduletype(::com::fca::uconnect::global::ChargeSchedule_ScheduleTypeEnum value) {
  
  scheduletype_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeSchedule.scheduleType)
}

// bool chargeUntilFull = 2;
void ChargeSchedule::clear_chargeuntilfull() {
  chargeuntilfull_ = false;
}
bool ChargeSchedule::chargeuntilfull() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeSchedule.chargeUntilFull)
  return chargeuntilfull_;
}
void ChargeSchedule::set_chargeuntilfull(bool value) {
  
  chargeuntilfull_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeSchedule.chargeUntilFull)
}

// int32 scheduleStartTime = 3;
void ChargeSchedule::clear_schedulestarttime() {
  schedulestarttime_ = 0;
}
::google::protobuf::int32 ChargeSchedule::schedulestarttime() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeSchedule.scheduleStartTime)
  return schedulestarttime_;
}
void ChargeSchedule::set_schedulestarttime(::google::protobuf::int32 value) {
  
  schedulestarttime_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeSchedule.scheduleStartTime)
}

// int32 scheduleEndTime = 4;
void ChargeSchedule::clear_scheduleendtime() {
  scheduleendtime_ = 0;
}
::google::protobuf::int32 ChargeSchedule::scheduleendtime() const {
  // @@protoc_insertion_point(field_get:com.fca.uconnect.global.ChargeSchedule.scheduleEndTime)
  return scheduleendtime_;
}
void ChargeSchedule::set_scheduleendtime(::google::protobuf::int32 value) {
  
  scheduleendtime_ = value;
  // @@protoc_insertion_point(field_set:com.fca.uconnect.global.ChargeSchedule.scheduleEndTime)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

}  // namespace global
}  // namespace uconnect
}  // namespace fca
}  // namespace com

// @@protoc_insertion_point(global_scope)
