// Code generated by protoc-gen-go. DO NOT EDIT.
// source: device/config.proto

package device

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Next tag: 8
type Config_FormFactor int32

const (
	Config_FORM_FACTOR_UNSPECIFIED Config_FormFactor = 0
	Config_FORM_FACTOR_CLAMSHELL   Config_FormFactor = 1
	Config_FORM_FACTOR_CONVERTIBLE Config_FormFactor = 2
	Config_FORM_FACTOR_DETACHABLE  Config_FormFactor = 3
	Config_FORM_FACTOR_CHROMEBASE  Config_FormFactor = 4
	Config_FORM_FACTOR_CHROMEBOX   Config_FormFactor = 5
	Config_FORM_FACTOR_CHROMEBIT   Config_FormFactor = 6
	Config_FORM_FACTOR_CHROMESLATE Config_FormFactor = 7
)

var Config_FormFactor_name = map[int32]string{
	0: "FORM_FACTOR_UNSPECIFIED",
	1: "FORM_FACTOR_CLAMSHELL",
	2: "FORM_FACTOR_CONVERTIBLE",
	3: "FORM_FACTOR_DETACHABLE",
	4: "FORM_FACTOR_CHROMEBASE",
	5: "FORM_FACTOR_CHROMEBOX",
	6: "FORM_FACTOR_CHROMEBIT",
	7: "FORM_FACTOR_CHROMESLATE",
}

var Config_FormFactor_value = map[string]int32{
	"FORM_FACTOR_UNSPECIFIED": 0,
	"FORM_FACTOR_CLAMSHELL":   1,
	"FORM_FACTOR_CONVERTIBLE": 2,
	"FORM_FACTOR_DETACHABLE":  3,
	"FORM_FACTOR_CHROMEBASE":  4,
	"FORM_FACTOR_CHROMEBOX":   5,
	"FORM_FACTOR_CHROMEBIT":   6,
	"FORM_FACTOR_CHROMESLATE": 7,
}

func (x Config_FormFactor) String() string {
	return proto.EnumName(Config_FormFactor_name, int32(x))
}

func (Config_FormFactor) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 0}
}

// Next Tag: 3
type Config_Graphics int32

const (
	Config_GRAPHICS_UNSPECIFIED Config_Graphics = 0
	Config_GRAPHICS_GL          Config_Graphics = 1
	Config_GRAPHICS_GLE         Config_Graphics = 2
)

var Config_Graphics_name = map[int32]string{
	0: "GRAPHICS_UNSPECIFIED",
	1: "GRAPHICS_GL",
	2: "GRAPHICS_GLE",
}

var Config_Graphics_value = map[string]int32{
	"GRAPHICS_UNSPECIFIED": 0,
	"GRAPHICS_GL":          1,
	"GRAPHICS_GLE":         2,
}

func (x Config_Graphics) String() string {
	return proto.EnumName(Config_Graphics_name, int32(x))
}

func (Config_Graphics) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 1}
}

// Next Tag: 12
type Config_HardwareFeature int32

const (
	Config_HARDWARE_FEATURE_UNSPECIFIED Config_HardwareFeature = 0
	Config_HARDWARE_FEATURE_BLUETOOTH   Config_HardwareFeature = 1
	Config_HARDWARE_FEATURE_FLASHROM    Config_HardwareFeature = 2
	// Indicate if the device support audio hotwording, an audio listening module
	// included with Google Chrome and Chromium to support Google Assistant.
	// https://chromeos.google.com/partner/dlm/docs/latest-requirements/chromebook.html#audio-hotwording-always-on-listening
	Config_HARDWARE_FEATURE_HOTWORDING       Config_HardwareFeature = 3
	Config_HARDWARE_FEATURE_INTERNAL_DISPLAY Config_HardwareFeature = 4
	// Indicate if the device has support for lucid sleep (a connected lower power state,
	// in which the device should still has some network communications)
	// https://chromeos.google.com/partner/dlm/docs/p-hardware-specs/lucidsleep.html
	Config_HARDWARE_FEATURE_LUCID_SLEEP Config_HardwareFeature = 5
	Config_HARDWARE_FEATURE_WEBCAM      Config_HardwareFeature = 6
	Config_HARDWARE_FEATURE_STYLUS      Config_HardwareFeature = 7
	Config_HARDWARE_FEATURE_TOUCHPAD    Config_HardwareFeature = 8
	Config_HARDWARE_FEATURE_TOUCHSCREEN Config_HardwareFeature = 9
	// Indicate if the device has detachable keyboard.
	// https://chromeos.google.com/partner/dlm/docs/latest-requirements/detachable.html#keyboard-external
	Config_HARDWARE_FEATURE_DETACHABLE_KEYBOARD Config_HardwareFeature = 10
	// Indicate if the device has fingerprint sensor.
	Config_HARDWARE_FEATURE_FINGERPRINT Config_HardwareFeature = 11
)

var Config_HardwareFeature_name = map[int32]string{
	0:  "HARDWARE_FEATURE_UNSPECIFIED",
	1:  "HARDWARE_FEATURE_BLUETOOTH",
	2:  "HARDWARE_FEATURE_FLASHROM",
	3:  "HARDWARE_FEATURE_HOTWORDING",
	4:  "HARDWARE_FEATURE_INTERNAL_DISPLAY",
	5:  "HARDWARE_FEATURE_LUCID_SLEEP",
	6:  "HARDWARE_FEATURE_WEBCAM",
	7:  "HARDWARE_FEATURE_STYLUS",
	8:  "HARDWARE_FEATURE_TOUCHPAD",
	9:  "HARDWARE_FEATURE_TOUCHSCREEN",
	10: "HARDWARE_FEATURE_DETACHABLE_KEYBOARD",
	11: "HARDWARE_FEATURE_FINGERPRINT",
}

var Config_HardwareFeature_value = map[string]int32{
	"HARDWARE_FEATURE_UNSPECIFIED":         0,
	"HARDWARE_FEATURE_BLUETOOTH":           1,
	"HARDWARE_FEATURE_FLASHROM":            2,
	"HARDWARE_FEATURE_HOTWORDING":          3,
	"HARDWARE_FEATURE_INTERNAL_DISPLAY":    4,
	"HARDWARE_FEATURE_LUCID_SLEEP":         5,
	"HARDWARE_FEATURE_WEBCAM":              6,
	"HARDWARE_FEATURE_STYLUS":              7,
	"HARDWARE_FEATURE_TOUCHPAD":            8,
	"HARDWARE_FEATURE_TOUCHSCREEN":         9,
	"HARDWARE_FEATURE_DETACHABLE_KEYBOARD": 10,
	"HARDWARE_FEATURE_FINGERPRINT":         11,
}

