// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/automl/v1/image.proto

package automl

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "github.com/golang/protobuf/ptypes/timestamp"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// 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

// Dataset metadata that is specific to image classification.
type ImageClassificationDatasetMetadata struct {
	// Required. Type of the classification problem.
	ClassificationType   ClassificationType `protobuf:"varint,1,opt,name=classification_type,json=classificationType,proto3,enum=google.cloud.automl.v1.ClassificationType" json:"classification_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

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

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

var xxx_messageInfo_ImageClassificationDatasetMetadata proto.InternalMessageInfo

func (m *ImageClassificationDatasetMetadata) GetClassificationType() ClassificationType {
	if m != nil {
		return m.ClassificationType
	}
	return ClassificationType_CLASSIFICATION_TYPE_UNSPECIFIED
}

// Dataset metadata specific to image object detection.
type ImageObjectDetectionDatasetMetadata struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ImageObjectDetectionDatasetMetadata proto.InternalMessageInfo

// Model metadata for image classification.
type ImageClassificationModelMetadata struct {
	// Optional. The ID of the `base` model. If it is specified, the new model
	// will be created based on the `base` model. Otherwise, the new model will be
	// created from scratch. The `base` model must be in the same
	// `project` and `location` as the new model to create, and have the same
	// `model_type`.
	BaseModelId string `protobuf:"bytes,1,opt,name=base_model_id,json=baseModelId,proto3" json:"base_model_id,omitempty"`
	// The train budget of creating this model, expressed in milli node
	// hours i.e. 1,000 value in this field means 1 node hour. The actual
	// `train_cost` will be equal or less than this value. If further model
	// training ceases to provide any improvements, it will stop without using
	// full budget and the stop_reason will be `MODEL_CONVERGED`.
	// Note, node_hour  = actual_hour * number_of_nodes_invovled.
	// For model type `cloud`(default), the train budget must be between 8,000
	// and 800,000 milli node hours, inclusive. The default value is 192, 000
	// which represents one day in wall time. For model type
	// `mobile-low-latency-1`, `mobile-versatile-1`, `mobile-high-accuracy-1`,
	// `mobile-core-ml-low-latency-1`, `mobile-core-ml-versatile-1`,
	// `mobile-core-ml-high-accuracy-1`, the train budget must be between 1,000
	// and 100,000 milli node hours, inclusive. The default value is 24, 000 which
	// represents one day in wall time.
	TrainBudgetMilliNodeHours int64 `protobuf:"varint,16,opt,name=train_budget_milli_node_hours,json=trainBudgetMilliNodeHours,proto3" json:"train_budget_milli_node_hours,omitempty"`
	// Output only. The actual train cost of creating this model, expressed in
	// milli node hours, i.e. 1,000 value in this field means 1 node hour.
	// Guaranteed to not exceed the train budget.
	TrainCostMilliNodeHours int64 `protobuf:"varint,17,opt,name=train_cost_milli_node_hours,json=trainCostMilliNodeHours,proto3" json:"train_cost_milli_node_hours,omitempty"`
	// Output only. The reason that this create model operation stopped,
	// e.g. `BUDGET_REACHED`, `MODEL_CONVERGED`.
	StopReason string `protobuf:"bytes,5,opt,name=stop_reason,json=stopReason,proto3" json:"stop_reason,omitempty"`
	// Optional. Type of the model. The available values are:
	// *   `cloud` - Model to be used via prediction calls to AutoML API.
	//               This is the default value.
	// *   `mobile-low-latency-1` - A model that, in addition to providing
	//               prediction via AutoML API, can also be exported (see
	//               [AutoMl.ExportModel][google.cloud.automl.v1.AutoMl.ExportModel])
	//               and used on a mobile or edge device with TensorFlow
	//               afterwards. Expected to have low latency, but may have lower
	//               prediction quality than other models.
	// *   `mobile-versatile-1` - A model that, in addition to providing
	//               prediction via AutoML API, can also be exported (see
	//               [AutoMl.ExportModel][google.cloud.automl.v1.AutoMl.ExportModel])
	//               and used on a mobile or edge device with TensorFlow
	//               afterwards.
	// *   `mobile-high-accuracy-1` - A model that, in addition to providing
	//               prediction via AutoML API, can also be exported (see
	//               [AutoMl.ExportModel][google.cloud.automl.v1.AutoMl.ExportModel])
	//               and used on a mobile or edge device with TensorFlow
	//               afterwards.  Expected to have a higher latency, but should
	//               also have a higher prediction quality than other models.
	// *   `mobile-core-ml-low-latency-1` - A model that, in addition to providing
	//               prediction via AutoML API, can also be exported (see
	//               [AutoMl.ExportModel][google.cloud.automl.v1.AutoMl.ExportModel])
	//               and used on a mobile device with Core ML afterwards. Expected
	//               to have low latency, but may have lower prediction quality
	//               than other models.
	// *   `mobile-core-ml-versatile-1` - A model that, in addition to providing
	//               prediction via AutoML API, can also be exported (see
	//               [AutoMl.ExportModel][google.cloud.automl.v1.AutoMl.ExportModel])
	//               and used on a mobile device with Core ML afterwards.
	// *   `mobile-core-ml-high-accuracy-1` - A model that, in addition to
	//               providing prediction via AutoML API, can also be exported
	//               (see
	//               [AutoMl.ExportModel][google.cloud.automl.v1.AutoMl.ExportModel])
	//               and used on a mobile device with Core ML afterwards. Expected
	//               to have a higher latency, but should also have a higher
	//               prediction quality than other models.
	ModelType string `protobuf:"bytes,7,opt,name=model_type,json=modelType,proto3" json:"model_type,omitempty"`
	// Output only. An approximate number of online prediction QPS that can
	// be supported by this model per each node on which it is deployed.
	NodeQps float64 `protobuf:"fixed64,13,opt,name=node_qps,json=nodeQps,proto3" json:"node_qps,omitempty"`
	// Output only. The number of nodes this model is deployed on. A node is an
	// abstraction of a machine resource, which can handle online prediction QPS
	// as given in the node_qps field.
	NodeCount            int64    `protobuf:"varint,14,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ImageClassificationModelMetadata) Reset()         { *m = ImageClassificationModelMetadata{} }
func (m *ImageClassificationModelMetadata) String() string { return proto.CompactTextString(m) }
func (*ImageClassificationModelMetadata) ProtoMessage()    {}
func (*ImageClassificationModelMetadata) Descriptor() ([]byte, []int) {
	return fileDescriptor_651f5a2c51022614, []int{2}
}

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

var xxx_messageInfo_ImageClassificationModelMetadata proto.InternalMessageInfo

func (m *ImageClassificationModelMetadata) GetBaseModelId() string {
	if m != nil {
		return m.BaseModelId
	}
	return ""
}

func (m *ImageClassificationModelMetadata) GetTrainBudgetMilliNodeHours() int64 {
	if m != nil {
		return m.TrainBudgetMilliNodeHours
	}
	return 0
}

func (m *ImageClassificationModelMetadata) GetTrainCostMilliNodeHours() int64 {
	if m != nil {
		return m.TrainCostMilliNodeHours
	}
	return 0
}

func (m *ImageClassificationModelMetadata) GetStopReason() string {
	if m != nil {
		return m.StopReason
	}
	return ""
}

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

func (m *ImageClassificationModelMetadata) GetNodeQps() float64 {
	if m != nil {
		return m.NodeQps
	}
	return 0
}

func (m *ImageClassificationModelMetadata) GetNodeCount() int64 {
	if m != nil {
		return m.NodeCount
	}
	return 0
}

// Model metadata specific to image object detection.
type ImageObjectDetectionModelMetadata struct {
	// Optional. Type of the model. The available values are:
	// *   `cloud-high-accuracy-1` - (default) A model to be used via prediction
	//               calls to AutoML API. Expected to have a higher latency, but
	//               should also have a higher prediction quality than other
	//               models.
	// *   `cloud-low-latency-1` -  A model to be used via prediction
	//               calls to AutoML API. Expected to have low latency, but may
	//               have lower prediction quality than other models.
	ModelType string `protobuf:"bytes,1,opt,name=model_type,json=modelType,proto3" json:"model_type,omitempty"`
	// Output only. The number of nodes this model is deployed on. A node is an
	// abstraction of a machine resource, which can handle online prediction QPS
	// as given in the qps_per_node field.
	NodeCount int64 `protobuf:"varint,3,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
	// Output only. An approximate number of online prediction QPS that can
	// be supported by this model per each node on which it is deployed.
	NodeQps float64 `protobuf:"fixed64,4,opt,name=node_qps,json=nodeQps,proto3" json:"node_qps,omitempty"`
	// Output only. The reason that this create model operation stopped,
	// e.g. `BUDGET_REACHED`, `MODEL_CONVERGED`.
	StopReason string `protobuf:"bytes,5,opt,name=stop_reason,json=stopReason,proto3" json:"stop_reason,omitempty"`
	// The train budget of creating this model, expressed in milli node
	// hours i.e. 1,000 value in this field means 1 node hour. The actual
	// `train_cost` will be equal or less than this value. If further model
	// training ceases to provide any improvements, it will stop without using
	// full budget and the stop_reason will be `MODEL_CONVERGED`.
	// Note, node_hour  = actual_hour * number_of_nodes_invovled.
	// For model type `cloud-high-accuracy-1`(default) and `cloud-low-latency-1`,
	// the train budget must be between 20,000 and 900,000 milli node hours,
	// inclusive. The default value is 216, 000 which represents one day in
	// wall time.
	// For model type `mobile-low-latency-1`, `mobile-versatile-1`,
	// `mobile-high-accuracy-1`, `mobile-core-ml-low-latency-1`,
	// `mobile-core-ml-versatile-1`, `mobile-core-ml-high-accuracy-1`, the train
	// budget must be between 1,000 and 100,000 milli node hours, inclusive.
	// The default value is 24, 000 which represents one day in wall time.
	TrainBudgetMilliNodeHours int64 `protobuf:"varint,6,opt,name=train_budget_milli_node_hours,json=trainBudgetMilliNodeHours,proto3" json:"train_budget_milli_node_hours,omitempty"`
	// Output only. The actual train cost of creating this model, expressed in
	// milli node hours, i.e. 1,000 value in this field means 1 node hour.
	// Guaranteed to not exceed the train budget.
	TrainCostMilliNodeHours int64    `protobuf:"varint,7,opt,name=train_cost_milli_node_hours,json=trainCostMilliNodeHours,proto3" json:"train_cost_milli_node_hours,omitempty"`
	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
	XXX_unrecognized        []byte   `json:"-"`
	XXX_sizecache           int32    `json:"-"`
}

func (m *ImageObjectDetectionModelMetadata) Reset()         { *m = ImageObjectDetectionModelMetadata{} }
func (m *ImageObjectDetectionModelMetadata) String() string { return proto.CompactTextString(m) }
func (*ImageObjectDetectionModelMetadata) ProtoMessage()    {}
func (*ImageObjectDetectionModelMetadata) Descriptor() ([]byte, []int) {
	return fileDescriptor_651f5a2c51022614, []int{3}
}

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

var xxx_messageInfo_ImageObjectDetectionModelMetadata proto.InternalMessageInfo

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

func (m *ImageObjectDetectionModelMetadata) GetNodeCount() int64 {
	if m != nil {
		return m.NodeCount
	}
	return 0
}

func (m *ImageObjectDetectionModelMetadata) GetNodeQps() float64 {
	if m != nil {
		return m.NodeQps
	}
	return 0
}

func (m *ImageObjectDetectionModelMetadata) GetStopReason() string {
	if m != nil {
		return m.StopReason
	}
	return ""
}

func (m *ImageObjectDetectionModelMetadata) GetTrainBudgetMilliNodeHours() int64 {
	if m != nil {
		return m.TrainBudgetMilliNodeHours
	}
	return 0
}

func (m *ImageObjectDetectionModelMetadata) GetTrainCostMilliNodeHours() int64 {
	if m != nil {
		return m.TrainCostMilliNodeHours
	}
	return 0
}

// Model deployment metadata specific to Image Classification.
type ImageClassificationModelDeploymentMetadata struct {
	// Input only. The number of nodes to deploy the model on. A node is an
	// abstraction of a machine resource, which can handle online prediction QPS
	// as given in the model's
	//
	// [node_qps][google.cloud.automl.v1.ImageClassificationModelMetadata.node_qps].
	// Must be between 1 and 100, inclusive on both ends.
	NodeCount            int64    `protobuf:"varint,1,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ImageClassificationModelDeploymentMetadata) Reset() {
	*m = ImageClassificationModelDeploymentMetadata{}
}
func (m *ImageClassificationModelDeploymentMetadata) String() string {
	return proto.CompactTextString(m)
}
func (*ImageClassificationModelDeploymentMetadata) ProtoMessage() {}
func (*ImageClassificationModelDeploymentMetadata) Descriptor() ([]byte, []int) {
	return fileDescriptor_651f5a2c51022614, []int{4}
}

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

var xxx_messageInfo_ImageClassificationModelDeploymentMetadata proto.InternalMessageInfo

func (m *ImageClassificationModelDeploymentMetadata) GetNodeCount() int64 {
	if m != nil {
		return m.NodeCount
	}
	return 0
}

// Model deployment metadata specific to Image Object Detection.
type ImageObjectDetectionModelDeploymentMetadata struct {
	// Input only. The number of nodes to deploy the model on. A node is an
	// abstraction of a machine resource, which can handle online prediction QPS
	// as given in the model's
	//
	// [qps_per_node][google.cloud.automl.v1.ImageObjectDetectionModelMetadata.qps_per_node].
	// Must be between 1 and 100, inclusive on both ends.
	NodeCount            int64    `protobuf:"varint,1,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ImageObjectDetectionModelDeploymentMetadata) Reset() {
	*m = ImageObjectDetectionModelDeploymentMetadata{}
}
func (m *ImageObjectDetectionModelDeploymentMetadata) String() string {
	return proto.CompactTextString(m)
}
func (*ImageObjectDetectionModelDeploymentMetadata) ProtoMessage() {}
func (*ImageObjectDetectionModelDeploymentMetadata) Descriptor() ([]byte, []int) {
	return fileDescriptor_651f5a2c51022614, []int{5}
}

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

var xxx_messageInfo_ImageObjectDetectionModelDeploymentMetadata proto.InternalMessageInfo

func (m *ImageObjectDetectionModelDeploymentMetadata) GetNodeCount() int64 {
	if m != nil {
		return m.NodeCount
	}
	return 0
}

func init() {
	proto.RegisterType((*ImageClassificationDatasetMetadata)(nil), "google.cloud.automl.v1.ImageClassificationDatasetMetadata")
	proto.RegisterType((*ImageObjectDetectionDatasetMetadata)(nil), "google.cloud.automl.v1.ImageObjectDetectionDatasetMetadata")
	proto.RegisterType((*ImageClassificationModelMetadata)(nil), "google.cloud.automl.v1.ImageClassificationModelMetadata")
	proto.RegisterType((*ImageObjectDetectionModelMetadata)(nil), "google.cloud.automl.v1.ImageObjectDetectionModelMetadata")
	proto.RegisterType((*ImageClassificationModelDeploymentMetadata)(nil), "google.cloud.automl.v1.ImageClassificationModelDeploymentMetadata")
	proto.RegisterType((*ImageObjectDetectionModelDeploymentMetadata)(nil), "google.cloud.automl.v1.ImageObjectDetectionModelDeploymentMetadata")
}

func init() { proto.RegisterFile("google/cloud/automl/v1/image.proto", fileDescriptor_651f5a2c51022614) }

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