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

package com.fca.uconnect.global;

public final class GlobalUconnectDevice {
  private GlobalUconnectDevice() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface DeviceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.Device)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *&#47; This identifies the type of the device.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Device.DeviceType deviceType = 1;</code>
     */
    boolean hasDeviceType();
    /**
     * <pre>
     *&#47; This identifies the type of the device.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Device.DeviceType deviceType = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType getDeviceType();

    /**
     * <pre>
     *&#47; Device Manufacturer Name
     * </pre>
     *
     * <code>optional string manufacturerName = 2;</code>
     */
    boolean hasManufacturerName();
    /**
     * <pre>
     *&#47; Device Manufacturer Name
     * </pre>
     *
     * <code>optional string manufacturerName = 2;</code>
     */
    java.lang.String getManufacturerName();
    /**
     * <pre>
     *&#47; Device Manufacturer Name
     * </pre>
     *
     * <code>optional string manufacturerName = 2;</code>
     */
    com.google.protobuf.ByteString
        getManufacturerNameBytes();

    /**
     * <pre>
     *&#47; TBM Serial Number
     * </pre>
     *
     * <code>optional string tbmSerialNum = 3;</code>
     */
    boolean hasTbmSerialNum();
    /**
     * <pre>
     *&#47; TBM Serial Number
     * </pre>
     *
     * <code>optional string tbmSerialNum = 3;</code>
     */
    java.lang.String getTbmSerialNum();
    /**
     * <pre>
     *&#47; TBM Serial Number
     * </pre>
     *
     * <code>optional string tbmSerialNum = 3;</code>
     */
    com.google.protobuf.ByteString
        getTbmSerialNumBytes();

    /**
     * <pre>
     *&#47; TBM Part Number
     * </pre>
     *
     * <code>optional string tbmPartNum = 4;</code>
     */
    boolean hasTbmPartNum();
    /**
     * <pre>
     *&#47; TBM Part Number
     * </pre>
     *
     * <code>optional string tbmPartNum = 4;</code>
     */
    java.lang.String getTbmPartNum();
    /**
     * <pre>
     *&#47; TBM Part Number
     * </pre>
     *
     * <code>optional string tbmPartNum = 4;</code>
     */
    com.google.protobuf.ByteString
        getTbmPartNumBytes();

    /**
     * <pre>
     *&#47; TBM Hardware Version
     * </pre>
     *
     * <code>optional string tbmHardwareVersion = 5;</code>
     */
    boolean hasTbmHardwareVersion();
    /**
     * <pre>
     *&#47; TBM Hardware Version
     * </pre>
     *
     * <code>optional string tbmHardwareVersion = 5;</code>
     */
    java.lang.String getTbmHardwareVersion();
    /**
     * <pre>
     *&#47; TBM Hardware Version
     * </pre>
     *
     * <code>optional string tbmHardwareVersion = 5;</code>
     */
    com.google.protobuf.ByteString
        getTbmHardwareVersionBytes();

    /**
     * <pre>
     *&#47; TBM Software Version
     * </pre>
     *
     * <code>optional string tbmSoftwareVersion = 6;</code>
     */
    boolean hasTbmSoftwareVersion();
    /**
     * <pre>
     *&#47; TBM Software Version
     * </pre>
     *
     * <code>optional string tbmSoftwareVersion = 6;</code>
     */
    java.lang.String getTbmSoftwareVersion();
    /**
     * <pre>
     *&#47; TBM Software Version
     * </pre>
     *
     * <code>optional string tbmSoftwareVersion = 6;</code>
     */
    com.google.protobuf.ByteString
        getTbmSoftwareVersionBytes();

    /**
     * <code>optional string simIccid = 7;</code>
     */
    boolean hasSimIccid();
    /**
     * <code>optional string simIccid = 7;</code>
     */
    java.lang.String getSimIccid();
    /**
     * <code>optional string simIccid = 7;</code>
     */
    com.google.protobuf.ByteString
        getSimIccidBytes();

    /**
     * <code>optional string simImsi = 8;</code>
     */
    boolean hasSimImsi();
    /**
     * <code>optional string simImsi = 8;</code>
     */
    java.lang.String getSimImsi();
    /**
     * <code>optional string simImsi = 8;</code>
     */
    com.google.protobuf.ByteString
        getSimImsiBytes();

    /**
     * <pre>
     *&#47; Number uniquely identifying a subscription in a mobile network.
     * </pre>
     *
     * <code>optional string simMsisdn = 9;</code>
     */
    boolean hasSimMsisdn();
    /**
     * <pre>
     *&#47; Number uniquely identifying a subscription in a mobile network.
     * </pre>
     *
     * <code>optional string simMsisdn = 9;</code>
     */
    java.lang.String getSimMsisdn();
    /**
     * <pre>
     *&#47; Number uniquely identifying a subscription in a mobile network.
     * </pre>
     *
     * <code>optional string simMsisdn = 9;</code>
     */
    com.google.protobuf.ByteString
        getSimMsisdnBytes();

    /**
     * <code>optional string nadImei = 10;</code>
     */
    boolean hasNadImei();
    /**
     * <code>optional string nadImei = 10;</code>
     */
    java.lang.String getNadImei();
    /**
     * <code>optional string nadImei = 10;</code>
     */
    com.google.protobuf.ByteString
        getNadImeiBytes();

    /**
     * <pre>
     *&#47; Modem Hardware Version
     * </pre>
     *
     * <code>optional string nadHardwareVersion = 11;</code>
     */
    boolean hasNadHardwareVersion();
    /**
     * <pre>
     *&#47; Modem Hardware Version
     * </pre>
     *
     * <code>optional string nadHardwareVersion = 11;</code>
     */
    java.lang.String getNadHardwareVersion();
    /**
     * <pre>
     *&#47; Modem Hardware Version
     * </pre>
     *
     * <code>optional string nadHardwareVersion = 11;</code>
     */
    com.google.protobuf.ByteString
        getNadHardwareVersionBytes();

    /**
     * <pre>
     *&#47; Modem Software Version
     * </pre>
     *
     * <code>optional string nadSoftwareVersion = 12;</code>
     */
    boolean hasNadSoftwareVersion();
    /**
     * <pre>
     *&#47; Modem Software Version
     * </pre>
     *
     * <code>optional string nadSoftwareVersion = 12;</code>
     */
    java.lang.String getNadSoftwareVersion();
    /**
     * <pre>
     *&#47; Modem Software Version
     * </pre>
     *
     * <code>optional string nadSoftwareVersion = 12;</code>
     */
    com.google.protobuf.ByteString
        getNadSoftwareVersionBytes();

    /**
     * <pre>
     *&#47; Modem Serial Number
     * </pre>
     *
     * <code>optional string nadSerialNum = 13;</code>
     */
    boolean hasNadSerialNum();
    /**
     * <pre>
     *&#47; Modem Serial Number
     * </pre>
     *
     * <code>optional string nadSerialNum = 13;</code>
     */
    java.lang.String getNadSerialNum();
    /**
     * <pre>
     *&#47; Modem Serial Number
     * </pre>
     *
     * <code>optional string nadSerialNum = 13;</code>
     */
    com.google.protobuf.ByteString
        getNadSerialNumBytes();

    /**
     * <pre>
     *&#47; Model Part Number
     * </pre>
     *
     * <code>optional string nadPartNum = 14;</code>
     */
    boolean hasNadPartNum();
    /**
     * <pre>
     *&#47; Model Part Number
     * </pre>
     *
     * <code>optional string nadPartNum = 14;</code>
     */
    java.lang.String getNadPartNum();
    /**
     * <pre>
     *&#47; Model Part Number
     * </pre>
     *
     * <code>optional string nadPartNum = 14;</code>
     */
    com.google.protobuf.ByteString
        getNadPartNumBytes();

    /**
     * <pre>
     *&#47; WiFi Mac Address
     * </pre>
     *
     * <code>optional string wifiMac = 15;</code>
     */
    boolean hasWifiMac();
    /**
     * <pre>
     *&#47; WiFi Mac Address
     * </pre>
     *
     * <code>optional string wifiMac = 15;</code>
     */
    java.lang.String getWifiMac();
    /**
     * <pre>
     *&#47; WiFi Mac Address
     * </pre>
     *
     * <code>optional string wifiMac = 15;</code>
     */
    com.google.protobuf.ByteString
        getWifiMacBytes();

    /**
     * <pre>
     *&#47; HU Serial Number
     * </pre>
     *
     * <code>optional string huSerialNum = 16;</code>
     */
    boolean hasHuSerialNum();
    /**
     * <pre>
     *&#47; HU Serial Number
     * </pre>
     *
     * <code>optional string huSerialNum = 16;</code>
     */
    java.lang.String getHuSerialNum();
    /**
     * <pre>
     *&#47; HU Serial Number
     * </pre>
     *
     * <code>optional string huSerialNum = 16;</code>
     */
    com.google.protobuf.ByteString
        getHuSerialNumBytes();

    /**
     * <pre>
     *&#47; HU Part Number
     * </pre>
     *
     * <code>optional string huPartNum = 17;</code>
     */
    boolean hasHuPartNum();
    /**
     * <pre>
     *&#47; HU Part Number
     * </pre>
     *
     * <code>optional string huPartNum = 17;</code>
     */
    java.lang.String getHuPartNum();
    /**
     * <pre>
     *&#47; HU Part Number
     * </pre>
     *
     * <code>optional string huPartNum = 17;</code>
     */
    com.google.protobuf.ByteString
        getHuPartNumBytes();

    /**
     * <pre>
     *&#47; HU Hardware Version
     * </pre>
     *
     * <code>optional string huHardwareVersion = 18;</code>
     */
    boolean hasHuHardwareVersion();
    /**
     * <pre>
     *&#47; HU Hardware Version
     * </pre>
     *
     * <code>optional string huHardwareVersion = 18;</code>
     */
    java.lang.String getHuHardwareVersion();
    /**
     * <pre>
     *&#47; HU Hardware Version
     * </pre>
     *
     * <code>optional string huHardwareVersion = 18;</code>
     */
    com.google.protobuf.ByteString
        getHuHardwareVersionBytes();

    /**
     * <pre>
     *&#47; HU Software Version
     * </pre>
     *
     * <code>optional string huSoftwareVersion = 19;</code>
     */
    boolean hasHuSoftwareVersion();
    /**
     * <pre>
     *&#47; HU Software Version
     * </pre>
     *
     * <code>optional string huSoftwareVersion = 19;</code>
     */
    java.lang.String getHuSoftwareVersion();
    /**
     * <pre>
     *&#47; HU Software Version
     * </pre>
     *
     * <code>optional string huSoftwareVersion = 19;</code>
     */
    com.google.protobuf.ByteString
        getHuSoftwareVersionBytes();

    /**
     * <code>optional bool isHUNavigationPresent = 20;</code>
     */
    boolean hasIsHUNavigationPresent();
    /**
     * <code>optional bool isHUNavigationPresent = 20;</code>
     */
    boolean getIsHUNavigationPresent();
  }
  /**
   * Protobuf type {@code com.fca.uconnect.global.Device}
   */
  public  static final class Device extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.Device)
      DeviceOrBuilder {
    // Use Device.newBuilder() to construct.
    private Device(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Device() {
      deviceType_ = 0;
      manufacturerName_ = "";
      tbmSerialNum_ = "";
      tbmPartNum_ = "";
      tbmHardwareVersion_ = "";
      tbmSoftwareVersion_ = "";
      simIccid_ = "";
      simImsi_ = "";
      simMsisdn_ = "";
      nadImei_ = "";
      nadHardwareVersion_ = "";
      nadSoftwareVersion_ = "";
      nadSerialNum_ = "";
      nadPartNum_ = "";
      wifiMac_ = "";
      huSerialNum_ = "";
      huPartNum_ = "";
      huHardwareVersion_ = "";
      huSoftwareVersion_ = "";
      isHUNavigationPresent_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Device(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType value = com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                deviceType_ = rawValue;
              }
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              manufacturerName_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              tbmSerialNum_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              tbmPartNum_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              tbmHardwareVersion_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              tbmSoftwareVersion_ = bs;
              break;
            }
            case 58: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000040;
              simIccid_ = bs;
              break;
            }
            case 66: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              simImsi_ = bs;
              break;
            }
            case 74: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              simMsisdn_ = bs;
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              nadImei_ = bs;
              break;
            }
            case 90: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000400;
              nadHardwareVersion_ = bs;
              break;
            }
            case 98: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              nadSoftwareVersion_ = bs;
              break;
            }
            case 106: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00001000;
              nadSerialNum_ = bs;
              break;
            }
            case 114: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00002000;
              nadPartNum_ = bs;
              break;
            }
            case 122: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00004000;
              wifiMac_ = bs;
              break;
            }
            case 130: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00008000;
              huSerialNum_ = bs;
              break;
            }
            case 138: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00010000;
              huPartNum_ = bs;
              break;
            }
            case 146: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00020000;
              huHardwareVersion_ = bs;
              break;
            }
            case 154: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00040000;
              huSoftwareVersion_ = bs;
              break;
            }
            case 160: {
              bitField0_ |= 0x00080000;
              isHUNavigationPresent_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectDevice.internal_static_com_fca_uconnect_global_Device_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectDevice.internal_static_com_fca_uconnect_global_Device_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectDevice.Device.class, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.Device.DeviceType}
     */
    public enum DeviceType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>ENUM = 0;</code>
       */
      ENUM(0),
      /**
       * <code>TBM = 1;</code>
       */
      TBM(1),
      /**
       * <code>VP2 = 2;</code>
       */
      VP2(2),
      /**
       * <code>VP4 = 3;</code>
       */
      VP4(3),
      ;

      /**
       * <code>ENUM = 0;</code>
       */
      public static final int ENUM_VALUE = 0;
      /**
       * <code>TBM = 1;</code>
       */
      public static final int TBM_VALUE = 1;
      /**
       * <code>VP2 = 2;</code>
       */
      public static final int VP2_VALUE = 2;
      /**
       * <code>VP4 = 3;</code>
       */
      public static final int VP4_VALUE = 3;


      public final int getNumber() {
        return value;
      }

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

      public static DeviceType forNumber(int value) {
        switch (value) {
          case 0: return ENUM;
          case 1: return TBM;
          case 2: return VP2;
          case 3: return VP4;
          default: return null;
        }
      }

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

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

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.Device.DeviceType)
    }

    private int bitField0_;
    public static final int DEVICETYPE_FIELD_NUMBER = 1;
    private int deviceType_;
    /**
     * <pre>
     *&#47; This identifies the type of the device.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Device.DeviceType deviceType = 1;</code>
     */
    public boolean hasDeviceType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     *&#47; This identifies the type of the device.
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Device.DeviceType deviceType = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType getDeviceType() {
      com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType result = com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType.valueOf(deviceType_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType.ENUM : result;
    }

    public static final int MANUFACTURERNAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object manufacturerName_;
    /**
     * <pre>
     *&#47; Device Manufacturer Name
     * </pre>
     *
     * <code>optional string manufacturerName = 2;</code>
     */
    public boolean hasManufacturerName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     *&#47; Device Manufacturer Name
     * </pre>
     *
     * <code>optional string manufacturerName = 2;</code>
     */
    public java.lang.String getManufacturerName() {
      java.lang.Object ref = manufacturerName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          manufacturerName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Device Manufacturer Name
     * </pre>
     *
     * <code>optional string manufacturerName = 2;</code>
     */
    public com.google.protobuf.ByteString
        getManufacturerNameBytes() {
      java.lang.Object ref = manufacturerName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        manufacturerName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TBMSERIALNUM_FIELD_NUMBER = 3;
    private volatile java.lang.Object tbmSerialNum_;
    /**
     * <pre>
     *&#47; TBM Serial Number
     * </pre>
     *
     * <code>optional string tbmSerialNum = 3;</code>
     */
    public boolean hasTbmSerialNum() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     *&#47; TBM Serial Number
     * </pre>
     *
     * <code>optional string tbmSerialNum = 3;</code>
     */
    public java.lang.String getTbmSerialNum() {
      java.lang.Object ref = tbmSerialNum_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tbmSerialNum_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; TBM Serial Number
     * </pre>
     *
     * <code>optional string tbmSerialNum = 3;</code>
     */
    public com.google.protobuf.ByteString
        getTbmSerialNumBytes() {
      java.lang.Object ref = tbmSerialNum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tbmSerialNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TBMPARTNUM_FIELD_NUMBER = 4;
    private volatile java.lang.Object tbmPartNum_;
    /**
     * <pre>
     *&#47; TBM Part Number
     * </pre>
     *
     * <code>optional string tbmPartNum = 4;</code>
     */
    public boolean hasTbmPartNum() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     *&#47; TBM Part Number
     * </pre>
     *
     * <code>optional string tbmPartNum = 4;</code>
     */
    public java.lang.String getTbmPartNum() {
      java.lang.Object ref = tbmPartNum_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tbmPartNum_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; TBM Part Number
     * </pre>
     *
     * <code>optional string tbmPartNum = 4;</code>
     */
    public com.google.protobuf.ByteString
        getTbmPartNumBytes() {
      java.lang.Object ref = tbmPartNum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tbmPartNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TBMHARDWAREVERSION_FIELD_NUMBER = 5;
    private volatile java.lang.Object tbmHardwareVersion_;
    /**
     * <pre>
     *&#47; TBM Hardware Version
     * </pre>
     *
     * <code>optional string tbmHardwareVersion = 5;</code>
     */
    public boolean hasTbmHardwareVersion() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     *&#47; TBM Hardware Version
     * </pre>
     *
     * <code>optional string tbmHardwareVersion = 5;</code>
     */
    public java.lang.String getTbmHardwareVersion() {
      java.lang.Object ref = tbmHardwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tbmHardwareVersion_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; TBM Hardware Version
     * </pre>
     *
     * <code>optional string tbmHardwareVersion = 5;</code>
     */
    public com.google.protobuf.ByteString
        getTbmHardwareVersionBytes() {
      java.lang.Object ref = tbmHardwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tbmHardwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TBMSOFTWAREVERSION_FIELD_NUMBER = 6;
    private volatile java.lang.Object tbmSoftwareVersion_;
    /**
     * <pre>
     *&#47; TBM Software Version
     * </pre>
     *
     * <code>optional string tbmSoftwareVersion = 6;</code>
     */
    public boolean hasTbmSoftwareVersion() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <pre>
     *&#47; TBM Software Version
     * </pre>
     *
     * <code>optional string tbmSoftwareVersion = 6;</code>
     */
    public java.lang.String getTbmSoftwareVersion() {
      java.lang.Object ref = tbmSoftwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tbmSoftwareVersion_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; TBM Software Version
     * </pre>
     *
     * <code>optional string tbmSoftwareVersion = 6;</code>
     */
    public com.google.protobuf.ByteString
        getTbmSoftwareVersionBytes() {
      java.lang.Object ref = tbmSoftwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tbmSoftwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIMICCID_FIELD_NUMBER = 7;
    private volatile java.lang.Object simIccid_;
    /**
     * <code>optional string simIccid = 7;</code>
     */
    public boolean hasSimIccid() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional string simIccid = 7;</code>
     */
    public java.lang.String getSimIccid() {
      java.lang.Object ref = simIccid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          simIccid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string simIccid = 7;</code>
     */
    public com.google.protobuf.ByteString
        getSimIccidBytes() {
      java.lang.Object ref = simIccid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        simIccid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIMIMSI_FIELD_NUMBER = 8;
    private volatile java.lang.Object simImsi_;
    /**
     * <code>optional string simImsi = 8;</code>
     */
    public boolean hasSimImsi() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional string simImsi = 8;</code>
     */
    public java.lang.String getSimImsi() {
      java.lang.Object ref = simImsi_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          simImsi_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string simImsi = 8;</code>
     */
    public com.google.protobuf.ByteString
        getSimImsiBytes() {
      java.lang.Object ref = simImsi_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        simImsi_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIMMSISDN_FIELD_NUMBER = 9;
    private volatile java.lang.Object simMsisdn_;
    /**
     * <pre>
     *&#47; Number uniquely identifying a subscription in a mobile network.
     * </pre>
     *
     * <code>optional string simMsisdn = 9;</code>
     */
    public boolean hasSimMsisdn() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <pre>
     *&#47; Number uniquely identifying a subscription in a mobile network.
     * </pre>
     *
     * <code>optional string simMsisdn = 9;</code>
     */
    public java.lang.String getSimMsisdn() {
      java.lang.Object ref = simMsisdn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          simMsisdn_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Number uniquely identifying a subscription in a mobile network.
     * </pre>
     *
     * <code>optional string simMsisdn = 9;</code>
     */
    public com.google.protobuf.ByteString
        getSimMsisdnBytes() {
      java.lang.Object ref = simMsisdn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        simMsisdn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NADIMEI_FIELD_NUMBER = 10;
    private volatile java.lang.Object nadImei_;
    /**
     * <code>optional string nadImei = 10;</code>
     */
    public boolean hasNadImei() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * <code>optional string nadImei = 10;</code>
     */
    public java.lang.String getNadImei() {
      java.lang.Object ref = nadImei_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          nadImei_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string nadImei = 10;</code>
     */
    public com.google.protobuf.ByteString
        getNadImeiBytes() {
      java.lang.Object ref = nadImei_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nadImei_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NADHARDWAREVERSION_FIELD_NUMBER = 11;
    private volatile java.lang.Object nadHardwareVersion_;
    /**
     * <pre>
     *&#47; Modem Hardware Version
     * </pre>
     *
     * <code>optional string nadHardwareVersion = 11;</code>
     */
    public boolean hasNadHardwareVersion() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * <pre>
     *&#47; Modem Hardware Version
     * </pre>
     *
     * <code>optional string nadHardwareVersion = 11;</code>
     */
    public java.lang.String getNadHardwareVersion() {
      java.lang.Object ref = nadHardwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          nadHardwareVersion_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Modem Hardware Version
     * </pre>
     *
     * <code>optional string nadHardwareVersion = 11;</code>
     */
    public com.google.protobuf.ByteString
        getNadHardwareVersionBytes() {
      java.lang.Object ref = nadHardwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nadHardwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NADSOFTWAREVERSION_FIELD_NUMBER = 12;
    private volatile java.lang.Object nadSoftwareVersion_;
    /**
     * <pre>
     *&#47; Modem Software Version
     * </pre>
     *
     * <code>optional string nadSoftwareVersion = 12;</code>
     */
    public boolean hasNadSoftwareVersion() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * <pre>
     *&#47; Modem Software Version
     * </pre>
     *
     * <code>optional string nadSoftwareVersion = 12;</code>
     */
    public java.lang.String getNadSoftwareVersion() {
      java.lang.Object ref = nadSoftwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          nadSoftwareVersion_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Modem Software Version
     * </pre>
     *
     * <code>optional string nadSoftwareVersion = 12;</code>
     */
    public com.google.protobuf.ByteString
        getNadSoftwareVersionBytes() {
      java.lang.Object ref = nadSoftwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nadSoftwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NADSERIALNUM_FIELD_NUMBER = 13;
    private volatile java.lang.Object nadSerialNum_;
    /**
     * <pre>
     *&#47; Modem Serial Number
     * </pre>
     *
     * <code>optional string nadSerialNum = 13;</code>
     */
    public boolean hasNadSerialNum() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * <pre>
     *&#47; Modem Serial Number
     * </pre>
     *
     * <code>optional string nadSerialNum = 13;</code>
     */
    public java.lang.String getNadSerialNum() {
      java.lang.Object ref = nadSerialNum_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          nadSerialNum_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Modem Serial Number
     * </pre>
     *
     * <code>optional string nadSerialNum = 13;</code>
     */
    public com.google.protobuf.ByteString
        getNadSerialNumBytes() {
      java.lang.Object ref = nadSerialNum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nadSerialNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NADPARTNUM_FIELD_NUMBER = 14;
    private volatile java.lang.Object nadPartNum_;
    /**
     * <pre>
     *&#47; Model Part Number
     * </pre>
     *
     * <code>optional string nadPartNum = 14;</code>
     */
    public boolean hasNadPartNum() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * <pre>
     *&#47; Model Part Number
     * </pre>
     *
     * <code>optional string nadPartNum = 14;</code>
     */
    public java.lang.String getNadPartNum() {
      java.lang.Object ref = nadPartNum_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          nadPartNum_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; Model Part Number
     * </pre>
     *
     * <code>optional string nadPartNum = 14;</code>
     */
    public com.google.protobuf.ByteString
        getNadPartNumBytes() {
      java.lang.Object ref = nadPartNum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nadPartNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int WIFIMAC_FIELD_NUMBER = 15;
    private volatile java.lang.Object wifiMac_;
    /**
     * <pre>
     *&#47; WiFi Mac Address
     * </pre>
     *
     * <code>optional string wifiMac = 15;</code>
     */
    public boolean hasWifiMac() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * <pre>
     *&#47; WiFi Mac Address
     * </pre>
     *
     * <code>optional string wifiMac = 15;</code>
     */
    public java.lang.String getWifiMac() {
      java.lang.Object ref = wifiMac_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          wifiMac_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; WiFi Mac Address
     * </pre>
     *
     * <code>optional string wifiMac = 15;</code>
     */
    public com.google.protobuf.ByteString
        getWifiMacBytes() {
      java.lang.Object ref = wifiMac_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        wifiMac_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HUSERIALNUM_FIELD_NUMBER = 16;
    private volatile java.lang.Object huSerialNum_;
    /**
     * <pre>
     *&#47; HU Serial Number
     * </pre>
     *
     * <code>optional string huSerialNum = 16;</code>
     */
    public boolean hasHuSerialNum() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     * <pre>
     *&#47; HU Serial Number
     * </pre>
     *
     * <code>optional string huSerialNum = 16;</code>
     */
    public java.lang.String getHuSerialNum() {
      java.lang.Object ref = huSerialNum_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          huSerialNum_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; HU Serial Number
     * </pre>
     *
     * <code>optional string huSerialNum = 16;</code>
     */
    public com.google.protobuf.ByteString
        getHuSerialNumBytes() {
      java.lang.Object ref = huSerialNum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        huSerialNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HUPARTNUM_FIELD_NUMBER = 17;
    private volatile java.lang.Object huPartNum_;
    /**
     * <pre>
     *&#47; HU Part Number
     * </pre>
     *
     * <code>optional string huPartNum = 17;</code>
     */
    public boolean hasHuPartNum() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     * <pre>
     *&#47; HU Part Number
     * </pre>
     *
     * <code>optional string huPartNum = 17;</code>
     */
    public java.lang.String getHuPartNum() {
      java.lang.Object ref = huPartNum_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          huPartNum_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; HU Part Number
     * </pre>
     *
     * <code>optional string huPartNum = 17;</code>
     */
    public com.google.protobuf.ByteString
        getHuPartNumBytes() {
      java.lang.Object ref = huPartNum_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        huPartNum_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HUHARDWAREVERSION_FIELD_NUMBER = 18;
    private volatile java.lang.Object huHardwareVersion_;
    /**
     * <pre>
     *&#47; HU Hardware Version
     * </pre>
     *
     * <code>optional string huHardwareVersion = 18;</code>
     */
    public boolean hasHuHardwareVersion() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     * <pre>
     *&#47; HU Hardware Version
     * </pre>
     *
     * <code>optional string huHardwareVersion = 18;</code>
     */
    public java.lang.String getHuHardwareVersion() {
      java.lang.Object ref = huHardwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          huHardwareVersion_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; HU Hardware Version
     * </pre>
     *
     * <code>optional string huHardwareVersion = 18;</code>
     */
    public com.google.protobuf.ByteString
        getHuHardwareVersionBytes() {
      java.lang.Object ref = huHardwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        huHardwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HUSOFTWAREVERSION_FIELD_NUMBER = 19;
    private volatile java.lang.Object huSoftwareVersion_;
    /**
     * <pre>
     *&#47; HU Software Version
     * </pre>
     *
     * <code>optional string huSoftwareVersion = 19;</code>
     */
    public boolean hasHuSoftwareVersion() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     * <pre>
     *&#47; HU Software Version
     * </pre>
     *
     * <code>optional string huSoftwareVersion = 19;</code>
     */
    public java.lang.String getHuSoftwareVersion() {
      java.lang.Object ref = huSoftwareVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          huSoftwareVersion_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     *&#47; HU Software Version
     * </pre>
     *
     * <code>optional string huSoftwareVersion = 19;</code>
     */
    public com.google.protobuf.ByteString
        getHuSoftwareVersionBytes() {
      java.lang.Object ref = huSoftwareVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        huSoftwareVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ISHUNAVIGATIONPRESENT_FIELD_NUMBER = 20;
    private boolean isHUNavigationPresent_;
    /**
     * <code>optional bool isHUNavigationPresent = 20;</code>
     */
    public boolean hasIsHUNavigationPresent() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     * <code>optional bool isHUNavigationPresent = 20;</code>
     */
    public boolean getIsHUNavigationPresent() {
      return isHUNavigationPresent_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, deviceType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, manufacturerName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, tbmSerialNum_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, tbmPartNum_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, tbmHardwareVersion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, tbmSoftwareVersion_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, simIccid_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, simImsi_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, simMsisdn_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, nadImei_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, nadHardwareVersion_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, nadSoftwareVersion_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, nadSerialNum_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, nadPartNum_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, wifiMac_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, huSerialNum_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, huPartNum_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 18, huHardwareVersion_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 19, huSoftwareVersion_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeBool(20, isHUNavigationPresent_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, deviceType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, manufacturerName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, tbmSerialNum_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, tbmPartNum_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, tbmHardwareVersion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, tbmSoftwareVersion_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, simIccid_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, simImsi_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, simMsisdn_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, nadImei_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, nadHardwareVersion_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, nadSoftwareVersion_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, nadSerialNum_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, nadPartNum_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, wifiMac_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, huSerialNum_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, huPartNum_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, huHardwareVersion_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, huSoftwareVersion_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(20, isHUNavigationPresent_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      boolean result = true;
      result = result && (hasDeviceType() == other.hasDeviceType());
      if (hasDeviceType()) {
        result = result && deviceType_ == other.deviceType_;
      }
      result = result && (hasManufacturerName() == other.hasManufacturerName());
      if (hasManufacturerName()) {
        result = result && getManufacturerName()
            .equals(other.getManufacturerName());
      }
      result = result && (hasTbmSerialNum() == other.hasTbmSerialNum());
      if (hasTbmSerialNum()) {
        result = result && getTbmSerialNum()
            .equals(other.getTbmSerialNum());
      }
      result = result && (hasTbmPartNum() == other.hasTbmPartNum());
      if (hasTbmPartNum()) {
        result = result && getTbmPartNum()
            .equals(other.getTbmPartNum());
      }
      result = result && (hasTbmHardwareVersion() == other.hasTbmHardwareVersion());
      if (hasTbmHardwareVersion()) {
        result = result && getTbmHardwareVersion()
            .equals(other.getTbmHardwareVersion());
      }
      result = result && (hasTbmSoftwareVersion() == other.hasTbmSoftwareVersion());
      if (hasTbmSoftwareVersion()) {
        result = result && getTbmSoftwareVersion()
            .equals(other.getTbmSoftwareVersion());
      }
      result = result && (hasSimIccid() == other.hasSimIccid());
      if (hasSimIccid()) {
        result = result && getSimIccid()
            .equals(other.getSimIccid());
      }
      result = result && (hasSimImsi() == other.hasSimImsi());
      if (hasSimImsi()) {
        result = result && getSimImsi()
            .equals(other.getSimImsi());
      }
      result = result && (hasSimMsisdn() == other.hasSimMsisdn());
      if (hasSimMsisdn()) {
        result = result && getSimMsisdn()
            .equals(other.getSimMsisdn());
      }
      result = result && (hasNadImei() == other.hasNadImei());
      if (hasNadImei()) {
        result = result && getNadImei()
            .equals(other.getNadImei());
      }
      result = result && (hasNadHardwareVersion() == other.hasNadHardwareVersion());
      if (hasNadHardwareVersion()) {
        result = result && getNadHardwareVersion()
            .equals(other.getNadHardwareVersion());
      }
      result = result && (hasNadSoftwareVersion() == other.hasNadSoftwareVersion());
      if (hasNadSoftwareVersion()) {
        result = result && getNadSoftwareVersion()
            .equals(other.getNadSoftwareVersion());
      }
      result = result && (hasNadSerialNum() == other.hasNadSerialNum());
      if (hasNadSerialNum()) {
        result = result && getNadSerialNum()
            .equals(other.getNadSerialNum());
      }
      result = result && (hasNadPartNum() == other.hasNadPartNum());
      if (hasNadPartNum()) {
        result = result && getNadPartNum()
            .equals(other.getNadPartNum());
      }
      result = result && (hasWifiMac() == other.hasWifiMac());
      if (hasWifiMac()) {
        result = result && getWifiMac()
            .equals(other.getWifiMac());
      }
      result = result && (hasHuSerialNum() == other.hasHuSerialNum());
      if (hasHuSerialNum()) {
        result = result && getHuSerialNum()
            .equals(other.getHuSerialNum());
      }
      result = result && (hasHuPartNum() == other.hasHuPartNum());
      if (hasHuPartNum()) {
        result = result && getHuPartNum()
            .equals(other.getHuPartNum());
      }
      result = result && (hasHuHardwareVersion() == other.hasHuHardwareVersion());
      if (hasHuHardwareVersion()) {
        result = result && getHuHardwareVersion()
            .equals(other.getHuHardwareVersion());
      }
      result = result && (hasHuSoftwareVersion() == other.hasHuSoftwareVersion());
      if (hasHuSoftwareVersion()) {
        result = result && getHuSoftwareVersion()
            .equals(other.getHuSoftwareVersion());
      }
      result = result && (hasIsHUNavigationPresent() == other.hasIsHUNavigationPresent());
      if (hasIsHUNavigationPresent()) {
        result = result && (getIsHUNavigationPresent()
            == other.getIsHUNavigationPresent());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasDeviceType()) {
        hash = (37 * hash) + DEVICETYPE_FIELD_NUMBER;
        hash = (53 * hash) + deviceType_;
      }
      if (hasManufacturerName()) {
        hash = (37 * hash) + MANUFACTURERNAME_FIELD_NUMBER;
        hash = (53 * hash) + getManufacturerName().hashCode();
      }
      if (hasTbmSerialNum()) {
        hash = (37 * hash) + TBMSERIALNUM_FIELD_NUMBER;
        hash = (53 * hash) + getTbmSerialNum().hashCode();
      }
      if (hasTbmPartNum()) {
        hash = (37 * hash) + TBMPARTNUM_FIELD_NUMBER;
        hash = (53 * hash) + getTbmPartNum().hashCode();
      }
      if (hasTbmHardwareVersion()) {
        hash = (37 * hash) + TBMHARDWAREVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getTbmHardwareVersion().hashCode();
      }
      if (hasTbmSoftwareVersion()) {
        hash = (37 * hash) + TBMSOFTWAREVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getTbmSoftwareVersion().hashCode();
      }
      if (hasSimIccid()) {
        hash = (37 * hash) + SIMICCID_FIELD_NUMBER;
        hash = (53 * hash) + getSimIccid().hashCode();
      }
      if (hasSimImsi()) {
        hash = (37 * hash) + SIMIMSI_FIELD_NUMBER;
        hash = (53 * hash) + getSimImsi().hashCode();
      }
      if (hasSimMsisdn()) {
        hash = (37 * hash) + SIMMSISDN_FIELD_NUMBER;
        hash = (53 * hash) + getSimMsisdn().hashCode();
      }
      if (hasNadImei()) {
        hash = (37 * hash) + NADIMEI_FIELD_NUMBER;
        hash = (53 * hash) + getNadImei().hashCode();
      }
      if (hasNadHardwareVersion()) {
        hash = (37 * hash) + NADHARDWAREVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getNadHardwareVersion().hashCode();
      }
      if (hasNadSoftwareVersion()) {
        hash = (37 * hash) + NADSOFTWAREVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getNadSoftwareVersion().hashCode();
      }
      if (hasNadSerialNum()) {
        hash = (37 * hash) + NADSERIALNUM_FIELD_NUMBER;
        hash = (53 * hash) + getNadSerialNum().hashCode();
      }
      if (hasNadPartNum()) {
        hash = (37 * hash) + NADPARTNUM_FIELD_NUMBER;
        hash = (53 * hash) + getNadPartNum().hashCode();
      }
      if (hasWifiMac()) {
        hash = (37 * hash) + WIFIMAC_FIELD_NUMBER;
        hash = (53 * hash) + getWifiMac().hashCode();
      }
      if (hasHuSerialNum()) {
        hash = (37 * hash) + HUSERIALNUM_FIELD_NUMBER;
        hash = (53 * hash) + getHuSerialNum().hashCode();
      }
      if (hasHuPartNum()) {
        hash = (37 * hash) + HUPARTNUM_FIELD_NUMBER;
        hash = (53 * hash) + getHuPartNum().hashCode();
      }
      if (hasHuHardwareVersion()) {
        hash = (37 * hash) + HUHARDWAREVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getHuHardwareVersion().hashCode();
      }
      if (hasHuSoftwareVersion()) {
        hash = (37 * hash) + HUSOFTWAREVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getHuSoftwareVersion().hashCode();
      }
      if (hasIsHUNavigationPresent()) {
        hash = (37 * hash) + ISHUNAVIGATIONPRESENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsHUNavigationPresent());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectDevice.Device parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

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

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

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectDevice.internal_static_com_fca_uconnect_global_Device_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectDevice.Device.class, com.fca.uconnect.global.GlobalUconnectDevice.Device.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        deviceType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        manufacturerName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        tbmSerialNum_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        tbmPartNum_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        tbmHardwareVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        tbmSoftwareVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        simIccid_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        simImsi_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        simMsisdn_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        nadImei_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        nadHardwareVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        nadSoftwareVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        nadSerialNum_ = "";
        bitField0_ = (bitField0_ & ~0x00001000);
        nadPartNum_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        wifiMac_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        huSerialNum_ = "";
        bitField0_ = (bitField0_ & ~0x00008000);
        huPartNum_ = "";
        bitField0_ = (bitField0_ & ~0x00010000);
        huHardwareVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00020000);
        huSoftwareVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00040000);
        isHUNavigationPresent_ = false;
        bitField0_ = (bitField0_ & ~0x00080000);
        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectDevice.Device getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectDevice.Device buildPartial() {
        com.fca.uconnect.global.GlobalUconnectDevice.Device result = new com.fca.uconnect.global.GlobalUconnectDevice.Device(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.deviceType_ = deviceType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.manufacturerName_ = manufacturerName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.tbmSerialNum_ = tbmSerialNum_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.tbmPartNum_ = tbmPartNum_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.tbmHardwareVersion_ = tbmHardwareVersion_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.tbmSoftwareVersion_ = tbmSoftwareVersion_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.simIccid_ = simIccid_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.simImsi_ = simImsi_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.simMsisdn_ = simMsisdn_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.nadImei_ = nadImei_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.nadHardwareVersion_ = nadHardwareVersion_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.nadSoftwareVersion_ = nadSoftwareVersion_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.nadSerialNum_ = nadSerialNum_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.nadPartNum_ = nadPartNum_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.wifiMac_ = wifiMac_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.huSerialNum_ = huSerialNum_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.huPartNum_ = huPartNum_;
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.huHardwareVersion_ = huHardwareVersion_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        result.huSoftwareVersion_ = huSoftwareVersion_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        result.isHUNavigationPresent_ = isHUNavigationPresent_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectDevice.Device other) {
        if (other == com.fca.uconnect.global.GlobalUconnectDevice.Device.getDefaultInstance()) return this;
        if (other.hasDeviceType()) {
          setDeviceType(other.getDeviceType());
        }
        if (other.hasManufacturerName()) {
          bitField0_ |= 0x00000002;
          manufacturerName_ = other.manufacturerName_;
          onChanged();
        }
        if (other.hasTbmSerialNum()) {
          bitField0_ |= 0x00000004;
          tbmSerialNum_ = other.tbmSerialNum_;
          onChanged();
        }
        if (other.hasTbmPartNum()) {
          bitField0_ |= 0x00000008;
          tbmPartNum_ = other.tbmPartNum_;
          onChanged();
        }
        if (other.hasTbmHardwareVersion()) {
          bitField0_ |= 0x00000010;
          tbmHardwareVersion_ = other.tbmHardwareVersion_;
          onChanged();
        }
        if (other.hasTbmSoftwareVersion()) {
          bitField0_ |= 0x00000020;
          tbmSoftwareVersion_ = other.tbmSoftwareVersion_;
          onChanged();
        }
        if (other.hasSimIccid()) {
          bitField0_ |= 0x00000040;
          simIccid_ = other.simIccid_;
          onChanged();
        }
        if (other.hasSimImsi()) {
          bitField0_ |= 0x00000080;
          simImsi_ = other.simImsi_;
          onChanged();
        }
        if (other.hasSimMsisdn()) {
          bitField0_ |= 0x00000100;
          simMsisdn_ = other.simMsisdn_;
          onChanged();
        }
        if (other.hasNadImei()) {
          bitField0_ |= 0x00000200;
          nadImei_ = other.nadImei_;
          onChanged();
        }
        if (other.hasNadHardwareVersion()) {
          bitField0_ |= 0x00000400;
          nadHardwareVersion_ = other.nadHardwareVersion_;
          onChanged();
        }
        if (other.hasNadSoftwareVersion()) {
          bitField0_ |= 0x00000800;
          nadSoftwareVersion_ = other.nadSoftwareVersion_;
          onChanged();
        }
        if (other.hasNadSerialNum()) {
          bitField0_ |= 0x00001000;
          nadSerialNum_ = other.nadSerialNum_;
          onChanged();
        }
        if (other.hasNadPartNum()) {
          bitField0_ |= 0x00002000;
          nadPartNum_ = other.nadPartNum_;
          onChanged();
        }
        if (other.hasWifiMac()) {
          bitField0_ |= 0x00004000;
          wifiMac_ = other.wifiMac_;
          onChanged();
        }
        if (other.hasHuSerialNum()) {
          bitField0_ |= 0x00008000;
          huSerialNum_ = other.huSerialNum_;
          onChanged();
        }
        if (other.hasHuPartNum()) {
          bitField0_ |= 0x00010000;
          huPartNum_ = other.huPartNum_;
          onChanged();
        }
        if (other.hasHuHardwareVersion()) {
          bitField0_ |= 0x00020000;
          huHardwareVersion_ = other.huHardwareVersion_;
          onChanged();
        }
        if (other.hasHuSoftwareVersion()) {
          bitField0_ |= 0x00040000;
          huSoftwareVersion_ = other.huSoftwareVersion_;
          onChanged();
        }
        if (other.hasIsHUNavigationPresent()) {
          setIsHUNavigationPresent(other.getIsHUNavigationPresent());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private int deviceType_ = 0;
      /**
       * <pre>
       *&#47; This identifies the type of the device.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Device.DeviceType deviceType = 1;</code>
       */
      public boolean hasDeviceType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47; This identifies the type of the device.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Device.DeviceType deviceType = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType getDeviceType() {
        com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType result = com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType.valueOf(deviceType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType.ENUM : result;
      }
      /**
       * <pre>
       *&#47; This identifies the type of the device.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Device.DeviceType deviceType = 1;</code>
       */
      public Builder setDeviceType(com.fca.uconnect.global.GlobalUconnectDevice.Device.DeviceType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        deviceType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; This identifies the type of the device.
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Device.DeviceType deviceType = 1;</code>
       */
      public Builder clearDeviceType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        deviceType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object manufacturerName_ = "";
      /**
       * <pre>
       *&#47; Device Manufacturer Name
       * </pre>
       *
       * <code>optional string manufacturerName = 2;</code>
       */
      public boolean hasManufacturerName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47; Device Manufacturer Name
       * </pre>
       *
       * <code>optional string manufacturerName = 2;</code>
       */
      public java.lang.String getManufacturerName() {
        java.lang.Object ref = manufacturerName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            manufacturerName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Device Manufacturer Name
       * </pre>
       *
       * <code>optional string manufacturerName = 2;</code>
       */
      public com.google.protobuf.ByteString
          getManufacturerNameBytes() {
        java.lang.Object ref = manufacturerName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          manufacturerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Device Manufacturer Name
       * </pre>
       *
       * <code>optional string manufacturerName = 2;</code>
       */
      public Builder setManufacturerName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        manufacturerName_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Device Manufacturer Name
       * </pre>
       *
       * <code>optional string manufacturerName = 2;</code>
       */
      public Builder clearManufacturerName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        manufacturerName_ = getDefaultInstance().getManufacturerName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Device Manufacturer Name
       * </pre>
       *
       * <code>optional string manufacturerName = 2;</code>
       */
      public Builder setManufacturerNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        manufacturerName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tbmSerialNum_ = "";
      /**
       * <pre>
       *&#47; TBM Serial Number
       * </pre>
       *
       * <code>optional string tbmSerialNum = 3;</code>
       */
      public boolean hasTbmSerialNum() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47; TBM Serial Number
       * </pre>
       *
       * <code>optional string tbmSerialNum = 3;</code>
       */
      public java.lang.String getTbmSerialNum() {
        java.lang.Object ref = tbmSerialNum_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tbmSerialNum_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; TBM Serial Number
       * </pre>
       *
       * <code>optional string tbmSerialNum = 3;</code>
       */
      public com.google.protobuf.ByteString
          getTbmSerialNumBytes() {
        java.lang.Object ref = tbmSerialNum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tbmSerialNum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; TBM Serial Number
       * </pre>
       *
       * <code>optional string tbmSerialNum = 3;</code>
       */
      public Builder setTbmSerialNum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        tbmSerialNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; TBM Serial Number
       * </pre>
       *
       * <code>optional string tbmSerialNum = 3;</code>
       */
      public Builder clearTbmSerialNum() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tbmSerialNum_ = getDefaultInstance().getTbmSerialNum();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; TBM Serial Number
       * </pre>
       *
       * <code>optional string tbmSerialNum = 3;</code>
       */
      public Builder setTbmSerialNumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        tbmSerialNum_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tbmPartNum_ = "";
      /**
       * <pre>
       *&#47; TBM Part Number
       * </pre>
       *
       * <code>optional string tbmPartNum = 4;</code>
       */
      public boolean hasTbmPartNum() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47; TBM Part Number
       * </pre>
       *
       * <code>optional string tbmPartNum = 4;</code>
       */
      public java.lang.String getTbmPartNum() {
        java.lang.Object ref = tbmPartNum_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tbmPartNum_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; TBM Part Number
       * </pre>
       *
       * <code>optional string tbmPartNum = 4;</code>
       */
      public com.google.protobuf.ByteString
          getTbmPartNumBytes() {
        java.lang.Object ref = tbmPartNum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tbmPartNum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; TBM Part Number
       * </pre>
       *
       * <code>optional string tbmPartNum = 4;</code>
       */
      public Builder setTbmPartNum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        tbmPartNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; TBM Part Number
       * </pre>
       *
       * <code>optional string tbmPartNum = 4;</code>
       */
      public Builder clearTbmPartNum() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tbmPartNum_ = getDefaultInstance().getTbmPartNum();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; TBM Part Number
       * </pre>
       *
       * <code>optional string tbmPartNum = 4;</code>
       */
      public Builder setTbmPartNumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        tbmPartNum_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tbmHardwareVersion_ = "";
      /**
       * <pre>
       *&#47; TBM Hardware Version
       * </pre>
       *
       * <code>optional string tbmHardwareVersion = 5;</code>
       */
      public boolean hasTbmHardwareVersion() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47; TBM Hardware Version
       * </pre>
       *
       * <code>optional string tbmHardwareVersion = 5;</code>
       */
      public java.lang.String getTbmHardwareVersion() {
        java.lang.Object ref = tbmHardwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tbmHardwareVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; TBM Hardware Version
       * </pre>
       *
       * <code>optional string tbmHardwareVersion = 5;</code>
       */
      public com.google.protobuf.ByteString
          getTbmHardwareVersionBytes() {
        java.lang.Object ref = tbmHardwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tbmHardwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; TBM Hardware Version
       * </pre>
       *
       * <code>optional string tbmHardwareVersion = 5;</code>
       */
      public Builder setTbmHardwareVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        tbmHardwareVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; TBM Hardware Version
       * </pre>
       *
       * <code>optional string tbmHardwareVersion = 5;</code>
       */
      public Builder clearTbmHardwareVersion() {
        bitField0_ = (bitField0_ & ~0x00000010);
        tbmHardwareVersion_ = getDefaultInstance().getTbmHardwareVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; TBM Hardware Version
       * </pre>
       *
       * <code>optional string tbmHardwareVersion = 5;</code>
       */
      public Builder setTbmHardwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        tbmHardwareVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tbmSoftwareVersion_ = "";
      /**
       * <pre>
       *&#47; TBM Software Version
       * </pre>
       *
       * <code>optional string tbmSoftwareVersion = 6;</code>
       */
      public boolean hasTbmSoftwareVersion() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       *&#47; TBM Software Version
       * </pre>
       *
       * <code>optional string tbmSoftwareVersion = 6;</code>
       */
      public java.lang.String getTbmSoftwareVersion() {
        java.lang.Object ref = tbmSoftwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tbmSoftwareVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; TBM Software Version
       * </pre>
       *
       * <code>optional string tbmSoftwareVersion = 6;</code>
       */
      public com.google.protobuf.ByteString
          getTbmSoftwareVersionBytes() {
        java.lang.Object ref = tbmSoftwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tbmSoftwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; TBM Software Version
       * </pre>
       *
       * <code>optional string tbmSoftwareVersion = 6;</code>
       */
      public Builder setTbmSoftwareVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        tbmSoftwareVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; TBM Software Version
       * </pre>
       *
       * <code>optional string tbmSoftwareVersion = 6;</code>
       */
      public Builder clearTbmSoftwareVersion() {
        bitField0_ = (bitField0_ & ~0x00000020);
        tbmSoftwareVersion_ = getDefaultInstance().getTbmSoftwareVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; TBM Software Version
       * </pre>
       *
       * <code>optional string tbmSoftwareVersion = 6;</code>
       */
      public Builder setTbmSoftwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        tbmSoftwareVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object simIccid_ = "";
      /**
       * <code>optional string simIccid = 7;</code>
       */
      public boolean hasSimIccid() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional string simIccid = 7;</code>
       */
      public java.lang.String getSimIccid() {
        java.lang.Object ref = simIccid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            simIccid_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string simIccid = 7;</code>
       */
      public com.google.protobuf.ByteString
          getSimIccidBytes() {
        java.lang.Object ref = simIccid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          simIccid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string simIccid = 7;</code>
       */
      public Builder setSimIccid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        simIccid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string simIccid = 7;</code>
       */
      public Builder clearSimIccid() {
        bitField0_ = (bitField0_ & ~0x00000040);
        simIccid_ = getDefaultInstance().getSimIccid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string simIccid = 7;</code>
       */
      public Builder setSimIccidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        simIccid_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object simImsi_ = "";
      /**
       * <code>optional string simImsi = 8;</code>
       */
      public boolean hasSimImsi() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional string simImsi = 8;</code>
       */
      public java.lang.String getSimImsi() {
        java.lang.Object ref = simImsi_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            simImsi_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string simImsi = 8;</code>
       */
      public com.google.protobuf.ByteString
          getSimImsiBytes() {
        java.lang.Object ref = simImsi_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          simImsi_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string simImsi = 8;</code>
       */
      public Builder setSimImsi(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        simImsi_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string simImsi = 8;</code>
       */
      public Builder clearSimImsi() {
        bitField0_ = (bitField0_ & ~0x00000080);
        simImsi_ = getDefaultInstance().getSimImsi();
        onChanged();
        return this;
      }
      /**
       * <code>optional string simImsi = 8;</code>
       */
      public Builder setSimImsiBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        simImsi_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object simMsisdn_ = "";
      /**
       * <pre>
       *&#47; Number uniquely identifying a subscription in a mobile network.
       * </pre>
       *
       * <code>optional string simMsisdn = 9;</code>
       */
      public boolean hasSimMsisdn() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <pre>
       *&#47; Number uniquely identifying a subscription in a mobile network.
       * </pre>
       *
       * <code>optional string simMsisdn = 9;</code>
       */
      public java.lang.String getSimMsisdn() {
        java.lang.Object ref = simMsisdn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            simMsisdn_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Number uniquely identifying a subscription in a mobile network.
       * </pre>
       *
       * <code>optional string simMsisdn = 9;</code>
       */
      public com.google.protobuf.ByteString
          getSimMsisdnBytes() {
        java.lang.Object ref = simMsisdn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          simMsisdn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Number uniquely identifying a subscription in a mobile network.
       * </pre>
       *
       * <code>optional string simMsisdn = 9;</code>
       */
      public Builder setSimMsisdn(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        simMsisdn_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Number uniquely identifying a subscription in a mobile network.
       * </pre>
       *
       * <code>optional string simMsisdn = 9;</code>
       */
      public Builder clearSimMsisdn() {
        bitField0_ = (bitField0_ & ~0x00000100);
        simMsisdn_ = getDefaultInstance().getSimMsisdn();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Number uniquely identifying a subscription in a mobile network.
       * </pre>
       *
       * <code>optional string simMsisdn = 9;</code>
       */
      public Builder setSimMsisdnBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        simMsisdn_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object nadImei_ = "";
      /**
       * <code>optional string nadImei = 10;</code>
       */
      public boolean hasNadImei() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional string nadImei = 10;</code>
       */
      public java.lang.String getNadImei() {
        java.lang.Object ref = nadImei_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nadImei_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string nadImei = 10;</code>
       */
      public com.google.protobuf.ByteString
          getNadImeiBytes() {
        java.lang.Object ref = nadImei_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nadImei_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string nadImei = 10;</code>
       */
      public Builder setNadImei(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        nadImei_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string nadImei = 10;</code>
       */
      public Builder clearNadImei() {
        bitField0_ = (bitField0_ & ~0x00000200);
        nadImei_ = getDefaultInstance().getNadImei();
        onChanged();
        return this;
      }
      /**
       * <code>optional string nadImei = 10;</code>
       */
      public Builder setNadImeiBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        nadImei_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object nadHardwareVersion_ = "";
      /**
       * <pre>
       *&#47; Modem Hardware Version
       * </pre>
       *
       * <code>optional string nadHardwareVersion = 11;</code>
       */
      public boolean hasNadHardwareVersion() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <pre>
       *&#47; Modem Hardware Version
       * </pre>
       *
       * <code>optional string nadHardwareVersion = 11;</code>
       */
      public java.lang.String getNadHardwareVersion() {
        java.lang.Object ref = nadHardwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nadHardwareVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Modem Hardware Version
       * </pre>
       *
       * <code>optional string nadHardwareVersion = 11;</code>
       */
      public com.google.protobuf.ByteString
          getNadHardwareVersionBytes() {
        java.lang.Object ref = nadHardwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nadHardwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Modem Hardware Version
       * </pre>
       *
       * <code>optional string nadHardwareVersion = 11;</code>
       */
      public Builder setNadHardwareVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        nadHardwareVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Modem Hardware Version
       * </pre>
       *
       * <code>optional string nadHardwareVersion = 11;</code>
       */
      public Builder clearNadHardwareVersion() {
        bitField0_ = (bitField0_ & ~0x00000400);
        nadHardwareVersion_ = getDefaultInstance().getNadHardwareVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Modem Hardware Version
       * </pre>
       *
       * <code>optional string nadHardwareVersion = 11;</code>
       */
      public Builder setNadHardwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        nadHardwareVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object nadSoftwareVersion_ = "";
      /**
       * <pre>
       *&#47; Modem Software Version
       * </pre>
       *
       * <code>optional string nadSoftwareVersion = 12;</code>
       */
      public boolean hasNadSoftwareVersion() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * <pre>
       *&#47; Modem Software Version
       * </pre>
       *
       * <code>optional string nadSoftwareVersion = 12;</code>
       */
      public java.lang.String getNadSoftwareVersion() {
        java.lang.Object ref = nadSoftwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nadSoftwareVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Modem Software Version
       * </pre>
       *
       * <code>optional string nadSoftwareVersion = 12;</code>
       */
      public com.google.protobuf.ByteString
          getNadSoftwareVersionBytes() {
        java.lang.Object ref = nadSoftwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nadSoftwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Modem Software Version
       * </pre>
       *
       * <code>optional string nadSoftwareVersion = 12;</code>
       */
      public Builder setNadSoftwareVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        nadSoftwareVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Modem Software Version
       * </pre>
       *
       * <code>optional string nadSoftwareVersion = 12;</code>
       */
      public Builder clearNadSoftwareVersion() {
        bitField0_ = (bitField0_ & ~0x00000800);
        nadSoftwareVersion_ = getDefaultInstance().getNadSoftwareVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Modem Software Version
       * </pre>
       *
       * <code>optional string nadSoftwareVersion = 12;</code>
       */
      public Builder setNadSoftwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        nadSoftwareVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object nadSerialNum_ = "";
      /**
       * <pre>
       *&#47; Modem Serial Number
       * </pre>
       *
       * <code>optional string nadSerialNum = 13;</code>
       */
      public boolean hasNadSerialNum() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * <pre>
       *&#47; Modem Serial Number
       * </pre>
       *
       * <code>optional string nadSerialNum = 13;</code>
       */
      public java.lang.String getNadSerialNum() {
        java.lang.Object ref = nadSerialNum_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nadSerialNum_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Modem Serial Number
       * </pre>
       *
       * <code>optional string nadSerialNum = 13;</code>
       */
      public com.google.protobuf.ByteString
          getNadSerialNumBytes() {
        java.lang.Object ref = nadSerialNum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nadSerialNum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Modem Serial Number
       * </pre>
       *
       * <code>optional string nadSerialNum = 13;</code>
       */
      public Builder setNadSerialNum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        nadSerialNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Modem Serial Number
       * </pre>
       *
       * <code>optional string nadSerialNum = 13;</code>
       */
      public Builder clearNadSerialNum() {
        bitField0_ = (bitField0_ & ~0x00001000);
        nadSerialNum_ = getDefaultInstance().getNadSerialNum();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Modem Serial Number
       * </pre>
       *
       * <code>optional string nadSerialNum = 13;</code>
       */
      public Builder setNadSerialNumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        nadSerialNum_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object nadPartNum_ = "";
      /**
       * <pre>
       *&#47; Model Part Number
       * </pre>
       *
       * <code>optional string nadPartNum = 14;</code>
       */
      public boolean hasNadPartNum() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * <pre>
       *&#47; Model Part Number
       * </pre>
       *
       * <code>optional string nadPartNum = 14;</code>
       */
      public java.lang.String getNadPartNum() {
        java.lang.Object ref = nadPartNum_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nadPartNum_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; Model Part Number
       * </pre>
       *
       * <code>optional string nadPartNum = 14;</code>
       */
      public com.google.protobuf.ByteString
          getNadPartNumBytes() {
        java.lang.Object ref = nadPartNum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nadPartNum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; Model Part Number
       * </pre>
       *
       * <code>optional string nadPartNum = 14;</code>
       */
      public Builder setNadPartNum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        nadPartNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Model Part Number
       * </pre>
       *
       * <code>optional string nadPartNum = 14;</code>
       */
      public Builder clearNadPartNum() {
        bitField0_ = (bitField0_ & ~0x00002000);
        nadPartNum_ = getDefaultInstance().getNadPartNum();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; Model Part Number
       * </pre>
       *
       * <code>optional string nadPartNum = 14;</code>
       */
      public Builder setNadPartNumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        nadPartNum_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object wifiMac_ = "";
      /**
       * <pre>
       *&#47; WiFi Mac Address
       * </pre>
       *
       * <code>optional string wifiMac = 15;</code>
       */
      public boolean hasWifiMac() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * <pre>
       *&#47; WiFi Mac Address
       * </pre>
       *
       * <code>optional string wifiMac = 15;</code>
       */
      public java.lang.String getWifiMac() {
        java.lang.Object ref = wifiMac_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            wifiMac_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; WiFi Mac Address
       * </pre>
       *
       * <code>optional string wifiMac = 15;</code>
       */
      public com.google.protobuf.ByteString
          getWifiMacBytes() {
        java.lang.Object ref = wifiMac_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          wifiMac_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; WiFi Mac Address
       * </pre>
       *
       * <code>optional string wifiMac = 15;</code>
       */
      public Builder setWifiMac(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        wifiMac_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; WiFi Mac Address
       * </pre>
       *
       * <code>optional string wifiMac = 15;</code>
       */
      public Builder clearWifiMac() {
        bitField0_ = (bitField0_ & ~0x00004000);
        wifiMac_ = getDefaultInstance().getWifiMac();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; WiFi Mac Address
       * </pre>
       *
       * <code>optional string wifiMac = 15;</code>
       */
      public Builder setWifiMacBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        wifiMac_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object huSerialNum_ = "";
      /**
       * <pre>
       *&#47; HU Serial Number
       * </pre>
       *
       * <code>optional string huSerialNum = 16;</code>
       */
      public boolean hasHuSerialNum() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * <pre>
       *&#47; HU Serial Number
       * </pre>
       *
       * <code>optional string huSerialNum = 16;</code>
       */
      public java.lang.String getHuSerialNum() {
        java.lang.Object ref = huSerialNum_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            huSerialNum_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; HU Serial Number
       * </pre>
       *
       * <code>optional string huSerialNum = 16;</code>
       */
      public com.google.protobuf.ByteString
          getHuSerialNumBytes() {
        java.lang.Object ref = huSerialNum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          huSerialNum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; HU Serial Number
       * </pre>
       *
       * <code>optional string huSerialNum = 16;</code>
       */
      public Builder setHuSerialNum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        huSerialNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; HU Serial Number
       * </pre>
       *
       * <code>optional string huSerialNum = 16;</code>
       */
      public Builder clearHuSerialNum() {
        bitField0_ = (bitField0_ & ~0x00008000);
        huSerialNum_ = getDefaultInstance().getHuSerialNum();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; HU Serial Number
       * </pre>
       *
       * <code>optional string huSerialNum = 16;</code>
       */
      public Builder setHuSerialNumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        huSerialNum_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object huPartNum_ = "";
      /**
       * <pre>
       *&#47; HU Part Number
       * </pre>
       *
       * <code>optional string huPartNum = 17;</code>
       */
      public boolean hasHuPartNum() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * <pre>
       *&#47; HU Part Number
       * </pre>
       *
       * <code>optional string huPartNum = 17;</code>
       */
      public java.lang.String getHuPartNum() {
        java.lang.Object ref = huPartNum_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            huPartNum_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; HU Part Number
       * </pre>
       *
       * <code>optional string huPartNum = 17;</code>
       */
      public com.google.protobuf.ByteString
          getHuPartNumBytes() {
        java.lang.Object ref = huPartNum_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          huPartNum_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; HU Part Number
       * </pre>
       *
       * <code>optional string huPartNum = 17;</code>
       */
      public Builder setHuPartNum(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00010000;
        huPartNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; HU Part Number
       * </pre>
       *
       * <code>optional string huPartNum = 17;</code>
       */
      public Builder clearHuPartNum() {
        bitField0_ = (bitField0_ & ~0x00010000);
        huPartNum_ = getDefaultInstance().getHuPartNum();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; HU Part Number
       * </pre>
       *
       * <code>optional string huPartNum = 17;</code>
       */
      public Builder setHuPartNumBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00010000;
        huPartNum_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object huHardwareVersion_ = "";
      /**
       * <pre>
       *&#47; HU Hardware Version
       * </pre>
       *
       * <code>optional string huHardwareVersion = 18;</code>
       */
      public boolean hasHuHardwareVersion() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       * <pre>
       *&#47; HU Hardware Version
       * </pre>
       *
       * <code>optional string huHardwareVersion = 18;</code>
       */
      public java.lang.String getHuHardwareVersion() {
        java.lang.Object ref = huHardwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            huHardwareVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; HU Hardware Version
       * </pre>
       *
       * <code>optional string huHardwareVersion = 18;</code>
       */
      public com.google.protobuf.ByteString
          getHuHardwareVersionBytes() {
        java.lang.Object ref = huHardwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          huHardwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; HU Hardware Version
       * </pre>
       *
       * <code>optional string huHardwareVersion = 18;</code>
       */
      public Builder setHuHardwareVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00020000;
        huHardwareVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; HU Hardware Version
       * </pre>
       *
       * <code>optional string huHardwareVersion = 18;</code>
       */
      public Builder clearHuHardwareVersion() {
        bitField0_ = (bitField0_ & ~0x00020000);
        huHardwareVersion_ = getDefaultInstance().getHuHardwareVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; HU Hardware Version
       * </pre>
       *
       * <code>optional string huHardwareVersion = 18;</code>
       */
      public Builder setHuHardwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00020000;
        huHardwareVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object huSoftwareVersion_ = "";
      /**
       * <pre>
       *&#47; HU Software Version
       * </pre>
       *
       * <code>optional string huSoftwareVersion = 19;</code>
       */
      public boolean hasHuSoftwareVersion() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       * <pre>
       *&#47; HU Software Version
       * </pre>
       *
       * <code>optional string huSoftwareVersion = 19;</code>
       */
      public java.lang.String getHuSoftwareVersion() {
        java.lang.Object ref = huSoftwareVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            huSoftwareVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *&#47; HU Software Version
       * </pre>
       *
       * <code>optional string huSoftwareVersion = 19;</code>
       */
      public com.google.protobuf.ByteString
          getHuSoftwareVersionBytes() {
        java.lang.Object ref = huSoftwareVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          huSoftwareVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *&#47; HU Software Version
       * </pre>
       *
       * <code>optional string huSoftwareVersion = 19;</code>
       */
      public Builder setHuSoftwareVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00040000;
        huSoftwareVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; HU Software Version
       * </pre>
       *
       * <code>optional string huSoftwareVersion = 19;</code>
       */
      public Builder clearHuSoftwareVersion() {
        bitField0_ = (bitField0_ & ~0x00040000);
        huSoftwareVersion_ = getDefaultInstance().getHuSoftwareVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; HU Software Version
       * </pre>
       *
       * <code>optional string huSoftwareVersion = 19;</code>
       */
      public Builder setHuSoftwareVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00040000;
        huSoftwareVersion_ = value;
        onChanged();
        return this;
      }

      private boolean isHUNavigationPresent_ ;
      /**
       * <code>optional bool isHUNavigationPresent = 20;</code>
       */
      public boolean hasIsHUNavigationPresent() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       * <code>optional bool isHUNavigationPresent = 20;</code>
       */
      public boolean getIsHUNavigationPresent() {
        return isHUNavigationPresent_;
      }
      /**
       * <code>optional bool isHUNavigationPresent = 20;</code>
       */
      public Builder setIsHUNavigationPresent(boolean value) {
        bitField0_ |= 0x00080000;
        isHUNavigationPresent_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool isHUNavigationPresent = 20;</code>
       */
      public Builder clearIsHUNavigationPresent() {
        bitField0_ = (bitField0_ & ~0x00080000);
        isHUNavigationPresent_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectDevice.Device getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectDevice.Device getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_Device_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_Device_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\034Global_Uconnect_Device.proto\022\027com.fca." +
      "uconnect.global\032\035Global_Uconnect_Control" +
      ".proto\"\256\004\n\006Device\022>\n\ndeviceType\030\001 \001(\0162*." +
      "com.fca.uconnect.global.Device.DeviceTyp" +
      "e\022\030\n\020manufacturerName\030\002 \001(\t\022\024\n\014tbmSerial" +
      "Num\030\003 \001(\t\022\022\n\ntbmPartNum\030\004 \001(\t\022\032\n\022tbmHard" +
      "wareVersion\030\005 \001(\t\022\032\n\022tbmSoftwareVersion\030" +
      "\006 \001(\t\022\020\n\010simIccid\030\007 \001(\t\022\017\n\007simImsi\030\010 \001(\t" +
      "\022\021\n\tsimMsisdn\030\t \001(\t\022\017\n\007nadImei\030\n \001(\t\022\032\n\022" +
      "nadHardwareVersion\030\013 \001(\t\022\032\n\022nadSoftwareV",
      "ersion\030\014 \001(\t\022\024\n\014nadSerialNum\030\r \001(\t\022\022\n\nna" +
      "dPartNum\030\016 \001(\t\022\017\n\007wifiMac\030\017 \001(\t\022\023\n\013huSer" +
      "ialNum\030\020 \001(\t\022\021\n\thuPartNum\030\021 \001(\t\022\031\n\021huHar" +
      "dwareVersion\030\022 \001(\t\022\031\n\021huSoftwareVersion\030" +
      "\023 \001(\t\022\035\n\025isHUNavigationPresent\030\024 \001(\010\"1\n\n" +
      "DeviceType\022\010\n\004ENUM\020\000\022\007\n\003TBM\020\001\022\007\n\003VP2\020\002\022\007" +
      "\n\003VP4\020\003P\000"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.fca.uconnect.global.GlobalUconnectControl.getDescriptor(),
        }, assigner);
    internal_static_com_fca_uconnect_global_Device_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_Device_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_Device_descriptor,
        new java.lang.String[] { "DeviceType", "ManufacturerName", "TbmSerialNum", "TbmPartNum", "TbmHardwareVersion", "TbmSoftwareVersion", "SimIccid", "SimImsi", "SimMsisdn", "NadImei", "NadHardwareVersion", "NadSoftwareVersion", "NadSerialNum", "NadPartNum", "WifiMac", "HuSerialNum", "HuPartNum", "HuHardwareVersion", "HuSoftwareVersion", "IsHUNavigationPresent", });
    com.fca.uconnect.global.GlobalUconnectControl.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