func (x Config_HardwareFeature) String() string {
	return proto.EnumName(Config_HardwareFeature_name, int32(x))
}

func (Config_HardwareFeature) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 2}
}

// Indicate the device's power supply.
// Next Tag: 3
type Config_PowerSupply int32

const (
	Config_POWER_SUPPLY_UNSPECIFIED Config_PowerSupply = 0
	Config_POWER_SUPPLY_BATTERY     Config_PowerSupply = 1
	Config_POWER_SUPPLY_AC_ONLY     Config_PowerSupply = 2
)

var Config_PowerSupply_name = map[int32]string{
	0: "POWER_SUPPLY_UNSPECIFIED",
	1: "POWER_SUPPLY_BATTERY",
	2: "POWER_SUPPLY_AC_ONLY",
}

var Config_PowerSupply_value = map[string]int32{
	"POWER_SUPPLY_UNSPECIFIED": 0,
	"POWER_SUPPLY_BATTERY":     1,
	"POWER_SUPPLY_AC_ONLY":     2,
}

func (x Config_PowerSupply) String() string {
	return proto.EnumName(Config_PowerSupply_name, int32(x))
}

func (Config_PowerSupply) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 3}
}

// Next Tag: 6
type Config_Storage int32

const (
	Config_STORAGE_UNSPECIFIED Config_Storage = 0
	Config_STORAGE_SSD         Config_Storage = 1
	Config_STORAGE_HDD         Config_Storage = 2
	Config_STORAGE_MMC         Config_Storage = 3
	Config_STORAGE_NVME        Config_Storage = 4
	Config_STORAGE_UFS         Config_Storage = 5
)

var Config_Storage_name = map[int32]string{
	0: "STORAGE_UNSPECIFIED",
	1: "STORAGE_SSD",
	2: "STORAGE_HDD",
	3: "STORAGE_MMC",
	4: "STORAGE_NVME",
	5: "STORAGE_UFS",
}

var Config_Storage_value = map[string]int32{
	"STORAGE_UNSPECIFIED": 0,
	"STORAGE_SSD":         1,
	"STORAGE_HDD":         2,
	"STORAGE_MMC":         3,
	"STORAGE_NVME":        4,
	"STORAGE_UFS":         5,
}

func (x Config_Storage) String() string {
	return proto.EnumName(Config_Storage_name, int32(x))
}

func (Config_Storage) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 4}
}

// Next tag: 13
type Config_VideoAcceleration int32

const (
	Config_VIDEO_UNSPECIFIED            Config_VideoAcceleration = 0
	Config_VIDEO_ACCELERATION_H264      Config_VideoAcceleration = 1
	Config_VIDEO_ACCELERATION_ENC_H264  Config_VideoAcceleration = 2
	Config_VIDEO_ACCELERATION_VP8       Config_VideoAcceleration = 3
	Config_VIDEO_ACCELERATION_ENC_VP8   Config_VideoAcceleration = 4
	Config_VIDEO_ACCELERATION_VP9       Config_VideoAcceleration = 5
	Config_VIDEO_ACCELERATION_ENC_VP9   Config_VideoAcceleration = 6
	Config_VIDEO_ACCELERATION_VP9_2     Config_VideoAcceleration = 7
	Config_VIDEO_ACCELERATION_ENC_VP9_2 Config_VideoAcceleration = 8
	Config_VIDEO_ACCELERATION_H265      Config_VideoAcceleration = 9
	Config_VIDEO_ACCELERATION_ENC_H265  Config_VideoAcceleration = 10
	Config_VIDEO_ACCELERATION_MJPG      Config_VideoAcceleration = 11
	Config_VIDEO_ACCELERATION_ENC_MJPG  Config_VideoAcceleration = 12
)

var Config_VideoAcceleration_name = map[int32]string{
	0:  "VIDEO_UNSPECIFIED",
	1:  "VIDEO_ACCELERATION_H264",
	2:  "VIDEO_ACCELERATION_ENC_H264",
	3:  "VIDEO_ACCELERATION_VP8",
	4:  "VIDEO_ACCELERATION_ENC_VP8",
	5:  "VIDEO_ACCELERATION_VP9",
	6:  "VIDEO_ACCELERATION_ENC_VP9",
	7:  "VIDEO_ACCELERATION_VP9_2",
	8:  "VIDEO_ACCELERATION_ENC_VP9_2",
	9:  "VIDEO_ACCELERATION_H265",
	10: "VIDEO_ACCELERATION_ENC_H265",
	11: "VIDEO_ACCELERATION_MJPG",
	12: "VIDEO_ACCELERATION_ENC_MJPG",
}

var Config_VideoAcceleration_value = map[string]int32{
	"VIDEO_UNSPECIFIED":            0,
	"VIDEO_ACCELERATION_H264":      1,
	"VIDEO_ACCELERATION_ENC_H264":  2,
	"VIDEO_ACCELERATION_VP8":       3,
	"VIDEO_ACCELERATION_ENC_VP8":   4,
	"VIDEO_ACCELERATION_VP9":       5,
	"VIDEO_ACCELERATION_ENC_VP9":   6,
	"VIDEO_ACCELERATION_VP9_2":     7,
	"VIDEO_ACCELERATION_ENC_VP9_2": 8,
	"VIDEO_ACCELERATION_H265":      9,
	"VIDEO_ACCELERATION_ENC_H265":  10,
	"VIDEO_ACCELERATION_MJPG":      11,
	"VIDEO_ACCELERATION_ENC_MJPG":  12,
}

func (x Config_VideoAcceleration) String() string {
	return proto.EnumName(Config_VideoAcceleration_name, int32(x))
}

func (Config_VideoAcceleration) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 5}
}

// Next Tag: 31
type Config_SOC int32

