// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.32.0
// 	protoc        v4.25.3
// source: kafka_grpc/attendant_data.proto

package kafka_grpc

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type EmumStatus int32

const (
	EmumStatus_DELIVERED EmumStatus = 0
	EmumStatus_TIMEOUT   EmumStatus = 1
	EmumStatus_FAILED    EmumStatus = 2
)

// Enum value maps for EmumStatus.
var (
	EmumStatus_name = map[int32]string{
		0: "DELIVERED",
		1: "TIMEOUT",
		2: "FAILED",
	}
	EmumStatus_value = map[string]int32{
		"DELIVERED": 0,
		"TIMEOUT":   1,
		"FAILED":    2,
	}
)

func (x EmumStatus) Enum() *EmumStatus {
	p := new(EmumStatus)
	*p = x
	return p
}

func (x EmumStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (EmumStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_kafka_grpc_attendant_data_proto_enumTypes[0].Descriptor()
}

func (EmumStatus) Type() protoreflect.EnumType {
	return &file_kafka_grpc_attendant_data_proto_enumTypes[0]
}

func (x EmumStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use EmumStatus.Descriptor instead.
func (EmumStatus) EnumDescriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{0}
}

type ManifestFileType int32

const (
	ManifestFileType_bootloader  ManifestFileType = 0
	ManifestFileType_software    ManifestFileType = 1
	ManifestFileType_calibration ManifestFileType = 2
	ManifestFileType_other       ManifestFileType = 3
)

// Enum value maps for ManifestFileType.
var (
	ManifestFileType_name = map[int32]string{
		0: "bootloader",
		1: "software",
		2: "calibration",
		3: "other",
	}
	ManifestFileType_value = map[string]int32{
		"bootloader":  0,
		"software":    1,
		"calibration": 2,
		"other":       3,
	}
)

func (x ManifestFileType) Enum() *ManifestFileType {
	p := new(ManifestFileType)
	*p = x
	return p
}

func (x ManifestFileType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ManifestFileType) Descriptor() protoreflect.EnumDescriptor {
	return file_kafka_grpc_attendant_data_proto_enumTypes[1].Descriptor()
}

func (ManifestFileType) Type() protoreflect.EnumType {
	return &file_kafka_grpc_attendant_data_proto_enumTypes[1]
}

func (x ManifestFileType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ManifestFileType.Descriptor instead.
func (ManifestFileType) EnumDescriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{1}
}

type CompatibleTrim int32

const (
	CompatibleTrim_EXTREME CompatibleTrim = 0
	CompatibleTrim_ULTRA   CompatibleTrim = 1
	CompatibleTrim_SPORT   CompatibleTrim = 2
)

// Enum value maps for CompatibleTrim.
var (
	CompatibleTrim_name = map[int32]string{
		0: "EXTREME",
		1: "ULTRA",
		2: "SPORT",
	}
	CompatibleTrim_value = map[string]int32{
		"EXTREME": 0,
		"ULTRA":   1,
		"SPORT":   2,
	}
)

func (x CompatibleTrim) Enum() *CompatibleTrim {
	p := new(CompatibleTrim)
	*p = x
	return p
}

func (x CompatibleTrim) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CompatibleTrim) Descriptor() protoreflect.EnumDescriptor {
	return file_kafka_grpc_attendant_data_proto_enumTypes[2].Descriptor()
}

func (CompatibleTrim) Type() protoreflect.EnumType {
	return &file_kafka_grpc_attendant_data_proto_enumTypes[2]
}

func (x CompatibleTrim) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CompatibleTrim.Descriptor instead.
func (CompatibleTrim) EnumDescriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{2}
}

type CompatibleDriveSide int32

const (
	CompatibleDriveSide_LEFT_HAND_DRIVE  CompatibleDriveSide = 0
	CompatibleDriveSide_RIGHT_HAND_DRIVE CompatibleDriveSide = 1
)

// Enum value maps for CompatibleDriveSide.
var (
	CompatibleDriveSide_name = map[int32]string{
		0: "LEFT_HAND_DRIVE",
		1: "RIGHT_HAND_DRIVE",
	}
	CompatibleDriveSide_value = map[string]int32{
		"LEFT_HAND_DRIVE":  0,
		"RIGHT_HAND_DRIVE": 1,
	}
)

func (x CompatibleDriveSide) Enum() *CompatibleDriveSide {
	p := new(CompatibleDriveSide)
	*p = x
	return p
}

func (x CompatibleDriveSide) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CompatibleDriveSide) Descriptor() protoreflect.EnumDescriptor {
	return file_kafka_grpc_attendant_data_proto_enumTypes[3].Descriptor()
}

func (CompatibleDriveSide) Type() protoreflect.EnumType {
	return &file_kafka_grpc_attendant_data_proto_enumTypes[3]
}

func (x CompatibleDriveSide) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CompatibleDriveSide.Descriptor instead.
func (CompatibleDriveSide) EnumDescriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{3}
}

type GRPC_AttendantPayload struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Handler string `protobuf:"bytes,1,opt,name=handler,proto3" json:"handler,omitempty"`
	// Types that are assignable to Data:
	//
	//	*GRPC_AttendantPayload_CarUpdateStatus
	//	*GRPC_AttendantPayload_CarUpdateProgress
	//	*GRPC_AttendantPayload_FileKeyReq
	//	*GRPC_AttendantPayload_Keys
	//	*GRPC_AttendantPayload_UpdateApprove
	//	*GRPC_AttendantPayload_UpdateGet
	//	*GRPC_AttendantPayload_UpdateManifest
	//	*GRPC_AttendantPayload_Order
	//	*GRPC_AttendantPayload_MessageStatus
	//	*GRPC_AttendantPayload_DtcEntry
	//	*GRPC_AttendantPayload_CarUpdateRequest
	Data isGRPC_AttendantPayload_Data `protobuf_oneof:"Data"`
}

func (x *GRPC_AttendantPayload) Reset() {
	*x = GRPC_AttendantPayload{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GRPC_AttendantPayload) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GRPC_AttendantPayload) ProtoMessage() {}

func (x *GRPC_AttendantPayload) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GRPC_AttendantPayload.ProtoReflect.Descriptor instead.
func (*GRPC_AttendantPayload) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{0}
}

func (x *GRPC_AttendantPayload) GetHandler() string {
	if x != nil {
		return x.Handler
	}
	return ""
}