const (
	Config_SOC_UNSPECIFIED Config_SOC = 0
	// Aka AML-Y
	Config_SOC_AMBERLAKE_Y   Config_SOC = 1
	Config_SOC_APOLLO_LAKE   Config_SOC = 2
	Config_SOC_BAY_TRAIL     Config_SOC = 3
	Config_SOC_BRASWELL      Config_SOC = 4
	Config_SOC_BROADWELL     Config_SOC = 5
	Config_SOC_CANNON_LAKE_Y Config_SOC = 6
	Config_SOC_COMET_LAKE_U  Config_SOC = 7
	Config_SOC_EXYNOS_5250   Config_SOC = 8
	Config_SOC_EXYNOS_5420   Config_SOC = 9
	// Aka GLK
	Config_SOC_GEMINI_LAKE Config_SOC = 10
	Config_SOC_HASWELL     Config_SOC = 11
	Config_SOC_ICE_LAKE_Y  Config_SOC = 12
	Config_SOC_IVY_BRIDGE  Config_SOC = 13
	Config_SOC_KABYLAKE_U  Config_SOC = 14
	// KabyLake U refresh
	Config_SOC_KABYLAKE_U_R   Config_SOC = 15
	Config_SOC_KABYLAKE_Y     Config_SOC = 16
	Config_SOC_MT8173         Config_SOC = 17
	Config_SOC_MT8176         Config_SOC = 18
	Config_SOC_MT8183         Config_SOC = 19
	Config_SOC_PICASSO        Config_SOC = 20
	Config_SOC_PINE_TRAIL     Config_SOC = 21
	Config_SOC_RK3288         Config_SOC = 22
	Config_SOC_RK3399         Config_SOC = 23
	Config_SOC_SANDY_BRIDGE   Config_SOC = 24
	Config_SOC_SDM845         Config_SOC = 25
	Config_SOC_SKYLAKE_U      Config_SOC = 26
	Config_SOC_SKYLAKE_Y      Config_SOC = 27
	Config_SOC_STONEY_RIDGE   Config_SOC = 28
	Config_SOC_TEGRA_K1       Config_SOC = 29
	Config_SOC_WHISKEY_LAKE_U Config_SOC = 30
)

var Config_SOC_name = map[int32]string{
	0:  "SOC_UNSPECIFIED",
	1:  "SOC_AMBERLAKE_Y",
	2:  "SOC_APOLLO_LAKE",
	3:  "SOC_BAY_TRAIL",
	4:  "SOC_BRASWELL",
	5:  "SOC_BROADWELL",
	6:  "SOC_CANNON_LAKE_Y",
	7:  "SOC_COMET_LAKE_U",
	8:  "SOC_EXYNOS_5250",
	9:  "SOC_EXYNOS_5420",
	10: "SOC_GEMINI_LAKE",
	11: "SOC_HASWELL",
	12: "SOC_ICE_LAKE_Y",
	13: "SOC_IVY_BRIDGE",
	14: "SOC_KABYLAKE_U",
	15: "SOC_KABYLAKE_U_R",
	16: "SOC_KABYLAKE_Y",
	17: "SOC_MT8173",
	18: "SOC_MT8176",
	19: "SOC_MT8183",
	20: "SOC_PICASSO",
	21: "SOC_PINE_TRAIL",
	22: "SOC_RK3288",
	23: "SOC_RK3399",
	24: "SOC_SANDY_BRIDGE",
	25: "SOC_SDM845",
	26: "SOC_SKYLAKE_U",
	27: "SOC_SKYLAKE_Y",
	28: "SOC_STONEY_RIDGE",
	29: "SOC_TEGRA_K1",
	30: "SOC_WHISKEY_LAKE_U",
}

var Config_SOC_value = map[string]int32{
	"SOC_UNSPECIFIED":    0,
	"SOC_AMBERLAKE_Y":    1,
	"SOC_APOLLO_LAKE":    2,
	"SOC_BAY_TRAIL":      3,
	"SOC_BRASWELL":       4,
	"SOC_BROADWELL":      5,
	"SOC_CANNON_LAKE_Y":  6,
	"SOC_COMET_LAKE_U":   7,
	"SOC_EXYNOS_5250":    8,
	"SOC_EXYNOS_5420":    9,
	"SOC_GEMINI_LAKE":    10,
	"SOC_HASWELL":        11,
	"SOC_ICE_LAKE_Y":     12,
	"SOC_IVY_BRIDGE":     13,
	"SOC_KABYLAKE_U":     14,
	"SOC_KABYLAKE_U_R":   15,
	"SOC_KABYLAKE_Y":     16,
	"SOC_MT8173":         17,
	"SOC_MT8176":         18,
	"SOC_MT8183":         19,
	"SOC_PICASSO":        20,
	"SOC_PINE_TRAIL":     21,
	"SOC_RK3288":         22,
	"SOC_RK3399":         23,
	"SOC_SANDY_BRIDGE":   24,
	"SOC_SDM845":         25,
	"SOC_SKYLAKE_U":      26,
	"SOC_SKYLAKE_Y":      27,
	"SOC_STONEY_RIDGE":   28,
	"SOC_TEGRA_K1":       29,
	"SOC_WHISKEY_LAKE_U": 30,
}

func (x Config_SOC) String() string {
	return proto.EnumName(Config_SOC_name, int32(x))
}

func (Config_SOC) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 6}
}

// Next Tag: 6
type Config_ODM int32

const (
	Config_ODM_UNSPECIFIED Config_ODM = 0
	Config_ODM_QUANTA      Config_ODM = 1
	Config_ODM_BITLAND     Config_ODM = 2
	Config_ODM_SAMSUNG     Config_ODM = 3
	Config_ODM_PEGATRON    Config_ODM = 4
	Config_ODM_COMPAL      Config_ODM = 5
)

var Config_ODM_name = map[int32]string{
	0: "ODM_UNSPECIFIED",
	1: "ODM_QUANTA",
	2: "ODM_BITLAND",
	3: "ODM_SAMSUNG",
	4: "ODM_PEGATRON",
	5: "ODM_COMPAL",
}

var Config_ODM_value = map[string]int32{
	"ODM_UNSPECIFIED": 0,
	"ODM_QUANTA":      1,
	"ODM_BITLAND":     2,
	"ODM_SAMSUNG":     3,
	"ODM_PEGATRON":    4,
	"ODM_COMPAL":      5,
}

func (x Config_ODM) String() string {
	return proto.EnumName(Config_ODM_name, int32(x))
}

func (Config_ODM) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 7}
}

type Config_OEM int32

const (
	Config_OEM_UNSPECIFIED Config_OEM = 0
	Config_OEM_ACER        Config_OEM = 1
	Config_OEM_DELL        Config_OEM = 2
	Config_OEM_SAMSUNG     Config_OEM = 3
	Config_OEM_HP          Config_OEM = 4
	Config_OEM_LENOVO      Config_OEM = 5
	Config_OEM_ASUS        Config_OEM = 6
	Config_OEM_NEC         Config_OEM = 7
)

var Config_OEM_name = map[int32]string{
	0: "OEM_UNSPECIFIED",
	1: "OEM_ACER",
	2: "OEM_DELL",
	3: "OEM_SAMSUNG",
	4: "OEM_HP",
	5: "OEM_LENOVO",
	6: "OEM_ASUS",
	7: "OEM_NEC",
}

var Config_OEM_value = map[string]int32{
	"OEM_UNSPECIFIED": 0,
	"OEM_ACER":        1,
	"OEM_DELL":        2,
	"OEM_SAMSUNG":     3,
	"OEM_HP":          4,
	"OEM_LENOVO":      5,
	"OEM_ASUS":        6,
	"OEM_NEC":         7,
}

func (x Config_OEM) String() string {
	return proto.EnumName(Config_OEM_name, int32(x))
}

func (Config_OEM) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 8}
}

type Config_Architecture int32

const (
	Config_ARCHITECTURE_UNDEFINED Config_Architecture = 0
	Config_X86                    Config_Architecture = 1
	Config_X86_64                 Config_Architecture = 2
	Config_ARM                    Config_Architecture = 3
	Config_ARM64                  Config_Architecture = 4
)

var Config_Architecture_name = map[int32]string{
	0: "ARCHITECTURE_UNDEFINED",
	1: "X86",
	2: "X86_64",
	3: "ARM",
	4: "ARM64",
}

var Config_Architecture_value = map[string]int32{
	"ARCHITECTURE_UNDEFINED": 0,
	"X86":                    1,
	"X86_64":                 2,
	"ARM":                    3,
	"ARM64":                  4,
}

func (x Config_Architecture) String() string {
	return proto.EnumName(Config_Architecture_name, int32(x))
}

func (Config_Architecture) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0, 9}
}

// Next tag: 21
type Config struct {
	// Required. Unique ID of the device config.
	Id         *ConfigId         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	FormFactor Config_FormFactor `protobuf:"varint,3,opt,name=form_factor,json=formFactor,proto3,enum=device.Config_FormFactor" json:"form_factor,omitempty"`
	// e.g: "haswell", "tegra",...
	GpuFamily string          `protobuf:"bytes,4,opt,name=gpu_family,json=gpuFamily,proto3" json:"gpu_family,omitempty"`
	Graphics  Config_Graphics `protobuf:"varint,5,opt,name=graphics,proto3,enum=device.Config_Graphics" json:"graphics,omitempty"`
	// If a hardware feature isn't specified, one can assume that it doesn't
	// exist on the device.
	HardwareFeatures []Config_HardwareFeature `protobuf:"varint,6,rep,packed,name=hardware_features,json=hardwareFeatures,proto3,enum=device.Config_HardwareFeature" json:"hardware_features,omitempty"`
	Power            Config_PowerSupply       `protobuf:"varint,8,opt,name=power,proto3,enum=device.Config_PowerSupply" json:"power,omitempty"`
	// Indicate the device's storage type.
	Storage                   Config_Storage             `protobuf:"varint,9,opt,name=storage,proto3,enum=device.Config_Storage" json:"storage,omitempty"`
	VideoAccelerationSupports []Config_VideoAcceleration `protobuf:"varint,10,rep,packed,name=video_acceleration_supports,json=videoAccelerationSupports,proto3,enum=device.Config_VideoAcceleration" json:"video_acceleration_supports,omitempty"`
	Soc                       Config_SOC                 `protobuf:"varint,11,opt,name=soc,proto3,enum=device.Config_SOC" json:"soc,omitempty"`
	// Full email address for TAMs responsible for device
	Tam []string `protobuf:"bytes,12,rep,name=tam,proto3" json:"tam,omitempty"`
	// Full email address for Google EEs responsible for device
	Ee []string `protobuf:"bytes,13,rep,name=ee,proto3" json:"ee,omitempty"`
	// ODM for device
	Odm Config_ODM `protobuf:"varint,14,opt,name=odm,proto3,enum=device.Config_ODM" json:"odm,omitempty"`
	// Group email address for this device's odm contact in buganizer (@google.com)
	OdmEmailGroup string `protobuf:"bytes,15,opt,name=odm_email_group,json=odmEmailGroup,proto3" json:"odm_email_group,omitempty"`
	// OEM for device
	Oem Config_OEM `protobuf:"varint,16,opt,name=oem,proto3,enum=device.Config_OEM" json:"oem,omitempty"`
	// Group email address for this device's oem contact in buganizer (@google.com)
	OemEmailGroup string `protobuf:"bytes,17,opt,name=oem_email_group,json=oemEmailGroup,proto3" json:"oem_email_group,omitempty"`
	// Group email address for this device's SoC contact in buganizer (@google.com)
	SocEmailGroup string `protobuf:"bytes,18,opt,name=soc_email_group,json=socEmailGroup,proto3" json:"soc_email_group,omitempty"`
	// A bit field used by firmware to make decisions. The definition of this
	// firmware configuration field is per firmware build. This does not have
	// 1st-class definitions for values in the top-level configuration proto since
	// each firmware build target can appropriate the bits within this 32-bit
	// field differently. Each firmware build can vary significantly in the
	// configuration space that needs customization.
	FirmwareConfiguration uint32              `protobuf:"varint,19,opt,name=firmware_configuration,json=firmwareConfiguration,proto3" json:"firmware_configuration,omitempty"`
	Cpu                   Config_Architecture `protobuf:"varint,20,opt,name=cpu,proto3,enum=device.Config_Architecture" json:"cpu,omitempty"`
	XXX_NoUnkeyedLiteral  struct{}            `json:"-"`
	XXX_unrecognized      []byte              `json:"-"`
	XXX_sizecache         int32               `json:"-"`
}

func (m *Config) Reset()         { *m = Config{} }
func (m *Config) String() string { return proto.CompactTextString(m) }
func (*Config) ProtoMessage()    {}
func (*Config) Descriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{0}
}

func (m *Config) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Config.Unmarshal(m, b)
}
func (m *Config) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Config.Marshal(b, m, deterministic)
}
func (m *Config) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Config.Merge(m, src)
}
func (m *Config) XXX_Size() int {
	return xxx_messageInfo_Config.Size(m)
}
func (m *Config) XXX_DiscardUnknown() {
	xxx_messageInfo_Config.DiscardUnknown(m)
}

var xxx_messageInfo_Config proto.InternalMessageInfo

func (m *Config) GetId() *ConfigId {
	if m != nil {
		return m.Id
	}
	return nil
}