func (m *GRPC_AttendantPayload) GetData() isGRPC_AttendantPayload_Data {
	if m != nil {
		return m.Data
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetCarUpdateStatus() *CarUpdateStatus {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_CarUpdateStatus); ok {
		return x.CarUpdateStatus
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetCarUpdateProgress() *CarUpdateProgress {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_CarUpdateProgress); ok {
		return x.CarUpdateProgress
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetFileKeyReq() *FileKeysRequest {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_FileKeyReq); ok {
		return x.FileKeyReq
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetKeys() *ECCKeys {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_Keys); ok {
		return x.Keys
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetUpdateApprove() *UpdateData {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_UpdateApprove); ok {
		return x.UpdateApprove
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetUpdateGet() *VehicleData {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_UpdateGet); ok {
		return x.UpdateGet
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetUpdateManifest() *UpdateManifest {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_UpdateManifest); ok {
		return x.UpdateManifest
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetOrder() *Order {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_Order); ok {
		return x.Order
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetMessageStatus() *MessageStatus {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_MessageStatus); ok {
		return x.MessageStatus
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetDtcEntry() *DTCEntry {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_DtcEntry); ok {
		return x.DtcEntry
	}
	return nil
}

func (x *GRPC_AttendantPayload) GetCarUpdateRequest() *CarUpdateRequest {
	if x, ok := x.GetData().(*GRPC_AttendantPayload_CarUpdateRequest); ok {
		return x.CarUpdateRequest
	}
	return nil
}

type isGRPC_AttendantPayload_Data interface {
	isGRPC_AttendantPayload_Data()
}

type GRPC_AttendantPayload_CarUpdateStatus struct {
	CarUpdateStatus *CarUpdateStatus `protobuf:"bytes,2,opt,name=carUpdateStatus,proto3,oneof"`
}

type GRPC_AttendantPayload_CarUpdateProgress struct {
	CarUpdateProgress *CarUpdateProgress `protobuf:"bytes,3,opt,name=carUpdateProgress,proto3,oneof"`
}

type GRPC_AttendantPayload_FileKeyReq struct {
	FileKeyReq *FileKeysRequest `protobuf:"bytes,4,opt,name=fileKeyReq,proto3,oneof"`
}

type GRPC_AttendantPayload_Keys struct {
	Keys *ECCKeys `protobuf:"bytes,5,opt,name=keys,proto3,oneof"`
}

type GRPC_AttendantPayload_UpdateApprove struct {
	UpdateApprove *UpdateData `protobuf:"bytes,6,opt,name=updateApprove,proto3,oneof"`
}

type GRPC_AttendantPayload_UpdateGet struct {
	UpdateGet *VehicleData `protobuf:"bytes,7,opt,name=updateGet,proto3,oneof"`
}

type GRPC_AttendantPayload_UpdateManifest struct {
	UpdateManifest *UpdateManifest `protobuf:"bytes,8,opt,name=updateManifest,proto3,oneof"`
}

type GRPC_AttendantPayload_Order struct {
	Order *Order `protobuf:"bytes,9,opt,name=order,proto3,oneof"`
}

type GRPC_AttendantPayload_MessageStatus struct {
	MessageStatus *MessageStatus `protobuf:"bytes,10,opt,name=messageStatus,proto3,oneof"`
}

type GRPC_AttendantPayload_DtcEntry struct {
	DtcEntry *DTCEntry `protobuf:"bytes,11,opt,name=dtcEntry,proto3,oneof"`
}

type GRPC_AttendantPayload_CarUpdateRequest struct {
	CarUpdateRequest *CarUpdateRequest `protobuf:"bytes,12,opt,name=carUpdateRequest,proto3,oneof"`
}

func (*GRPC_AttendantPayload_CarUpdateStatus) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_CarUpdateProgress) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_FileKeyReq) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_Keys) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_UpdateApprove) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_UpdateGet) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_UpdateManifest) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_Order) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_MessageStatus) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_DtcEntry) isGRPC_AttendantPayload_Data() {}

func (*GRPC_AttendantPayload_CarUpdateRequest) isGRPC_AttendantPayload_Data() {}

type CarUpdateStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ecus map[string]*CarECU `protobuf:"bytes,1,rep,name=ecus,proto3" json:"ecus,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *CarUpdateStatus) Reset() {
	*x = CarUpdateStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CarUpdateStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CarUpdateStatus) ProtoMessage() {}

func (x *CarUpdateStatus) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CarUpdateStatus.ProtoReflect.Descriptor instead.
func (*CarUpdateStatus) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{1}
}

func (x *CarUpdateStatus) GetEcus() map[string]*CarECU {
	if x != nil {
		return x.Ecus
	}
	return nil
}

type CarECU struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Vin               string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"`
	Ecu               string `protobuf:"bytes,2,opt,name=ecu,proto3" json:"ecu,omitempty"`
	SwVersion         string `protobuf:"bytes,3,opt,name=sw_version,json=swVersion,proto3" json:"sw_version,omitempty"`
	SerialNumber      string `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
	HwVersion         string `protobuf:"bytes,5,opt,name=hw_version,json=hwVersion,proto3" json:"hw_version,omitempty"`
	BootLoaderVersion string `protobuf:"bytes,6,opt,name=boot_loader_version,json=bootLoaderVersion,proto3" json:"boot_loader_version,omitempty"`
	Fingerprint       string `protobuf:"bytes,7,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"`
	CodeDataString    string `protobuf:"bytes,8,opt,name=code_data_string,json=codeDataString,proto3" json:"code_data_string,omitempty"`
	Vendor            string `protobuf:"bytes,9,opt,name=vendor,proto3" json:"vendor,omitempty"`
	SupplierSwVersion string `protobuf:"bytes,10,opt,name=supplier_sw_version,json=supplierSwVersion,proto3" json:"supplier_sw_version,omitempty"`
	EpochUsec         int64  `protobuf:"varint,11,opt,name=epoch_usec,json=epochUsec,proto3" json:"epoch_usec,omitempty"`
	AssyNumber        string `protobuf:"bytes,12,opt,name=assy_number,json=assyNumber,proto3" json:"assy_number,omitempty"`
	CreatedAt         *int64 `protobuf:"varint,13,opt,name=createdAt,proto3,oneof" json:"createdAt,omitempty"`
	UpdatedAt         *int64 `protobuf:"varint,14,opt,name=updatedAt,proto3,oneof" json:"updatedAt,omitempty"`
}

func (x *CarECU) Reset() {
	*x = CarECU{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CarECU) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CarECU) ProtoMessage() {}

func (x *CarECU) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CarECU.ProtoReflect.Descriptor instead.
func (*CarECU) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{2}
}

func (x *CarECU) GetVin() string {
	if x != nil {
		return x.Vin
	}
	return ""
}

func (x *CarECU) GetEcu() string {
	if x != nil {
		return x.Ecu
	}
	return ""
}

func (x *CarECU) GetSwVersion() string {
	if x != nil {
		return x.SwVersion
	}
	return ""
}

func (x *CarECU) GetSerialNumber() string {
	if x != nil {
		return x.SerialNumber
	}
	return ""
}

func (x *CarECU) GetHwVersion() string {
	if x != nil {
		return x.HwVersion
	}
	return ""
}

func (x *CarECU) GetBootLoaderVersion() string {
	if x != nil {
		return x.BootLoaderVersion
	}
	return ""
}

func (x *CarECU) GetFingerprint() string {
	if x != nil {
		return x.Fingerprint
	}
	return ""
}

func (x *CarECU) GetCodeDataString() string {
	if x != nil {
		return x.CodeDataString
	}
	return ""
}

func (x *CarECU) GetVendor() string {
	if x != nil {
		return x.Vendor
	}
	return ""
}

func (x *CarECU) GetSupplierSwVersion() string {
	if x != nil {
		return x.SupplierSwVersion
	}
	return ""
}

func (x *CarECU) GetEpochUsec() int64 {
	if x != nil {
		return x.EpochUsec
	}
	return 0
}

func (x *CarECU) GetAssyNumber() string {
	if x != nil {
		return x.AssyNumber
	}
	return ""
}

func (x *CarECU) GetCreatedAt() int64 {
	if x != nil && x.CreatedAt != nil {
		return *x.CreatedAt
	}
	return 0
}

func (x *CarECU) GetUpdatedAt() int64 {
	if x != nil && x.UpdatedAt != nil {
		return *x.UpdatedAt
	}
	return 0
}

type CarUpdateProgress struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FileCurrent    uint64 `protobuf:"varint,1,opt,name=fileCurrent,proto3" json:"fileCurrent,omitempty"`
	FileTotal      uint64 `protobuf:"varint,2,opt,name=fileTotal,proto3" json:"fileTotal,omitempty"`
	PkgCurrent     uint64 `protobuf:"varint,3,opt,name=pkgCurrent,proto3" json:"pkgCurrent,omitempty"`
	PkgTotal       uint64 `protobuf:"varint,4,opt,name=pkgTotal,proto3" json:"pkgTotal,omitempty"`
	InstalledFiles int64  `protobuf:"varint,5,opt,name=installedFiles,proto3" json:"installedFiles,omitempty"`
	TotalFiles     int64  `protobuf:"varint,6,opt,name=totalFiles,proto3" json:"totalFiles,omitempty"`
	CarUpdateID    int64  `protobuf:"varint,7,opt,name=carUpdateID,proto3" json:"carUpdateID,omitempty"`
	Ecu            string `protobuf:"bytes,8,opt,name=ecu,proto3" json:"ecu,omitempty"`
	Info           string `protobuf:"bytes,9,opt,name=info,proto3" json:"info,omitempty"`
	Status         string `protobuf:"bytes,10,opt,name=status,proto3" json:"status,omitempty"`
	ErrCode        int64  `protobuf:"varint,11,opt,name=errCode,proto3" json:"errCode,omitempty"`
}

func (x *CarUpdateProgress) Reset() {
	*x = CarUpdateProgress{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CarUpdateProgress) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CarUpdateProgress) ProtoMessage() {}

func (x *CarUpdateProgress) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CarUpdateProgress.ProtoReflect.Descriptor instead.
func (*CarUpdateProgress) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{3}
}

func (x *CarUpdateProgress) GetFileCurrent() uint64 {
	if x != nil {
		return x.FileCurrent
	}
	return 0
}

func (x *CarUpdateProgress) GetFileTotal() uint64 {
	if x != nil {
		return x.FileTotal
	}
	return 0
}

func (x *CarUpdateProgress) GetPkgCurrent() uint64 {
	if x != nil {
		return x.PkgCurrent
	}
	return 0
}

func (x *CarUpdateProgress) GetPkgTotal() uint64 {
	if x != nil {
		return x.PkgTotal
	}
	return 0
}

func (x *CarUpdateProgress) GetInstalledFiles() int64 {
	if x != nil {
		return x.InstalledFiles
	}
	return 0
}

func (x *CarUpdateProgress) GetTotalFiles() int64 {
	if x != nil {
		return x.TotalFiles
	}
	return 0
}

func (x *CarUpdateProgress) GetCarUpdateID() int64 {
	if x != nil {
		return x.CarUpdateID
	}
	return 0
}

func (x *CarUpdateProgress) GetEcu() string {
	if x != nil {
		return x.Ecu
	}
	return ""
}

func (x *CarUpdateProgress) GetInfo() string {
	if x != nil {
		return x.Info
	}
	return ""
}

func (x *CarUpdateProgress) GetStatus() string {
	if x != nil {
		return x.Status
	}
	return ""
}

func (x *CarUpdateProgress) GetErrCode() int64 {
	if x != nil {
		return x.ErrCode
	}
	return 0
}

type FileKeysRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FileIDs []string `protobuf:"bytes,1,rep,name=fileIDs,proto3" json:"fileIDs,omitempty"`
}

func (x *FileKeysRequest) Reset() {
	*x = FileKeysRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FileKeysRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FileKeysRequest) ProtoMessage() {}

func (x *FileKeysRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FileKeysRequest.ProtoReflect.Descriptor instead.
func (*FileKeysRequest) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{4}
}

func (x *FileKeysRequest) GetFileIDs() []string {
	if x != nil {
		return x.FileIDs
	}
	return nil
}

type DTCEntry struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CreatedAt      int64  `protobuf:"varint,1,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
	Vin            string `protobuf:"bytes,2,opt,name=vin,proto3" json:"vin,omitempty"`
	Ecu            string `protobuf:"bytes,3,opt,name=ecu,proto3" json:"ecu,omitempty"`
	Dtc            uint64 `protobuf:"varint,4,opt,name=dtc,proto3" json:"dtc,omitempty"`
	Timestamp      int64  `protobuf:"varint,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Speed          uint32 `protobuf:"varint,6,opt,name=speed,proto3" json:"speed,omitempty"`
	Mileage        uint32 `protobuf:"varint,7,opt,name=mileage,proto3" json:"mileage,omitempty"`
	Volt           uint32 `protobuf:"varint,8,opt,name=volt,proto3" json:"volt,omitempty"`
	SnapshotBase64 string `protobuf:"bytes,9,opt,name=snapshotBase64,proto3" json:"snapshotBase64,omitempty"`
	Status         uint32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
}

func (x *DTCEntry) Reset() {
	*x = DTCEntry{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DTCEntry) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DTCEntry) ProtoMessage() {}

func (x *DTCEntry) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DTCEntry.ProtoReflect.Descriptor instead.
func (*DTCEntry) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{5}
}

func (x *DTCEntry) GetCreatedAt() int64 {
	if x != nil {
		return x.CreatedAt
	}
	return 0
}

func (x *DTCEntry) GetVin() string {
	if x != nil {
		return x.Vin
	}
	return ""
}

func (x *DTCEntry) GetEcu() string {
	if x != nil {
		return x.Ecu
	}
	return ""
}

func (x *DTCEntry) GetDtc() uint64 {
	if x != nil {
		return x.Dtc
	}
	return 0
}

func (x *DTCEntry) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *DTCEntry) GetSpeed() uint32 {
	if x != nil {
		return x.Speed
	}
	return 0
}

func (x *DTCEntry) GetMileage() uint32 {
	if x != nil {
		return x.Mileage
	}
	return 0
}

func (x *DTCEntry) GetVolt() uint32 {
	if x != nil {
		return x.Volt
	}
	return 0
}

func (x *DTCEntry) GetSnapshotBase64() string {
	if x != nil {
		return x.SnapshotBase64
	}
	return ""
}

func (x *DTCEntry) GetStatus() uint32 {
	if x != nil {
		return x.Status
	}
	return 0
}

type ECCKeys struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	EccKeys []*ECCKey `protobuf:"bytes,1,rep,name=eccKeys,proto3" json:"eccKeys,omitempty"`
}

func (x *ECCKeys) Reset() {
	*x = ECCKeys{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ECCKeys) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ECCKeys) ProtoMessage() {}

func (x *ECCKeys) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ECCKeys.ProtoReflect.Descriptor instead.
func (*ECCKeys) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{6}
}

func (x *ECCKeys) GetEccKeys() []*ECCKey {
	if x != nil {
		return x.EccKeys
	}
	return nil
}

type ECCKey struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ecu           string     `protobuf:"bytes,1,opt,name=ecu,proto3" json:"ecu,omitempty"`
	Env           string     `protobuf:"bytes,2,opt,name=env,proto3" json:"env,omitempty"`
	PubKeyLevel_1 *BineryHex `protobuf:"bytes,3,opt,name=pub_key_level_1,json=pubKeyLevel1,proto3,oneof" json:"pub_key_level_1,omitempty"`
	PubKeyLevel_2 *BineryHex `protobuf:"bytes,4,opt,name=pub_key_level_2,json=pubKeyLevel2,proto3,oneof" json:"pub_key_level_2,omitempty"`
	PubKeyLevel_3 *BineryHex `protobuf:"bytes,5,opt,name=pub_key_level_3,json=pubKeyLevel3,proto3,oneof" json:"pub_key_level_3,omitempty"`
	Level_1       *BineryHex `protobuf:"bytes,6,opt,name=level_1,json=level1,proto3,oneof" json:"level_1,omitempty"`
	Level_2       *BineryHex `protobuf:"bytes,7,opt,name=level_2,json=level2,proto3,oneof" json:"level_2,omitempty"`
	Level_3       *BineryHex `protobuf:"bytes,8,opt,name=level_3,json=level3,proto3,oneof" json:"level_3,omitempty"`
	Created       *int64     `protobuf:"varint,9,opt,name=created,proto3,oneof" json:"created,omitempty"`
	Updated       *int64     `protobuf:"varint,10,opt,name=updated,proto3,oneof" json:"updated,omitempty"`
}

func (x *ECCKey) Reset() {
	*x = ECCKey{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ECCKey) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ECCKey) ProtoMessage() {}

func (x *ECCKey) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ECCKey.ProtoReflect.Descriptor instead.
func (*ECCKey) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{7}
}

func (x *ECCKey) GetEcu() string {
	if x != nil {
		return x.Ecu
	}
	return ""
}

func (x *ECCKey) GetEnv() string {
	if x != nil {
		return x.Env
	}
	return ""
}

func (x *ECCKey) GetPubKeyLevel_1() *BineryHex {
	if x != nil {
		return x.PubKeyLevel_1
	}
	return nil
}

func (x *ECCKey) GetPubKeyLevel_2() *BineryHex {
	if x != nil {
		return x.PubKeyLevel_2
	}
	return nil
}

func (x *ECCKey) GetPubKeyLevel_3() *BineryHex {
	if x != nil {
		return x.PubKeyLevel_3
	}
	return nil
}

func (x *ECCKey) GetLevel_1() *BineryHex {
	if x != nil {
		return x.Level_1
	}
	return nil
}

func (x *ECCKey) GetLevel_2() *BineryHex {
	if x != nil {
		return x.Level_2
	}
	return nil
}

func (x *ECCKey) GetLevel_3() *BineryHex {
	if x != nil {
		return x.Level_3
	}
	return nil
}

func (x *ECCKey) GetCreated() int64 {
	if x != nil && x.Created != nil {
		return *x.Created
	}
	return 0
}

func (x *ECCKey) GetUpdated() int64 {
	if x != nil && x.Updated != nil {
		return *x.Updated
	}
	return 0
}

type BineryHex struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
}

func (x *BineryHex) Reset() {
	*x = BineryHex{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *BineryHex) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BineryHex) ProtoMessage() {}

func (x *BineryHex) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BineryHex.ProtoReflect.Descriptor instead.
func (*BineryHex) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{8}
}

func (x *BineryHex) GetData() []byte {
	if x != nil {
		return x.Data
	}
	return nil
}

type UpdateData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *UpdateData) Reset() {
	*x = UpdateData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateData) ProtoMessage() {}

func (x *UpdateData) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateData.ProtoReflect.Descriptor instead.
func (*UpdateData) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{9}
}

func (x *UpdateData) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

type VehicleData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Vin string `protobuf:"bytes,1,opt,name=vin,proto3" json:"vin,omitempty"`
}

func (x *VehicleData) Reset() {
	*x = VehicleData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VehicleData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VehicleData) ProtoMessage() {}

func (x *VehicleData) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VehicleData.ProtoReflect.Descriptor instead.
func (*VehicleData) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{10}
}

func (x *VehicleData) GetVin() string {
	if x != nil {
		return x.Vin
	}
	return ""
}

type MessageStatus struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MessageId string     `protobuf:"bytes,1,opt,name=messageId,proto3" json:"messageId,omitempty"`
	Status    EmumStatus `protobuf:"varint,2,opt,name=status,proto3,enum=EmumStatus" json:"status,omitempty"`
}

func (x *MessageStatus) Reset() {
	*x = MessageStatus{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MessageStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MessageStatus) ProtoMessage() {}

func (x *MessageStatus) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MessageStatus.ProtoReflect.Descriptor instead.
func (*MessageStatus) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{11}
}

func (x *MessageStatus) GetMessageId() string {
	if x != nil {
		return x.MessageId
	}
	return ""
}

func (x *MessageStatus) GetStatus() EmumStatus {
	if x != nil {
		return x.Status
	}
	return EmumStatus_DELIVERED
}

type UpdateManifest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id             int64                `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name           string               `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Version        string               `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	Description    string               `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	ReleaseNotes   string               `protobuf:"bytes,5,opt,name=release_notes,json=releaseNotes,proto3" json:"release_notes,omitempty"`
	EcuList        string               `protobuf:"bytes,6,opt,name=ecu_list,json=ecuList,proto3" json:"ecu_list,omitempty"`
	EcuUpdates     []*UpdateManifestECU `protobuf:"bytes,7,rep,name=ecu_updates,json=ecuUpdates,proto3" json:"ecu_updates,omitempty"`
	Fingerprint    string               `protobuf:"bytes,8,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"`
	CarUpdateId    int64                `protobuf:"varint,9,opt,name=car_update_id,json=carUpdateId,proto3" json:"car_update_id,omitempty"`
	Rollback       bool                 `protobuf:"varint,10,opt,name=rollback,proto3" json:"rollback,omitempty"`
	Type           string               `protobuf:"bytes,11,opt,name=type,proto3" json:"type,omitempty"`
	Vod            string               `protobuf:"bytes,12,opt,name=vod,proto3" json:"vod,omitempty"`
	ManifestType   int32                `protobuf:"varint,13,opt,name=manifest_type,json=manifestType,proto3" json:"manifest_type,omitempty"`
	Active         *bool                `protobuf:"varint,14,opt,name=active,proto3,oneof" json:"active,omitempty"`
	Country        string               `protobuf:"bytes,15,opt,name=country,proto3" json:"country,omitempty"`
	Powertrain     string               `protobuf:"bytes,16,opt,name=powertrain,proto3" json:"powertrain,omitempty"`
	Restraint      string               `protobuf:"bytes,17,opt,name=restraint,proto3" json:"restraint,omitempty"`
	Model          string               `protobuf:"bytes,18,opt,name=model,proto3" json:"model,omitempty"`
	Trim           string               `protobuf:"bytes,19,opt,name=trim,proto3" json:"trim,omitempty"`
	Year           int32                `protobuf:"varint,20,opt,name=year,proto3" json:"year,omitempty"`
	BodyType       string               `protobuf:"bytes,21,opt,name=body_type,json=bodyType,proto3" json:"body_type,omitempty"`
	Sums           string               `protobuf:"bytes,22,opt,name=sums,proto3" json:"sums,omitempty"`
	Env            string               `protobuf:"bytes,23,opt,name=env,proto3" json:"env,omitempty"`
	UpdateDuration int32                `protobuf:"varint,24,opt,name=update_duration,json=updateDuration,proto3" json:"update_duration,omitempty"`
	MaxAttempts    int32                `protobuf:"varint,25,opt,name=max_attempts,json=maxAttempts,proto3" json:"max_attempts,omitempty"`
	Created        *int64               `protobuf:"varint,26,opt,name=created,proto3,oneof" json:"created,omitempty"`
	Updated        *int64               `protobuf:"varint,27,opt,name=updated,proto3,oneof" json:"updated,omitempty"`
}

func (x *UpdateManifest) Reset() {
	*x = UpdateManifest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateManifest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateManifest) ProtoMessage() {}

func (x *UpdateManifest) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateManifest.ProtoReflect.Descriptor instead.
func (*UpdateManifest) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{12}
}

func (x *UpdateManifest) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *UpdateManifest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateManifest) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *UpdateManifest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *UpdateManifest) GetReleaseNotes() string {
	if x != nil {
		return x.ReleaseNotes
	}
	return ""
}

func (x *UpdateManifest) GetEcuList() string {
	if x != nil {
		return x.EcuList
	}
	return ""
}

func (x *UpdateManifest) GetEcuUpdates() []*UpdateManifestECU {
	if x != nil {
		return x.EcuUpdates
	}
	return nil
}

func (x *UpdateManifest) GetFingerprint() string {
	if x != nil {
		return x.Fingerprint
	}
	return ""
}

func (x *UpdateManifest) GetCarUpdateId() int64 {
	if x != nil {
		return x.CarUpdateId
	}
	return 0
}

func (x *UpdateManifest) GetRollback() bool {
	if x != nil {
		return x.Rollback
	}
	return false
}

func (x *UpdateManifest) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *UpdateManifest) GetVod() string {
	if x != nil {
		return x.Vod
	}
	return ""
}

func (x *UpdateManifest) GetManifestType() int32 {
	if x != nil {
		return x.ManifestType
	}
	return 0
}

func (x *UpdateManifest) GetActive() bool {
	if x != nil && x.Active != nil {
		return *x.Active
	}
	return false
}

func (x *UpdateManifest) GetCountry() string {
	if x != nil {
		return x.Country
	}
	return ""
}

func (x *UpdateManifest) GetPowertrain() string {
	if x != nil {
		return x.Powertrain
	}
	return ""
}

func (x *UpdateManifest) GetRestraint() string {
	if x != nil {
		return x.Restraint
	}
	return ""
}

func (x *UpdateManifest) GetModel() string {
	if x != nil {
		return x.Model
	}
	return ""
}

func (x *UpdateManifest) GetTrim() string {
	if x != nil {
		return x.Trim
	}
	return ""
}

func (x *UpdateManifest) GetYear() int32 {
	if x != nil {
		return x.Year
	}
	return 0
}

func (x *UpdateManifest) GetBodyType() string {
	if x != nil {
		return x.BodyType
	}
	return ""
}

func (x *UpdateManifest) GetSums() string {
	if x != nil {
		return x.Sums
	}
	return ""
}

func (x *UpdateManifest) GetEnv() string {
	if x != nil {
		return x.Env
	}
	return ""
}

func (x *UpdateManifest) GetUpdateDuration() int32 {
	if x != nil {
		return x.UpdateDuration
	}
	return 0
}

func (x *UpdateManifest) GetMaxAttempts() int32 {
	if x != nil {
		return x.MaxAttempts
	}
	return 0
}

func (x *UpdateManifest) GetCreated() int64 {
	if x != nil && x.Created != nil {
		return *x.Created
	}
	return 0
}

func (x *UpdateManifest) GetUpdated() int64 {
	if x != nil && x.Updated != nil {
		return *x.Updated
	}
	return 0
}

type UpdateManifestECU struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id                int64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	ManifestId        int64                 `protobuf:"varint,2,opt,name=manifest_id,json=manifestId,proto3" json:"manifest_id,omitempty"`
	Name              string                `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Version           string                `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
	CurrentVersion    string                `protobuf:"bytes,5,opt,name=current_version,json=currentVersion,proto3" json:"current_version,omitempty"`
	HwVersion         string                `protobuf:"bytes,6,opt,name=hw_version,json=hwVersion,proto3" json:"hw_version,omitempty"`
	HwVersions        []string              `protobuf:"bytes,7,rep,name=hw_versions,json=hwVersions,proto3" json:"hw_versions,omitempty"`
	ConfigurationMask string                `protobuf:"bytes,8,opt,name=configuration_mask,json=configurationMask,proto3" json:"configuration_mask,omitempty"`
	Configuration     string                `protobuf:"bytes,9,opt,name=configuration,proto3" json:"configuration,omitempty"`
	SelfDownload      bool                  `protobuf:"varint,10,opt,name=self_download,json=selfDownload,proto3" json:"self_download,omitempty"`
	Mode              string                `protobuf:"bytes,11,opt,name=mode,proto3" json:"mode,omitempty"`
	Files             []*UpdateManifestFile `protobuf:"bytes,12,rep,name=files,proto3" json:"files,omitempty"`
	Rollback          []*UpdateManifestECU  `protobuf:"bytes,13,rep,name=rollback,proto3" json:"rollback,omitempty"`
	EccKeys           *ECCKey               `protobuf:"bytes,14,opt,name=ecc_keys,json=eccKeys,proto3" json:"ecc_keys,omitempty"`
	InstallPriority   int32                 `protobuf:"varint,15,opt,name=install_priority,json=installPriority,proto3" json:"install_priority,omitempty"`
	Created           *int64                `protobuf:"varint,16,opt,name=created,proto3,oneof" json:"created,omitempty"`
	Updated           *int64                `protobuf:"varint,17,opt,name=updated,proto3,oneof" json:"updated,omitempty"`
}

func (x *UpdateManifestECU) Reset() {
	*x = UpdateManifestECU{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateManifestECU) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateManifestECU) ProtoMessage() {}

func (x *UpdateManifestECU) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateManifestECU.ProtoReflect.Descriptor instead.
func (*UpdateManifestECU) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{13}
}

func (x *UpdateManifestECU) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *UpdateManifestECU) GetManifestId() int64 {
	if x != nil {
		return x.ManifestId
	}
	return 0
}

func (x *UpdateManifestECU) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateManifestECU) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *UpdateManifestECU) GetCurrentVersion() string {
	if x != nil {
		return x.CurrentVersion
	}
	return ""
}

func (x *UpdateManifestECU) GetHwVersion() string {
	if x != nil {
		return x.HwVersion
	}
	return ""
}

func (x *UpdateManifestECU) GetHwVersions() []string {
	if x != nil {
		return x.HwVersions
	}
	return nil
}

func (x *UpdateManifestECU) GetConfigurationMask() string {
	if x != nil {
		return x.ConfigurationMask
	}
	return ""
}

func (x *UpdateManifestECU) GetConfiguration() string {
	if x != nil {
		return x.Configuration
	}
	return ""
}

func (x *UpdateManifestECU) GetSelfDownload() bool {
	if x != nil {
		return x.SelfDownload
	}
	return false
}

func (x *UpdateManifestECU) GetMode() string {
	if x != nil {
		return x.Mode
	}
	return ""
}

func (x *UpdateManifestECU) GetFiles() []*UpdateManifestFile {
	if x != nil {
		return x.Files
	}
	return nil
}

func (x *UpdateManifestECU) GetRollback() []*UpdateManifestECU {
	if x != nil {
		return x.Rollback
	}
	return nil
}

func (x *UpdateManifestECU) GetEccKeys() *ECCKey {
	if x != nil {
		return x.EccKeys
	}
	return nil
}

func (x *UpdateManifestECU) GetInstallPriority() int32 {
	if x != nil {
		return x.InstallPriority
	}
	return 0
}

func (x *UpdateManifestECU) GetCreated() int64 {
	if x != nil && x.Created != nil {
		return *x.Created
	}
	return 0
}

func (x *UpdateManifestECU) GetUpdated() int64 {
	if x != nil && x.Updated != nil {
		return *x.Updated
	}
	return 0
}

type UpdateManifestFile struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FileId               string           `protobuf:"bytes,1,opt,name=file_id,json=fileId,proto3" json:"file_id,omitempty"`
	ManifestEcuId        int64            `protobuf:"varint,2,opt,name=manifest_ecu_id,json=manifestEcuId,proto3" json:"manifest_ecu_id,omitempty"`
	Filename             string           `protobuf:"bytes,3,opt,name=filename,proto3" json:"filename,omitempty"`
	Url                  string           `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
	FileSize             uint64           `protobuf:"varint,5,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"`
	Checksum             string           `protobuf:"bytes,6,opt,name=checksum,proto3" json:"checksum,omitempty"`
	Type                 string           `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"`
	Order                int32            `protobuf:"varint,8,opt,name=order,proto3" json:"order,omitempty"`
	WriteRegion          *MemoryRegion    `protobuf:"bytes,9,opt,name=write_region,json=writeRegion,proto3" json:"write_region,omitempty"`
	EraseRegion          *MemoryRegion    `protobuf:"bytes,10,opt,name=erase_region,json=eraseRegion,proto3" json:"erase_region,omitempty"`
	FileKey              *FileKeyResponse `protobuf:"bytes,11,opt,name=file_key,json=fileKey,proto3" json:"file_key,omitempty"`
	ParsedFile           *bool            `protobuf:"varint,12,opt,name=parsed_file,json=parsedFile,proto3,oneof" json:"parsed_file,omitempty"`
	Signature            string           `protobuf:"bytes,13,opt,name=signature,proto3" json:"signature,omitempty"`
	CompatibleTrims      []string         `protobuf:"bytes,14,rep,name=compatible_trims,json=compatibleTrims,proto3" json:"compatible_trims,omitempty"`
	CompatibleDriveSides []string         `protobuf:"bytes,15,rep,name=compatible_drive_sides,json=compatibleDriveSides,proto3" json:"compatible_drive_sides,omitempty"`
	Created              *string          `protobuf:"bytes,16,opt,name=created,proto3,oneof" json:"created,omitempty"`
	Updated              *string          `protobuf:"bytes,17,opt,name=updated,proto3,oneof" json:"updated,omitempty"`
}

func (x *UpdateManifestFile) Reset() {
	*x = UpdateManifestFile{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateManifestFile) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateManifestFile) ProtoMessage() {}

func (x *UpdateManifestFile) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateManifestFile.ProtoReflect.Descriptor instead.
func (*UpdateManifestFile) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{14}
}

func (x *UpdateManifestFile) GetFileId() string {
	if x != nil {
		return x.FileId
	}
	return ""
}

func (x *UpdateManifestFile) GetManifestEcuId() int64 {
	if x != nil {
		return x.ManifestEcuId
	}
	return 0
}

func (x *UpdateManifestFile) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

func (x *UpdateManifestFile) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *UpdateManifestFile) GetFileSize() uint64 {
	if x != nil {
		return x.FileSize
	}
	return 0
}

func (x *UpdateManifestFile) GetChecksum() string {
	if x != nil {
		return x.Checksum
	}
	return ""
}

func (x *UpdateManifestFile) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *UpdateManifestFile) GetOrder() int32 {
	if x != nil {
		return x.Order
	}
	return 0
}

func (x *UpdateManifestFile) GetWriteRegion() *MemoryRegion {
	if x != nil {
		return x.WriteRegion
	}
	return nil
}

func (x *UpdateManifestFile) GetEraseRegion() *MemoryRegion {
	if x != nil {
		return x.EraseRegion
	}
	return nil
}