func (m *Config) GetFormFactor() Config_FormFactor {
	if m != nil {
		return m.FormFactor
	}
	return Config_FORM_FACTOR_UNSPECIFIED
}

func (m *Config) GetGpuFamily() string {
	if m != nil {
		return m.GpuFamily
	}
	return ""
}

func (m *Config) GetGraphics() Config_Graphics {
	if m != nil {
		return m.Graphics
	}
	return Config_GRAPHICS_UNSPECIFIED
}

func (m *Config) GetHardwareFeatures() []Config_HardwareFeature {
	if m != nil {
		return m.HardwareFeatures
	}
	return nil
}

func (m *Config) GetPower() Config_PowerSupply {
	if m != nil {
		return m.Power
	}
	return Config_POWER_SUPPLY_UNSPECIFIED
}

func (m *Config) GetStorage() Config_Storage {
	if m != nil {
		return m.Storage
	}
	return Config_STORAGE_UNSPECIFIED
}

func (m *Config) GetVideoAccelerationSupports() []Config_VideoAcceleration {
	if m != nil {
		return m.VideoAccelerationSupports
	}
	return nil
}

func (m *Config) GetSoc() Config_SOC {
	if m != nil {
		return m.Soc
	}
	return Config_SOC_UNSPECIFIED
}

func (m *Config) GetTam() []string {
	if m != nil {
		return m.Tam
	}
	return nil
}

func (m *Config) GetEe() []string {
	if m != nil {
		return m.Ee
	}
	return nil
}

func (m *Config) GetOdm() Config_ODM {
	if m != nil {
		return m.Odm
	}
	return Config_ODM_UNSPECIFIED
}

func (m *Config) GetOdmEmailGroup() string {
	if m != nil {
		return m.OdmEmailGroup
	}
	return ""
}

func (m *Config) GetOem() Config_OEM {
	if m != nil {
		return m.Oem
	}
	return Config_OEM_UNSPECIFIED
}

func (m *Config) GetOemEmailGroup() string {
	if m != nil {
		return m.OemEmailGroup
	}
	return ""
}

func (m *Config) GetSocEmailGroup() string {
	if m != nil {
		return m.SocEmailGroup
	}
	return ""
}

func (m *Config) GetFirmwareConfiguration() uint32 {
	if m != nil {
		return m.FirmwareConfiguration
	}
	return 0
}

func (m *Config) GetCpu() Config_Architecture {
	if m != nil {
		return m.Cpu
	}
	return Config_ARCHITECTURE_UNDEFINED
}