func (x *UpdateManifestFile) GetFileKey() *FileKeyResponse {
	if x != nil {
		return x.FileKey
	}
	return nil
}

func (x *UpdateManifestFile) GetParsedFile() bool {
	if x != nil && x.ParsedFile != nil {
		return *x.ParsedFile
	}
	return false
}

func (x *UpdateManifestFile) GetSignature() string {
	if x != nil {
		return x.Signature
	}
	return ""
}

func (x *UpdateManifestFile) GetCompatibleTrims() []string {
	if x != nil {
		return x.CompatibleTrims
	}
	return nil
}

func (x *UpdateManifestFile) GetCompatibleDriveSides() []string {
	if x != nil {
		return x.CompatibleDriveSides
	}
	return nil
}

func (x *UpdateManifestFile) GetCreated() string {
	if x != nil && x.Created != nil {
		return *x.Created
	}
	return ""
}

func (x *UpdateManifestFile) GetUpdated() string {
	if x != nil && x.Updated != nil {
		return *x.Updated
	}
	return ""
}

type MemoryRegion struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`
	Length uint64 `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"`
}

func (x *MemoryRegion) Reset() {
	*x = MemoryRegion{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MemoryRegion) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MemoryRegion) ProtoMessage() {}

func (x *MemoryRegion) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MemoryRegion.ProtoReflect.Descriptor instead.
func (*MemoryRegion) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{15}
}

func (x *MemoryRegion) GetOffset() uint64 {
	if x != nil {
		return x.Offset
	}
	return 0
}

func (x *MemoryRegion) GetLength() uint64 {
	if x != nil {
		return x.Length
	}
	return 0
}

type FileKeyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId,proto3" json:"file_id,omitempty"`
	Key    string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	Auth   string `protobuf:"bytes,3,opt,name=auth,proto3" json:"auth,omitempty"`
	Nonce  string `protobuf:"bytes,4,opt,name=nonce,proto3" json:"nonce,omitempty"`
	Error  string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
}

func (x *FileKeyResponse) Reset() {
	*x = FileKeyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FileKeyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FileKeyResponse) ProtoMessage() {}

func (x *FileKeyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FileKeyResponse.ProtoReflect.Descriptor instead.
func (*FileKeyResponse) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{16}
}

func (x *FileKeyResponse) GetFileId() string {
	if x != nil {
		return x.FileId
	}
	return ""
}

func (x *FileKeyResponse) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *FileKeyResponse) GetAuth() string {
	if x != nil {
		return x.Auth
	}
	return ""
}

func (x *FileKeyResponse) GetNonce() string {
	if x != nil {
		return x.Nonce
	}
	return ""
}

func (x *FileKeyResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type FeatureCodes struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	FamilyCode  string `protobuf:"bytes,1,opt,name=familyCode,proto3" json:"familyCode,omitempty"`
	FeatureCode string `protobuf:"bytes,2,opt,name=featureCode,proto3" json:"featureCode,omitempty"`
}