// Message contains all ChromeOS device configs.
type AllConfigs struct {
	Configs              []*Config `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *AllConfigs) Reset()         { *m = AllConfigs{} }
func (m *AllConfigs) String() string { return proto.CompactTextString(m) }
func (*AllConfigs) ProtoMessage()    {}
func (*AllConfigs) Descriptor() ([]byte, []int) {
	return fileDescriptor_8272a55f8dc33811, []int{1}
}

func (m *AllConfigs) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AllConfigs.Unmarshal(m, b)
}
func (m *AllConfigs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AllConfigs.Marshal(b, m, deterministic)
}
func (m *AllConfigs) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AllConfigs.Merge(m, src)
}
func (m *AllConfigs) XXX_Size() int {
	return xxx_messageInfo_AllConfigs.Size(m)
}
func (m *AllConfigs) XXX_DiscardUnknown() {
	xxx_messageInfo_AllConfigs.DiscardUnknown(m)
}

var xxx_messageInfo_AllConfigs proto.InternalMessageInfo

func (m *AllConfigs) GetConfigs() []*Config {
	if m != nil {
		return m.Configs
	}
	return nil
}

func init() {
	proto.RegisterEnum("device.Config_FormFactor", Config_FormFactor_name, Config_FormFactor_value)
	proto.RegisterEnum("device.Config_Graphics", Config_Graphics_name, Config_Graphics_value)
	proto.RegisterEnum("device.Config_HardwareFeature", Config_HardwareFeature_name, Config_HardwareFeature_value)
	proto.RegisterEnum("device.Config_PowerSupply", Config_PowerSupply_name, Config_PowerSupply_value)
	proto.RegisterEnum("device.Config_Storage", Config_Storage_name, Config_Storage_value)
	proto.RegisterEnum("device.Config_VideoAcceleration", Config_VideoAcceleration_name, Config_VideoAcceleration_value)
	proto.RegisterEnum("device.Config_SOC", Config_SOC_name, Config_SOC_value)
	proto.RegisterEnum("device.Config_ODM", Config_ODM_name, Config_ODM_value)
	proto.RegisterEnum("device.Config_OEM", Config_OEM_name, Config_OEM_value)
	proto.RegisterEnum("device.Config_Architecture", Config_Architecture_name, Config_Architecture_value)
	proto.RegisterType((*Config)(nil), "device.Config")
	proto.RegisterType((*AllConfigs)(nil), "device.AllConfigs")
}

func init() { proto.RegisterFile("device/config.proto", fileDescriptor_8272a55f8dc33811) }

var fileDescriptor_8272a55f8dc33811 = []byte{
	// 1511 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x57, 0xcd, 0x76, 0xe2, 0xc8,
	0x15, 0x0e, 0x88, 0x1f, 0xfb, 0x62, 0xe3, 0x72, 0xd9, 0x6d, 0xcb, 0x76, 0x77, 0x87, 0x70, 0x26,
	0x73, 0xd8, 0xc4, 0xf6, 0xe0, 0xb6, 0xe3, 0xce, 0xae, 0x90, 0x0a, 0xd0, 0x58, 0x52, 0x29, 0x55,
	0xc2, 0x6e, 0xb2, 0x51, 0x08, 0xc8, 0x98, 0x73, 0x8c, 0xc5, 0x11, 0xa6, 0x27, 0xb3, 0xc9, 0x93,
	0x64, 0x97, 0xf7, 0xc9, 0x33, 0xe4, 0x01, 0xf2, 0x10, 0x73, 0x4a, 0x42, 0x34, 0x08, 0xdc, 0x3b,
	0xea, 0xfb, 0xbe, 0xfb, 0xdd, 0x5b, 0xba, 0x57, 0xa5, 0x02, 0x0e, 0x06, 0xfe, 0xd7, 0x51, 0xdf,
	0xbf, 0xe8, 0x07, 0x2f, 0x8f, 0xa3, 0xe1, 0xf9, 0x24, 0x0c, 0x5e, 0x03, 0x5c, 0x88, 0xc1, 0xd3,
	0xa3, 0x15, 0xd2, 0x1b, 0x0d, 0x62, 0xbe, 0xfa, 0x5f, 0x15, 0x0a, 0x5a, 0x84, 0xe1, 0x0a, 0x64,
	0x47, 0x03, 0x35, 0x53, 0xc9, 0xd4, 0x4a, 0x75, 0x74, 0x1e, 0xeb, 0xcf, 0x63, 0xce, 0x18, 0xf0,
	0xec, 0x68, 0x80, 0xff, 0x02, 0xa5, 0xc7, 0x20, 0x1c, 0x7b, 0x8f, 0xbd, 0xfe, 0x6b, 0x10, 0xaa,
	0x4a, 0x25, 0x53, 0x2b, 0xd7, 0x4f, 0x56, 0xa5, 0xe7, 0xcd, 0x20, 0x1c, 0x37, 0x23, 0x01, 0x87,
	0xc7, 0xc5, 0x6f, 0xfc, 0x01, 0x60, 0x38, 0x99, 0x79, 0x8f, 0xbd, 0xf1, 0xe8, 0xf9, 0x57, 0x35,
	0x57, 0xc9, 0xd4, 0xb6, 0xf9, 0xf6, 0x70, 0x32, 0x6b, 0x46, 0x00, 0xbe, 0x82, 0xad, 0x61, 0xd8,
	0x9b, 0x3c, 0x8d, 0xfa, 0x53, 0x35, 0x1f, 0xf9, 0x1e, 0xa7, 0x7c, 0x5b, 0x73, 0x9a, 0x2f, 0x84,
	0xf8, 0x0e, 0xf6, 0x9f, 0x7a, 0xe1, 0xe0, 0x97, 0x5e, 0xe8, 0x7b, 0x8f, 0x7e, 0xef, 0x75, 0x16,
	0xfa, 0x53, 0xb5, 0x50, 0x51, 0x6a, 0xe5, 0xfa, 0xc7, 0x54, 0x74, 0x7b, 0xae, 0x6b, 0xc6, 0x32,
	0x8e, 0x9e, 0x56, 0x81, 0x29, 0xbe, 0x84, 0xfc, 0x24, 0xf8, 0xc5, 0x0f, 0xd5, 0xad, 0x28, 0xfd,
	0x69, 0xca, 0xc0, 0x91, 0x9c, 0x98, 0x4d, 0x26, 0xcf, 0xbf, 0xf2, 0x58, 0x88, 0x2f, 0xa1, 0x38,
	0x7d, 0x0d, 0xc2, 0xde, 0xd0, 0x57, 0xb7, 0xa3, 0x98, 0xa3, 0x54, 0x8c, 0x88, 0x59, 0x9e, 0xc8,
	0xf0, 0xdf, 0xe1, 0xec, 0xeb, 0x68, 0xe0, 0x07, 0x5e, 0xaf, 0xdf, 0xf7, 0x9f, 0xfd, 0xb0, 0xf7,
	0x3a, 0x0a, 0x5e, 0xbc, 0xe9, 0x6c, 0x32, 0x09, 0xc2, 0xd7, 0xa9, 0x0a, 0x51, 0xe9, 0x95, 0x94,
	0xcb, 0xbd, 0x8c, 0x20, 0x4b, 0x01, 0xfc, 0xe4, 0x6b, 0x1a, 0x12, 0x73, 0x0b, 0xfc, 0x03, 0x28,
	0xd3, 0xa0, 0xaf, 0x96, 0xa2, 0x7a, 0x70, 0xba, 0x1e, 0xa6, 0x71, 0x49, 0x63, 0x04, 0xca, 0x6b,
	0x6f, 0xac, 0xee, 0x54, 0x94, 0xda, 0x36, 0x97, 0x3f, 0x71, 0x19, 0xb2, 0xbe, 0xaf, 0xee, 0x46,
	0x40, 0xd6, 0xf7, 0xa5, 0x4f, 0x30, 0x18, 0xab, 0xe5, 0x8d, 0x3e, 0x4c, 0xb7, 0xb8, 0xa4, 0xf1,
	0x8f, 0xb0, 0x17, 0x0c, 0xc6, 0x9e, 0x3f, 0xee, 0x8d, 0x9e, 0xbd, 0x61, 0x18, 0xcc, 0x26, 0xea,
	0x5e, 0xd4, 0xd9, 0xdd, 0x60, 0x30, 0xa6, 0x12, 0x6d, 0x49, 0x30, 0x72, 0xf3, 0xc7, 0x2a, 0xda,
	0xec, 0x46, 0xa5, 0x9b, 0x1f, 0xbb, 0xf9, 0xab, 0x6e, 0xfb, 0x73, 0x37, 0x7f, 0xd9, 0xed, 0x47,
	0xd8, 0x9b, 0x06, 0xfd, 0x15, 0x1d, 0x8e, 0x75, 0xd3, 0xa0, 0xbf, 0xa4, 0xbb, 0x86, 0xa3, 0xc7,
	0x51, 0x38, 0x8e, 0xc6, 0x23, 0x9e, 0xfb, 0x59, 0xfc, 0xb4, 0xd4, 0x83, 0x4a, 0xa6, 0xb6, 0xcb,
	0xdf, 0x25, 0xac, 0xb6, 0x4c, 0xe2, 0x3f, 0x81, 0xd2, 0x9f, 0xcc, 0xd4, 0xc3, 0xa8, 0xd8, 0xb3,
	0x54, 0xb1, 0x24, 0xec, 0x3f, 0x8d, 0x5e, 0xfd, 0x7e, 0x34, 0x44, 0x52, 0x57, 0xfd, 0x7f, 0x06,
	0xe0, 0xdb, 0xcc, 0xe3, 0x33, 0x38, 0x6e, 0x32, 0x6e, 0x79, 0x4d, 0xa2, 0xb9, 0x8c, 0x7b, 0x1d,
	0x5b, 0x38, 0x54, 0x33, 0x9a, 0x06, 0xd5, 0xd1, 0xef, 0xf0, 0x09, 0xbc, 0x5b, 0x26, 0x35, 0x93,
	0x58, 0xa2, 0x4d, 0x4d, 0x13, 0x65, 0xd2, 0x71, 0x1a, 0xb3, 0xef, 0x29, 0x77, 0x8d, 0x86, 0x49,
	0x51, 0x16, 0x9f, 0xc2, 0xd1, 0x32, 0xa9, 0x53, 0x97, 0x68, 0x6d, 0x22, 0x39, 0x25, 0xcd, 0x69,
	0x6d, 0xce, 0x2c, 0xda, 0x20, 0x82, 0xa2, 0xdc, 0x5a, 0xbe, 0x98, 0x63, 0x5f, 0x50, 0xfe, 0x0d,
	0xca, 0x70, 0x51, 0x61, 0xad, 0x94, 0x88, 0x12, 0x26, 0x71, 0x29, 0x2a, 0x56, 0x5b, 0xb0, 0x95,
	0xbc, 0x89, 0x58, 0x85, 0xc3, 0x16, 0x27, 0x4e, 0xdb, 0xd0, 0x44, 0x6a, 0xa3, 0x7b, 0x50, 0x5a,
	0x30, 0x2d, 0xb9, 0x3d, 0x04, 0x3b, 0x4b, 0x00, 0x45, 0xd9, 0xea, 0x7f, 0x14, 0xd8, 0x4b, 0xbd,
	0x95, 0xb8, 0x02, 0xef, 0xdb, 0x84, 0xeb, 0x0f, 0x84, 0x53, 0xaf, 0x49, 0x89, 0xdb, 0xe1, 0x34,
	0x65, 0xfc, 0x11, 0x4e, 0xd7, 0x14, 0x0d, 0xb3, 0x43, 0x5d, 0xc6, 0xdc, 0x36, 0xca, 0xe0, 0x0f,
	0x70, 0xb2, 0xc6, 0x37, 0x4d, 0x22, 0xe4, 0x1e, 0x50, 0x16, 0xff, 0x1e, 0xce, 0xd6, 0xe8, 0x36,
	0x73, 0x1f, 0x18, 0xd7, 0x0d, 0xbb, 0x85, 0x14, 0xfc, 0x47, 0xf8, 0xc3, 0x9a, 0xc0, 0xb0, 0x5d,
	0xca, 0x6d, 0x62, 0x7a, 0xba, 0x21, 0x1c, 0x93, 0x74, 0x51, 0x6e, 0x63, 0xa1, 0x66, 0x47, 0x33,
	0x74, 0x4f, 0x98, 0x94, 0x3a, 0x28, 0x2f, 0x1f, 0xe2, 0x9a, 0xe2, 0x81, 0x36, 0x34, 0x62, 0xc5,
	0x4f, 0x78, 0x8d, 0x14, 0x6e, 0xd7, 0xec, 0x08, 0x54, 0xdc, 0xb8, 0x05, 0x97, 0x75, 0xb4, 0xb6,
	0x43, 0x74, 0xb4, 0xb5, 0x31, 0x75, 0x44, 0x0b, 0x8d, 0x53, 0x6a, 0xa3, 0x6d, 0x5c, 0x83, 0x1f,
	0xd6, 0x14, 0xdf, 0x46, 0xc6, 0xbb, 0xa3, 0xdd, 0x06, 0x23, 0x5c, 0x47, 0xb0, 0xd1, 0xab, 0x69,
	0xd8, 0x2d, 0xca, 0x1d, 0x6e, 0xd8, 0x2e, 0x2a, 0x55, 0x3d, 0x28, 0x2d, 0x9d, 0x7c, 0xf8, 0x3d,
	0xa8, 0x0e, 0x7b, 0xa0, 0xdc, 0x13, 0x1d, 0xc7, 0x31, 0xbb, 0xa9, 0xe6, 0xa8, 0x70, 0xb8, 0xc2,
	0x36, 0x88, 0xeb, 0x52, 0xde, 0x45, 0x99, 0x35, 0x86, 0x68, 0x1e, 0xb3, 0xcd, 0x2e, 0xca, 0x56,
	0xff, 0x09, 0xc5, 0xf9, 0x31, 0x89, 0x8f, 0xe1, 0x40, 0xb8, 0x8c, 0x93, 0x16, 0x5d, 0x9f, 0xa6,
	0x84, 0x10, 0x42, 0x47, 0x99, 0x65, 0xa0, 0xad, 0xeb, 0x28, 0xbb, 0x0c, 0x58, 0x96, 0x86, 0x14,
	0x39, 0x6f, 0x09, 0x60, 0xdf, 0x5b, 0xf2, 0x5d, 0x58, 0x92, 0x74, 0x9a, 0x02, 0xe5, 0xab, 0xff,
	0x56, 0x60, 0x7f, 0xed, 0x6c, 0xc5, 0xef, 0x60, 0xff, 0xde, 0xd0, 0x29, 0x4b, 0x95, 0x70, 0x06,
	0xc7, 0x31, 0x4c, 0x34, 0x8d, 0x9a, 0x94, 0x13, 0xd7, 0x60, 0xb6, 0xd7, 0xae, 0xdf, 0x7c, 0x42,
	0x19, 0x39, 0x55, 0x1b, 0x48, 0x6a, 0x6b, 0xb1, 0x20, 0x7a, 0x7f, 0x37, 0x08, 0xee, 0x9d, 0x5b,
	0xa4, 0xc8, 0x89, 0x7e, 0x23, 0x58, 0xf2, 0xb9, 0x37, 0x63, 0x3f, 0xa3, 0xfc, 0x77, 0x63, 0x3f,
	0xa3, 0x82, 0x6c, 0xd7, 0xe6, 0x58, 0xaf, 0x8e, 0x8a, 0xb2, 0xfb, 0x6f, 0x47, 0x7b, 0x75, 0xb4,
	0xf5, 0xf6, 0xae, 0xaf, 0xd1, 0xf6, 0xf7, 0x77, 0x7d, 0x8d, 0xe0, 0x8d, 0x68, 0xeb, 0x67, 0xa7,
	0x85, 0x4a, 0xdf, 0x89, 0x8e, 0x04, 0x3b, 0xd5, 0xff, 0xe5, 0x40, 0x11, 0x4c, 0xc3, 0x07, 0xb0,
	0x27, 0x98, 0x96, 0x6a, 0xc7, 0x1c, 0x24, 0x56, 0x83, 0x72, 0x93, 0xdc, 0x51, 0x4f, 0x0e, 0x59,
	0x02, 0x3a, 0xcc, 0x34, 0x99, 0x27, 0x61, 0x94, 0xc5, 0xfb, 0xb0, 0x2b, 0xc1, 0x06, 0xe9, 0x7a,
	0x2e, 0x27, 0x86, 0x39, 0x9f, 0x0d, 0x09, 0x71, 0x22, 0x1e, 0xe4, 0xe1, 0x9b, 0x5b, 0x88, 0x38,
	0x23, 0x7a, 0x04, 0xe5, 0xe5, 0x1c, 0x48, 0x48, 0x23, 0xb6, 0xcd, 0x6c, 0x6f, 0x9e, 0xa3, 0x80,
	0x0f, 0x01, 0x45, 0x30, 0xb3, 0xa8, 0x1b, 0xa3, 0x1d, 0x54, 0x4c, 0x32, 0xd3, 0x2f, 0x5d, 0x9b,
	0x09, 0xef, 0xba, 0x7e, 0x7d, 0x89, 0xb6, 0xd2, 0xe0, 0xa7, 0xfa, 0x25, 0xda, 0x4e, 0xc0, 0x16,
	0xb5, 0x0c, 0xdb, 0x88, 0x6b, 0x84, 0x68, 0x34, 0x99, 0xe6, 0xb5, 0xe7, 0xf5, 0x94, 0x30, 0x86,
	0xb2, 0x04, 0x0c, 0x8d, 0x26, 0x99, 0x77, 0x16, 0xd8, 0x7d, 0xd7, 0x6b, 0x70, 0x43, 0x6f, 0x51,
	0xb4, 0x9b, 0x60, 0x77, 0xa4, 0xd1, 0x9d, 0xd7, 0x52, 0x4e, 0x2a, 0xfc, 0x86, 0x79, 0x1c, 0xed,
	0xad, 0x29, 0xbb, 0x08, 0xe1, 0x32, 0x80, 0xc4, 0x2c, 0xf7, 0xf6, 0xa7, 0x3f, 0x5f, 0xa1, 0xfd,
	0x95, 0xf5, 0x0d, 0xc2, 0xcb, 0xeb, 0xdb, 0x2b, 0x74, 0x90, 0x94, 0xe9, 0x18, 0x1a, 0x11, 0x82,
	0xa1, 0xc3, 0xc4, 0xd4, 0x31, 0x6c, 0x3a, 0x7f, 0xb8, 0xef, 0x92, 0x20, 0x7e, 0x77, 0x55, 0xbf,
	0xbd, 0x45, 0x47, 0x4b, 0xeb, 0xab, 0xcf, 0x9f, 0xd1, 0x71, 0x52, 0x9e, 0x20, 0xb6, 0xbe, 0xd8,
	0x88, 0x9a, 0xa8, 0x84, 0x6e, 0xdd, 0x7e, 0xba, 0x46, 0x27, 0x49, 0x43, 0xc4, 0x5d, 0xb2, 0xaf,
	0xd3, 0x34, 0xd4, 0x45, 0x67, 0x0b, 0x2f, 0x97, 0xd9, 0xb4, 0xeb, 0xc5, 0x5e, 0xef, 0x93, 0xf6,
	0xba, 0xb4, 0xc5, 0x89, 0x77, 0xf7, 0x13, 0xfa, 0x80, 0x8f, 0x00, 0x4b, 0xe4, 0xa1, 0x6d, 0x88,
	0x3b, 0xda, 0x4d, 0xda, 0xf6, 0xb1, 0xfa, 0x02, 0x0a, 0xd3, 0x2d, 0xd9, 0x13, 0xa6, 0x5b, 0xa9,
	0x09, 0x2b, 0x03, 0x48, 0xf0, 0xaf, 0x1d, 0x62, 0xbb, 0x24, 0x3e, 0x72, 0xe4, 0xba, 0x61, 0xb8,
	0x26, 0xb1, 0xe7, 0x47, 0x8e, 0x04, 0x04, 0xb1, 0x44, 0x27, 0xfa, 0x74, 0x20, 0xd8, 0x91, 0x80,
	0x43, 0x5b, 0xc4, 0xe5, 0xcc, 0x46, 0xb9, 0xc4, 0x43, 0x63, 0x96, 0x43, 0x4c, 0x94, 0xaf, 0xfe,
	0x0b, 0x14, 0x46, 0xe3, 0x7c, 0x34, 0x9d, 0x6f, 0x07, 0xb6, 0x24, 0x48, 0x34, 0xca, 0x51, 0x26,
	0x59, 0xe9, 0x72, 0x1c, 0xe2, 0x54, 0x74, 0x39, 0x15, 0x40, 0x41, 0x02, 0x6d, 0x67, 0x9e, 0x84,
	0x5a, 0x9e, 0x49, 0x6d, 0x76, 0xcf, 0x50, 0x7e, 0x61, 0x24, 0x3a, 0x02, 0x15, 0x70, 0x09, 0x8a,
	0x72, 0x65, 0x53, 0x0d, 0x15, 0xab, 0x02, 0x76, 0x96, 0xef, 0x2f, 0xf2, 0x68, 0x21, 0x5c, 0x6b,
	0x1b, 0x2e, 0xd5, 0xe6, 0x9f, 0x5a, 0x9d, 0x36, 0x0d, 0x3b, 0xaa, 0xa7, 0x08, 0xca, 0x97, 0xdb,
	0x1b, 0x94, 0x91, 0xb9, 0xbe, 0xdc, 0xde, 0x78, 0xd1, 0x39, 0x56, 0x04, 0x85, 0x70, 0x0b, 0x29,
	0x78, 0x1b, 0xf2, 0x84, 0x5b, 0x37, 0x9f, 0x50, 0xee, 0xe7, 0xdc, 0x56, 0x16, 0x29, 0xbc, 0xd8,
	0xef, 0x85, 0xe1, 0xc8, 0x0f, 0xab, 0x37, 0x00, 0xe4, 0xf9, 0x39, 0xbe, 0x2d, 0x4d, 0x71, 0x0d,
	0x8a, 0xf1, 0xcd, 0x6b, 0xaa, 0x66, 0x2a, 0x4a, 0xad, 0x54, 0x2f, 0xaf, 0xde, 0xa7, 0x78, 0x42,
	0x37, 0xea, 0x7f, 0xbb, 0x1c, 0x06, 0xe7, 0xfd, 0xa7, 0x30, 0x18, 0x8f, 0x66, 0xe3, 0xf3, 0x20,
	0x1c, 0x5e, 0x24, 0x8b, 0x60, 0x7a, 0x31, 0x7a, 0x79, 0x0c, 0x7b, 0x17, 0xd1, 0x5f, 0x96, 0x8b,
	0x61, 0x70, 0x11, 0x7b, 0xfc, 0xa3, 0x10, 0x01, 0x57, 0xbf, 0x05, 0x00, 0x00, 0xff, 0xff, 0x8a,
	0x24, 0x4c, 0x54, 0xfa, 0x0c, 0x00, 0x00,
}