func (x *FeatureCodes) Reset() {
	*x = FeatureCodes{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FeatureCodes) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FeatureCodes) ProtoMessage() {}

func (x *FeatureCodes) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FeatureCodes.ProtoReflect.Descriptor instead.
func (*FeatureCodes) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{17}
}

func (x *FeatureCodes) GetFamilyCode() string {
	if x != nil {
		return x.FamilyCode
	}
	return ""
}

func (x *FeatureCodes) GetFeatureCode() string {
	if x != nil {
		return x.FeatureCode
	}
	return ""
}

type VehicleSpecification struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	OrderId   string          `protobuf:"bytes,1,opt,name=orderId,proto3" json:"orderId,omitempty"`     // OrderIndicator
	ProductId string          `protobuf:"bytes,2,opt,name=productId,proto3" json:"productId,omitempty"` // ProductionPhaseIndicator
	VehicleId string          `protobuf:"bytes,3,opt,name=vehicleId,proto3" json:"vehicleId,omitempty"` // VehicleIndicator
	MfPlant   string          `protobuf:"bytes,4,opt,name=mfPlant,proto3" json:"mfPlant,omitempty"`     // ManufacturingPlant
	ModelType string          `protobuf:"bytes,5,opt,name=modelType,proto3" json:"modelType,omitempty"` // ModelType
	ModelId   int64           `protobuf:"varint,6,opt,name=modelId,proto3" json:"modelId,omitempty"`    // ModelYearIndicator
	ModelYear int64           `protobuf:"varint,7,opt,name=modelYear,proto3" json:"modelYear,omitempty"`
	Sn        string          `protobuf:"bytes,8,opt,name=sn,proto3" json:"sn,omitempty"`              // SequenceNumber
	Version   int64           `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`   // VersionDuringModelYear
	Model     string          `protobuf:"bytes,10,opt,name=model,proto3" json:"model,omitempty"`       // VehicleModel
	VinPre    string          `protobuf:"bytes,11,opt,name=vinPre,proto3" json:"vinPre,omitempty"`     // VinPrefix
	DestCon   string          `protobuf:"bytes,12,opt,name=destCon,proto3" json:"destCon,omitempty"`   // DestinationCountry
	Feature   []*FeatureCodes `protobuf:"bytes,13,rep,name=feature,proto3" json:"feature,omitempty"`   // VehicleFeatures
	Date      int64           `protobuf:"varint,14,opt,name=date,proto3" json:"date,omitempty"`        // ExpectedReferenceDate
	FOrderId  string          `protobuf:"bytes,15,opt,name=fOrderId,proto3" json:"fOrderId,omitempty"` // FleetOrderIndicator
}

func (x *VehicleSpecification) Reset() {
	*x = VehicleSpecification{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VehicleSpecification) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VehicleSpecification) ProtoMessage() {}

func (x *VehicleSpecification) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VehicleSpecification.ProtoReflect.Descriptor instead.
func (*VehicleSpecification) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{18}
}

func (x *VehicleSpecification) GetOrderId() string {
	if x != nil {
		return x.OrderId
	}
	return ""
}

func (x *VehicleSpecification) GetProductId() string {
	if x != nil {
		return x.ProductId
	}
	return ""
}

func (x *VehicleSpecification) GetVehicleId() string {
	if x != nil {
		return x.VehicleId
	}
	return ""
}

func (x *VehicleSpecification) GetMfPlant() string {
	if x != nil {
		return x.MfPlant
	}
	return ""
}

func (x *VehicleSpecification) GetModelType() string {
	if x != nil {
		return x.ModelType
	}
	return ""
}

func (x *VehicleSpecification) GetModelId() int64 {
	if x != nil {
		return x.ModelId
	}
	return 0
}

func (x *VehicleSpecification) GetModelYear() int64 {
	if x != nil {
		return x.ModelYear
	}
	return 0
}

func (x *VehicleSpecification) GetSn() string {
	if x != nil {
		return x.Sn
	}
	return ""
}

func (x *VehicleSpecification) GetVersion() int64 {
	if x != nil {
		return x.Version
	}
	return 0
}

func (x *VehicleSpecification) GetModel() string {
	if x != nil {
		return x.Model
	}
	return ""
}

func (x *VehicleSpecification) GetVinPre() string {
	if x != nil {
		return x.VinPre
	}
	return ""
}

func (x *VehicleSpecification) GetDestCon() string {
	if x != nil {
		return x.DestCon
	}
	return ""
}

func (x *VehicleSpecification) GetFeature() []*FeatureCodes {
	if x != nil {
		return x.Feature
	}
	return nil
}

func (x *VehicleSpecification) GetDate() int64 {
	if x != nil {
		return x.Date
	}
	return 0
}

func (x *VehicleSpecification) GetFOrderId() string {
	if x != nil {
		return x.FOrderId
	}
	return ""
}

type Order struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SpecId               int64                 `protobuf:"varint,1,opt,name=specId,proto3" json:"specId,omitempty"`
	OrderNo              int64                 `protobuf:"varint,2,opt,name=orderNo,proto3" json:"orderNo,omitempty"`
	MsgIdentifier        string                `protobuf:"bytes,3,opt,name=msgIdentifier,proto3" json:"msgIdentifier,omitempty"`
	VehicleSpecification *VehicleSpecification `protobuf:"bytes,4,opt,name=VehicleSpecification,proto3" json:"VehicleSpecification,omitempty"`
}

func (x *Order) Reset() {
	*x = Order{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Order) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Order) ProtoMessage() {}

func (x *Order) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Order.ProtoReflect.Descriptor instead.
func (*Order) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{19}
}

func (x *Order) GetSpecId() int64 {
	if x != nil {
		return x.SpecId
	}
	return 0
}

func (x *Order) GetOrderNo() int64 {
	if x != nil {
		return x.OrderNo
	}
	return 0
}

func (x *Order) GetMsgIdentifier() string {
	if x != nil {
		return x.MsgIdentifier
	}
	return ""
}

func (x *Order) GetVehicleSpecification() *VehicleSpecification {
	if x != nil {
		return x.VehicleSpecification
	}
	return nil
}

type CarUpdateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CarUpdateId int64 `protobuf:"varint,1,opt,name=car_update_id,json=carUpdateId,proto3" json:"car_update_id,omitempty"`
}

func (x *CarUpdateRequest) Reset() {
	*x = CarUpdateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_kafka_grpc_attendant_data_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CarUpdateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CarUpdateRequest) ProtoMessage() {}

func (x *CarUpdateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_kafka_grpc_attendant_data_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CarUpdateRequest.ProtoReflect.Descriptor instead.
func (*CarUpdateRequest) Descriptor() ([]byte, []int) {
	return file_kafka_grpc_attendant_data_proto_rawDescGZIP(), []int{20}
}

func (x *CarUpdateRequest) GetCarUpdateId() int64 {
	if x != nil {
		return x.CarUpdateId
	}
	return 0
}

var File_kafka_grpc_attendant_data_proto protoreflect.FileDescriptor

var file_kafka_grpc_attendant_data_proto_rawDesc = []byte{
	0x0a, 0x1f, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x5f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x74, 0x74,
	0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x22, 0xef, 0x04, 0x0a, 0x15, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x41, 0x74, 0x74, 0x65, 0x6e,
	0x64, 0x61, 0x6e, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
	0x2e, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x48, 0x00, 0x52, 0x0f, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x11, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4b,
	0x65, 0x79, 0x52, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x69,
	0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x04, 0x6b,
	0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x45, 0x43, 0x43, 0x4b,
	0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x33, 0x0a, 0x0d, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48,
	0x00, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65,
	0x12, 0x2c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x74, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x44, 0x61, 0x74,
	0x61, 0x48, 0x00, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x65, 0x74, 0x12, 0x39,
	0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d,
	0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x05, 0x6f, 0x72, 0x64,
	0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72,
	0x48, 0x00, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0d, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0e, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x48, 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x27, 0x0a, 0x08, 0x64, 0x74, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x44, 0x54, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00,
	0x52, 0x08, 0x64, 0x74, 0x63, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3f, 0x0a, 0x10, 0x63, 0x61,
	0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x63, 0x61, 0x72, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x44,
	0x61, 0x74, 0x61, 0x22, 0x83, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x65, 0x63, 0x75, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x63, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x04, 0x65, 0x63, 0x75, 0x73, 0x1a, 0x40, 0x0a, 0x09, 0x45, 0x63, 0x75, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x43, 0x61, 0x72, 0x45, 0x43, 0x55, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf5, 0x03, 0x0a, 0x06, 0x43, 0x61,
	0x72, 0x45, 0x43, 0x55, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x63, 0x75, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x63, 0x75, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x77, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x77,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61,
	0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
	0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a,
	0x68, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x09, 0x68, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x62,
	0x6f, 0x6f, 0x74, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x6f, 0x6f, 0x74, 0x4c, 0x6f,
	0x61, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x66,
	0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x28, 0x0a,
	0x10, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74,
	0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f,
	0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x12,
	0x2e, 0x0a, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x73, 0x77, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75,
	0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x53, 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
	0x1d, 0x0a, 0x0a, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x55, 0x73, 0x65, 0x63, 0x12, 0x1f,
	0x0a, 0x0b, 0x61, 0x73, 0x73, 0x79, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x79, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12,
	0x21, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88,
	0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
	0x41, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x41, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41,
	0x74, 0x22, 0xd1, 0x02, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50,
	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x43,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x66, 0x69,
	0x6c, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x6c,
	0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x69,
	0x6c, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6b, 0x67, 0x43, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6b, 0x67,
	0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x54, 0x6f,
	0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x54, 0x6f,
	0x74, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64,
	0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74,
	0x6f, 0x74, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63,
	0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x0b, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x44, 0x12, 0x10, 0x0a,
	0x03, 0x65, 0x63, 0x75, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x63, 0x75, 0x12,
	0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69,
	0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65,
	0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x72,
	0x72, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x2b, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65,
	0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x49,
	0x44, 0x73, 0x22, 0x80, 0x02, 0x0a, 0x08, 0x44, 0x54, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
	0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x10, 0x0a,
	0x03, 0x76, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x12,
	0x10, 0x0a, 0x03, 0x65, 0x63, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x63,
	0x75, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x74, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03,
	0x64, 0x74, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6c, 0x65, 0x61,
	0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x69, 0x6c, 0x65, 0x61, 0x67,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x6f, 0x6c, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x04, 0x76, 0x6f, 0x6c, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
	0x74, 0x42, 0x61, 0x73, 0x65, 0x36, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73,
	0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x61, 0x73, 0x65, 0x36, 0x34, 0x12, 0x16, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2c, 0x0a, 0x07, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x73,
	0x12, 0x21, 0x0a, 0x07, 0x65, 0x63, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x07, 0x2e, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x65, 0x63, 0x63, 0x4b,
	0x65, 0x79, 0x73, 0x22, 0x88, 0x04, 0x0a, 0x06, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x65, 0x63, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x63, 0x75,
	0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65,
	0x6e, 0x76, 0x12, 0x36, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65,
	0x76, 0x65, 0x6c, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69,
	0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x4b, 0x65,
	0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x31, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0f, 0x70, 0x75,
	0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48,
	0x01, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x88,
	0x01, 0x01, 0x12, 0x36, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65,
	0x76, 0x65, 0x6c, 0x5f, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69,
	0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x75, 0x62, 0x4b, 0x65,
	0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x33, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x07, 0x6c, 0x65,
	0x76, 0x65, 0x6c, 0x5f, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69,
	0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c,
	0x31, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65,
	0x78, 0x48, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x88, 0x01, 0x01, 0x12, 0x28,
	0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0a, 0x2e, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x48, 0x05, 0x52, 0x06, 0x6c,
	0x65, 0x76, 0x65, 0x6c, 0x33, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x07, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x48, 0x07, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b,
	0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70,
	0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x42, 0x12,
	0x0a, 0x10, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c,
	0x5f, 0x33, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x42, 0x0a,
	0x0a, 0x08, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c,
	0x65, 0x76, 0x65, 0x6c, 0x5f, 0x33, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x1f,
	0x0a, 0x09, 0x42, 0x69, 0x6e, 0x65, 0x72, 0x79, 0x48, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x64,
	0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
	0x1c, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1f, 0x0a,
	0x0b, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03,
	0x76, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x22, 0x52,
	0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e,
	0x45, 0x6d, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x22, 0xb5, 0x06, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e,
	0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65,
	0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65,
	0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x63,
	0x75, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x63,
	0x75, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0b, 0x65, 0x63, 0x75, 0x5f, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x43, 0x55, 0x52, 0x0a,
	0x65, 0x63, 0x75, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69,
	0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d,
	0x63, 0x61, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64,
	0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x12, 0x0a, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x12, 0x10, 0x0a, 0x03, 0x76, 0x6f, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76,
	0x6f, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x69, 0x66,
	0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1e,
	0x0a, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x10, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x1c,
	0x0a, 0x09, 0x72, 0x65, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x72, 0x65, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64,
	0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x69, 0x6d, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x74, 0x72, 0x69, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x14,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6f,
	0x64, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62,
	0x6f, 0x64, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x75, 0x6d, 0x73, 0x18,
	0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x75, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x65,
	0x6e, 0x76, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x27, 0x0a,
	0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x75,
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x74,
	0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61,
	0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x07, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x07, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69,
	0x76, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0a,
	0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0xe9, 0x04, 0x0a, 0x11, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x43, 0x55,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49,
	0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
	0x27, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
	0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x77, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x77,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x77, 0x5f, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x77,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a,
	0x0d, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x66, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
	0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18,
	0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61,
	0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65,
	0x73, 0x12, 0x2e, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x69,
	0x66, 0x65, 0x73, 0x74, 0x45, 0x43, 0x55, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63,
	0x6b, 0x12, 0x22, 0x0a, 0x08, 0x65, 0x63, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0e, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x45, 0x43, 0x43, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x65, 0x63,
	0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
	0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
	0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28,
	0x03, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12,
	0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03,
	0x48, 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a,
	0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x82, 0x05, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x0a,
	0x07, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65,
	0x73, 0x74, 0x5f, 0x65, 0x63, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x0d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x45, 0x63, 0x75, 0x49, 0x64, 0x12, 0x1a,
	0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,
	0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09,
	0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65,
	0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65,
	0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64,
	0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12,
	0x30, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65,
	0x67, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x6f,
	0x6e, 0x12, 0x30, 0x0a, 0x0c, 0x65, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f,
	0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
	0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x72, 0x61, 0x73, 0x65, 0x52, 0x65, 0x67,
	0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79,
	0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x46,
	0x69, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62,
	0x6c, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
	0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x69, 0x6d, 0x73, 0x12,
	0x34, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x72,
	0x69, 0x76, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x14, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65,
	0x53, 0x69, 0x64, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
	0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18,
	0x11, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
	0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x66,
	0x69, 0x6c, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42,
	0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x3e, 0x0a, 0x0c, 0x4d,
	0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f,
	0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66,
	0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x7c, 0x0a, 0x0f, 0x46,
	0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17,
	0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x75, 0x74,
	0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x12, 0x14, 0x0a,
	0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f,
	0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x50, 0x0a, 0x0c, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x6d,
	0x69, 0x6c, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66,
	0x61, 0x6d, 0x69, 0x6c, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xa7, 0x03, 0x0a, 0x14,
	0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c,
	0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
	0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x66,
	0x50, 0x6c, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x66, 0x50,
	0x6c, 0x61, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x6e,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x73, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x69,
	0x6e, 0x50, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x69, 0x6e, 0x50,
	0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x07,
	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x07, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12,
	0x16, 0x0a, 0x06, 0x73, 0x70, 0x65, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x06, 0x73, 0x70, 0x65, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e,
	0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
	0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x65,
	0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x14, 0x56, 0x65, 0x68, 0x69, 0x63,
	0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53,
	0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x56, 0x65,
	0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x22, 0x36, 0x0a, 0x10, 0x43, 0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x61, 0x72, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63,
	0x61, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x64, 0x2a, 0x34, 0x0a, 0x0a, 0x45, 0x6d,
	0x75, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49,
	0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f,
	0x55, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02,
	0x2a, 0x4c, 0x0a, 0x10, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x74, 0x6c, 0x6f, 0x61, 0x64,
	0x65, 0x72, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65,
	0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x03, 0x2a, 0x33,
	0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x69, 0x6d,
	0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x54, 0x52, 0x45, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a,
	0x05, 0x55, 0x4c, 0x54, 0x52, 0x41, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x4f, 0x52,
	0x54, 0x10, 0x02, 0x2a, 0x40, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c,
	0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x53, 0x69, 0x64, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45,
	0x46, 0x54, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12,
	0x14, 0x0a, 0x10, 0x52, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x52,
	0x49, 0x56, 0x45, 0x10, 0x01, 0x42, 0x11, 0x5a, 0x0f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x6b, 0x61,
	0x66, 0x6b, 0x61, 0x5f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_kafka_grpc_attendant_data_proto_rawDescOnce sync.Once
	file_kafka_grpc_attendant_data_proto_rawDescData = file_kafka_grpc_attendant_data_proto_rawDesc
)

func file_kafka_grpc_attendant_data_proto_rawDescGZIP() []byte {
	file_kafka_grpc_attendant_data_proto_rawDescOnce.Do(func() {
		file_kafka_grpc_attendant_data_proto_rawDescData = protoimpl.X.CompressGZIP(file_kafka_grpc_attendant_data_proto_rawDescData)
	})
	return file_kafka_grpc_attendant_data_proto_rawDescData
}

var file_kafka_grpc_attendant_data_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_kafka_grpc_attendant_data_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
var file_kafka_grpc_attendant_data_proto_goTypes = []interface{}{
	(EmumStatus)(0),               // 0: EmumStatus
	(ManifestFileType)(0),         // 1: ManifestFileType
	(CompatibleTrim)(0),           // 2: CompatibleTrim
	(CompatibleDriveSide)(0),      // 3: CompatibleDriveSide
	(*GRPC_AttendantPayload)(nil), // 4: GRPC_AttendantPayload
	(*CarUpdateStatus)(nil),       // 5: CarUpdateStatus
	(*CarECU)(nil),                // 6: CarECU
	(*CarUpdateProgress)(nil),     // 7: CarUpdateProgress
	(*FileKeysRequest)(nil),       // 8: FileKeysRequest
	(*DTCEntry)(nil),              // 9: DTCEntry
	(*ECCKeys)(nil),               // 10: ECCKeys
	(*ECCKey)(nil),                // 11: ECCKey
	(*BineryHex)(nil),             // 12: BineryHex
	(*UpdateData)(nil),            // 13: UpdateData
	(*VehicleData)(nil),           // 14: VehicleData
	(*MessageStatus)(nil),         // 15: MessageStatus
	(*UpdateManifest)(nil),        // 16: UpdateManifest
	(*UpdateManifestECU)(nil),     // 17: UpdateManifestECU
	(*UpdateManifestFile)(nil),    // 18: UpdateManifestFile
	(*MemoryRegion)(nil),          // 19: MemoryRegion
	(*FileKeyResponse)(nil),       // 20: FileKeyResponse
	(*FeatureCodes)(nil),          // 21: FeatureCodes
	(*VehicleSpecification)(nil),  // 22: VehicleSpecification
	(*Order)(nil),                 // 23: Order
	(*CarUpdateRequest)(nil),      // 24: CarUpdateRequest
	nil,                           // 25: CarUpdateStatus.EcusEntry
}
var file_kafka_grpc_attendant_data_proto_depIdxs = []int32{
	5,  // 0: GRPC_AttendantPayload.carUpdateStatus:type_name -> CarUpdateStatus
	7,  // 1: GRPC_AttendantPayload.carUpdateProgress:type_name -> CarUpdateProgress
	8,  // 2: GRPC_AttendantPayload.fileKeyReq:type_name -> FileKeysRequest
	10, // 3: GRPC_AttendantPayload.keys:type_name -> ECCKeys
	13, // 4: GRPC_AttendantPayload.updateApprove:type_name -> UpdateData
	14, // 5: GRPC_AttendantPayload.updateGet:type_name -> VehicleData
	16, // 6: GRPC_AttendantPayload.updateManifest:type_name -> UpdateManifest
	23, // 7: GRPC_AttendantPayload.order:type_name -> Order
	15, // 8: GRPC_AttendantPayload.messageStatus:type_name -> MessageStatus
	9,  // 9: GRPC_AttendantPayload.dtcEntry:type_name -> DTCEntry
	24, // 10: GRPC_AttendantPayload.carUpdateRequest:type_name -> CarUpdateRequest
	25, // 11: CarUpdateStatus.ecus:type_name -> CarUpdateStatus.EcusEntry
	11, // 12: ECCKeys.eccKeys:type_name -> ECCKey
	12, // 13: ECCKey.pub_key_level_1:type_name -> BineryHex
	12, // 14: ECCKey.pub_key_level_2:type_name -> BineryHex
	12, // 15: ECCKey.pub_key_level_3:type_name -> BineryHex
	12, // 16: ECCKey.level_1:type_name -> BineryHex
	12, // 17: ECCKey.level_2:type_name -> BineryHex
	12, // 18: ECCKey.level_3:type_name -> BineryHex
	0,  // 19: MessageStatus.status:type_name -> EmumStatus
	17, // 20: UpdateManifest.ecu_updates:type_name -> UpdateManifestECU
	18, // 21: UpdateManifestECU.files:type_name -> UpdateManifestFile
	17, // 22: UpdateManifestECU.rollback:type_name -> UpdateManifestECU
	11, // 23: UpdateManifestECU.ecc_keys:type_name -> ECCKey
	19, // 24: UpdateManifestFile.write_region:type_name -> MemoryRegion
	19, // 25: UpdateManifestFile.erase_region:type_name -> MemoryRegion
	20, // 26: UpdateManifestFile.file_key:type_name -> FileKeyResponse
	21, // 27: VehicleSpecification.feature:type_name -> FeatureCodes
	22, // 28: Order.VehicleSpecification:type_name -> VehicleSpecification
	6,  // 29: CarUpdateStatus.EcusEntry.value:type_name -> CarECU
	30, // [30:30] is the sub-list for method output_type
	30, // [30:30] is the sub-list for method input_type
	30, // [30:30] is the sub-list for extension type_name
	30, // [30:30] is the sub-list for extension extendee
	0,  // [0:30] is the sub-list for field type_name
}

func init() { file_kafka_grpc_attendant_data_proto_init() }
func file_kafka_grpc_attendant_data_proto_init() {
	if File_kafka_grpc_attendant_data_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_kafka_grpc_attendant_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GRPC_AttendantPayload); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CarUpdateStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CarECU); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CarUpdateProgress); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FileKeysRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DTCEntry); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ECCKeys); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ECCKey); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BineryHex); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VehicleData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MessageStatus); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateManifest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateManifestECU); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateManifestFile); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MemoryRegion); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FileKeyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FeatureCodes); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VehicleSpecification); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Order); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_kafka_grpc_attendant_data_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CarUpdateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_kafka_grpc_attendant_data_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*GRPC_AttendantPayload_CarUpdateStatus)(nil),
		(*GRPC_AttendantPayload_CarUpdateProgress)(nil),
		(*GRPC_AttendantPayload_FileKeyReq)(nil),
		(*GRPC_AttendantPayload_Keys)(nil),
		(*GRPC_AttendantPayload_UpdateApprove)(nil),
		(*GRPC_AttendantPayload_UpdateGet)(nil),
		(*GRPC_AttendantPayload_UpdateManifest)(nil),
		(*GRPC_AttendantPayload_Order)(nil),
		(*GRPC_AttendantPayload_MessageStatus)(nil),
		(*GRPC_AttendantPayload_DtcEntry)(nil),
		(*GRPC_AttendantPayload_CarUpdateRequest)(nil),
	}
	file_kafka_grpc_attendant_data_proto_msgTypes[2].OneofWrappers = []interface{}{}
	file_kafka_grpc_attendant_data_proto_msgTypes[7].OneofWrappers = []interface{}{}
	file_kafka_grpc_attendant_data_proto_msgTypes[12].OneofWrappers = []interface{}{}
	file_kafka_grpc_attendant_data_proto_msgTypes[13].OneofWrappers = []interface{}{}
	file_kafka_grpc_attendant_data_proto_msgTypes[14].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_kafka_grpc_attendant_data_proto_rawDesc,
			NumEnums:      4,
			NumMessages:   22,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_kafka_grpc_attendant_data_proto_goTypes,
		DependencyIndexes: file_kafka_grpc_attendant_data_proto_depIdxs,
		EnumInfos:         file_kafka_grpc_attendant_data_proto_enumTypes,
		MessageInfos:      file_kafka_grpc_attendant_data_proto_msgTypes,
	}.Build()
	File_kafka_grpc_attendant_data_proto = out.File
	file_kafka_grpc_attendant_data_proto_rawDesc = nil
	file_kafka_grpc_attendant_data_proto_goTypes = nil
	file_kafka_grpc_attendant_data_proto_depIdxs = nil
}
