swh:1:snp:e77894886b450c6109aac4a3cdd519d6ed38b51f
Raw File
Tip revision: 4e99caaddaf164f78e5aa1d3d12f0daa8a4f6fab authored by hougang liu on 21 December 2018, 14:46:13 UTC
add hougangliu as a reviewer
Tip revision: 4e99caa
api.pb.go
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: api.proto

/*
Package api is a generated protocol buffer package.

It is generated from these files:
	api.proto

It has these top-level messages:
	FeasibleSpace
	ParameterConfig
	Parameter
	MetricsLogSet
	Metrics
	MetricsValueTime
	MetricsLog
	SuggestionParameter
	EarlyStoppingParameter
	Tag
	StudyOverview
	Trial
	VolumeConf
	Worker
	StudyConfig
	CreateStudyRequest
	CreateStudyReply
	StopStudyReply
	GetStudyRequest
	GetStudyReply
	GetStudyListRequest
	GetStudyListReply
	CreateTrialRequest
	CreateTrialReply
	GetTrialsRequest
	GetTrialsReply
	RegisterWorkerRequest
	RegisterWorkerReply
	StopWorkersRequest
	StopWorkersReply
	GetWorkersRequest
	GetWorkersReply
	UpdateWorkerStateRequest
	UpdateWorkerStateReply
	GetWorkerFullInfoRequest
	WorkerFullInfo
	GetWorkerFullInfoReply
	GetSuggestionsRequest
	GetSuggestionsReply
	GetShouldStopWorkersRequest
	GetShouldStopWorkersReply
	GetMetricsRequest
	GetMetricsReply
	ReportMetricsLogsRequest
	ReportMetricsLogsReply
	ModelInfo
	DataSetInfo
	SaveStudyRequest
	SaveStudyReply
	SaveModelRequest
	SaveModelReply
	GetSavedStudiesRequest
	GetSavedStudiesReply
	GetSavedModelsRequest
	GetSavedModelsReply
	GetSavedModelRequest
	GetSavedModelReply
	SetSuggestionParametersRequest
	SetSuggestionParametersReply
	GetSuggestionParametersRequest
	GetSuggestionParametersReply
	GetSuggestionParameterListRequest
	SuggestionParameterSet
	GetSuggestionParameterListReply
	StopSuggestionRequest
	StopSuggestionReply
	SetEarlyStoppingParametersRequest
	SetEarlyStoppingParametersReply
	GetEarlyStoppingParametersRequest
	GetEarlyStoppingParametersReply
	GetEarlyStoppingParameterListRequest
	EarlyStoppingParameterSet
	GetEarlyStoppingParameterListReply
*/
package api

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google.golang.org/genproto/googleapis/api/annotations"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

type ParameterType int32

const (
	// Not used
	ParameterType_UNKNOWN_TYPE ParameterType = 0
	ParameterType_DOUBLE       ParameterType = 1
	ParameterType_INT          ParameterType = 2
	ParameterType_DISCRETE     ParameterType = 3
	ParameterType_CATEGORICAL  ParameterType = 4
)

var ParameterType_name = map[int32]string{
	0: "UNKNOWN_TYPE",
	1: "DOUBLE",
	2: "INT",
	3: "DISCRETE",
	4: "CATEGORICAL",
}
var ParameterType_value = map[string]int32{
	"UNKNOWN_TYPE": 0,
	"DOUBLE":       1,
	"INT":          2,
	"DISCRETE":     3,
	"CATEGORICAL":  4,
}

func (x ParameterType) String() string {
	return proto.EnumName(ParameterType_name, int32(x))
}
func (ParameterType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

type OptimizationType int32

const (
	// Not used
	OptimizationType_UNKNOWN_OPTIMIZATION OptimizationType = 0
	OptimizationType_MINIMIZE             OptimizationType = 1
	OptimizationType_MAXIMIZE             OptimizationType = 2
)

var OptimizationType_name = map[int32]string{
	0: "UNKNOWN_OPTIMIZATION",
	1: "MINIMIZE",
	2: "MAXIMIZE",
}
var OptimizationType_value = map[string]int32{
	"UNKNOWN_OPTIMIZATION": 0,
	"MINIMIZE":             1,
	"MAXIMIZE":             2,
}

func (x OptimizationType) String() string {
	return proto.EnumName(OptimizationType_name, int32(x))
}
func (OptimizationType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

// This value is stored as TINYINT in MySQL.
type State int32

const (
	State_PENDING   State = 0
	State_RUNNING   State = 1
	State_COMPLETED State = 2
	State_KILLED    State = 3
	State_ERROR     State = 120
)

var State_name = map[int32]string{
	0:   "PENDING",
	1:   "RUNNING",
	2:   "COMPLETED",
	3:   "KILLED",
	120: "ERROR",
}
var State_value = map[string]int32{
	"PENDING":   0,
	"RUNNING":   1,
	"COMPLETED": 2,
	"KILLED":    3,
	"ERROR":     120,
}

func (x State) String() string {
	return proto.EnumName(State_name, int32(x))
}
func (State) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

type FeasibleSpace struct {
	Max  string   `protobuf:"bytes,1,opt,name=max" json:"max,omitempty"`
	Min  string   `protobuf:"bytes,2,opt,name=min" json:"min,omitempty"`
	List []string `protobuf:"bytes,3,rep,name=list" json:"list,omitempty"`
}

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

func (m *FeasibleSpace) GetMax() string {
	if m != nil {
		return m.Max
	}
	return ""
}

func (m *FeasibleSpace) GetMin() string {
	if m != nil {
		return m.Min
	}
	return ""
}

func (m *FeasibleSpace) GetList() []string {
	if m != nil {
		return m.List
	}
	return nil
}

type ParameterConfig struct {
	Name          string        `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	ParameterType ParameterType `protobuf:"varint,2,opt,name=parameter_type,json=parameterType,enum=api.ParameterType" json:"parameter_type,omitempty"`
	// The following values defines a feasible parameter space.
	Feasible *FeasibleSpace `protobuf:"bytes,3,opt,name=feasible" json:"feasible,omitempty"`
}

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

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

func (m *ParameterConfig) GetParameterType() ParameterType {
	if m != nil {
		return m.ParameterType
	}
	return ParameterType_UNKNOWN_TYPE
}

func (m *ParameterConfig) GetFeasible() *FeasibleSpace {
	if m != nil {
		return m.Feasible
	}
	return nil
}

type Parameter struct {
	Name          string        `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	ParameterType ParameterType `protobuf:"varint,2,opt,name=parameter_type,json=parameterType,enum=api.ParameterType" json:"parameter_type,omitempty"`
	Value         string        `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
}

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

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

func (m *Parameter) GetParameterType() ParameterType {
	if m != nil {
		return m.ParameterType
	}
	return ParameterType_UNKNOWN_TYPE
}

func (m *Parameter) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type MetricsLogSet struct {
	WorkerId     string        `protobuf:"bytes,1,opt,name=worker_id,json=workerId" json:"worker_id,omitempty"`
	MetricsLogs  []*MetricsLog `protobuf:"bytes,2,rep,name=metrics_logs,json=metricsLogs" json:"metrics_logs,omitempty"`
	WorkerStatus State         `protobuf:"varint,3,opt,name=worker_status,json=workerStatus,enum=api.State" json:"worker_status,omitempty"`
}

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

func (m *MetricsLogSet) GetWorkerId() string {
	if m != nil {
		return m.WorkerId
	}
	return ""
}

func (m *MetricsLogSet) GetMetricsLogs() []*MetricsLog {
	if m != nil {
		return m.MetricsLogs
	}
	return nil
}

func (m *MetricsLogSet) GetWorkerStatus() State {
	if m != nil {
		return m.WorkerStatus
	}
	return State_PENDING
}

type Metrics struct {
	Name  string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

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

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

func (m *Metrics) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type MetricsValueTime struct {
	Time  string `protobuf:"bytes,1,opt,name=time" json:"time,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

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

func (m *MetricsValueTime) GetTime() string {
	if m != nil {
		return m.Time
	}
	return ""
}

func (m *MetricsValueTime) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type MetricsLog struct {
	Name   string              `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Values []*MetricsValueTime `protobuf:"bytes,2,rep,name=values" json:"values,omitempty"`
}

func (m *MetricsLog) Reset()                    { *m = MetricsLog{} }
func (m *MetricsLog) String() string            { return proto.CompactTextString(m) }
func (*MetricsLog) ProtoMessage()               {}
func (*MetricsLog) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

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

func (m *MetricsLog) GetValues() []*MetricsValueTime {
	if m != nil {
		return m.Values
	}
	return nil
}

type SuggestionParameter struct {
	Name  string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (m *SuggestionParameter) Reset()                    { *m = SuggestionParameter{} }
func (m *SuggestionParameter) String() string            { return proto.CompactTextString(m) }
func (*SuggestionParameter) ProtoMessage()               {}
func (*SuggestionParameter) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

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

func (m *SuggestionParameter) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type EarlyStoppingParameter struct {
	Name  string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (m *EarlyStoppingParameter) Reset()                    { *m = EarlyStoppingParameter{} }
func (m *EarlyStoppingParameter) String() string            { return proto.CompactTextString(m) }
func (*EarlyStoppingParameter) ProtoMessage()               {}
func (*EarlyStoppingParameter) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }

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

func (m *EarlyStoppingParameter) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type Tag struct {
	Name  string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (m *Tag) Reset()                    { *m = Tag{} }
func (m *Tag) String() string            { return proto.CompactTextString(m) }
func (*Tag) ProtoMessage()               {}
func (*Tag) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }

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

func (m *Tag) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type StudyOverview struct {
	Name        string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Owner       string `protobuf:"bytes,2,opt,name=owner" json:"owner,omitempty"`
	Id          string `protobuf:"bytes,3,opt,name=id" json:"id,omitempty"`
	Description string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
}

func (m *StudyOverview) Reset()                    { *m = StudyOverview{} }
func (m *StudyOverview) String() string            { return proto.CompactTextString(m) }
func (*StudyOverview) ProtoMessage()               {}
func (*StudyOverview) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }

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

func (m *StudyOverview) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

func (m *StudyOverview) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

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

type Trial struct {
	TrialId        string       `protobuf:"bytes,1,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"`
	StudyId        string       `protobuf:"bytes,2,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	ParameterSet   []*Parameter `protobuf:"bytes,3,rep,name=parameter_set,json=parameterSet" json:"parameter_set,omitempty"`
	ObjectiveValue string       `protobuf:"bytes,4,opt,name=objective_value,json=objectiveValue" json:"objective_value,omitempty"`
	Tags           []*Tag       `protobuf:"bytes,5,rep,name=tags" json:"tags,omitempty"`
}

func (m *Trial) Reset()                    { *m = Trial{} }
func (m *Trial) String() string            { return proto.CompactTextString(m) }
func (*Trial) ProtoMessage()               {}
func (*Trial) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }

func (m *Trial) GetTrialId() string {
	if m != nil {
		return m.TrialId
	}
	return ""
}

func (m *Trial) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *Trial) GetParameterSet() []*Parameter {
	if m != nil {
		return m.ParameterSet
	}
	return nil
}

func (m *Trial) GetObjectiveValue() string {
	if m != nil {
		return m.ObjectiveValue
	}
	return ""
}

func (m *Trial) GetTags() []*Tag {
	if m != nil {
		return m.Tags
	}
	return nil
}

type VolumeConf struct {
	Name      string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	PvcName   string `protobuf:"bytes,2,opt,name=pvc_name,json=pvcName" json:"pvc_name,omitempty"`
	MountPath string `protobuf:"bytes,3,opt,name=mount_path,json=mountPath" json:"mount_path,omitempty"`
}

func (m *VolumeConf) Reset()                    { *m = VolumeConf{} }
func (m *VolumeConf) String() string            { return proto.CompactTextString(m) }
func (*VolumeConf) ProtoMessage()               {}
func (*VolumeConf) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }

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

func (m *VolumeConf) GetPvcName() string {
	if m != nil {
		return m.PvcName
	}
	return ""
}

func (m *VolumeConf) GetMountPath() string {
	if m != nil {
		return m.MountPath
	}
	return ""
}

type Worker struct {
	WorkerId     string `protobuf:"bytes,1,opt,name=worker_id,json=workerId" json:"worker_id,omitempty"`
	StudyId      string `protobuf:"bytes,2,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	TrialId      string `protobuf:"bytes,3,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"`
	Type         string `protobuf:"bytes,4,opt,name=Type" json:"Type,omitempty"`
	Status       State  `protobuf:"varint,5,opt,name=status,enum=api.State" json:"status,omitempty"`
	TemplatePath string `protobuf:"bytes,6,opt,name=TemplatePath" json:"TemplatePath,omitempty"`
	Tags         []*Tag `protobuf:"bytes,7,rep,name=tags" json:"tags,omitempty"`
}

func (m *Worker) Reset()                    { *m = Worker{} }
func (m *Worker) String() string            { return proto.CompactTextString(m) }
func (*Worker) ProtoMessage()               {}
func (*Worker) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }

func (m *Worker) GetWorkerId() string {
	if m != nil {
		return m.WorkerId
	}
	return ""
}

func (m *Worker) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *Worker) GetTrialId() string {
	if m != nil {
		return m.TrialId
	}
	return ""
}

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

func (m *Worker) GetStatus() State {
	if m != nil {
		return m.Status
	}
	return State_PENDING
}

func (m *Worker) GetTemplatePath() string {
	if m != nil {
		return m.TemplatePath
	}
	return ""
}

func (m *Worker) GetTags() []*Tag {
	if m != nil {
		return m.Tags
	}
	return nil
}

type StudyConfig struct {
	Name               string                        `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Owner              string                        `protobuf:"bytes,2,opt,name=owner" json:"owner,omitempty"`
	OptimizationType   OptimizationType              `protobuf:"varint,3,opt,name=optimization_type,json=optimizationType,enum=api.OptimizationType" json:"optimization_type,omitempty"`
	OptimizationGoal   float64                       `protobuf:"fixed64,4,opt,name=optimization_goal,json=optimizationGoal" json:"optimization_goal,omitempty"`
	ParameterConfigs   *StudyConfig_ParameterConfigs `protobuf:"bytes,5,opt,name=parameter_configs,json=parameterConfigs" json:"parameter_configs,omitempty"`
	AccessPermissions  []string                      `protobuf:"bytes,6,rep,name=access_permissions,json=accessPermissions" json:"access_permissions,omitempty"`
	Tags               []*Tag                        `protobuf:"bytes,7,rep,name=tags" json:"tags,omitempty"`
	ObjectiveValueName string                        `protobuf:"bytes,8,opt,name=objective_value_name,json=objectiveValueName" json:"objective_value_name,omitempty"`
	Metrics            []string                      `protobuf:"bytes,9,rep,name=metrics" json:"metrics,omitempty"`
	JobId              string                        `protobuf:"bytes,10,opt,name=jobId" json:"jobId,omitempty"`
}

func (m *StudyConfig) Reset()                    { *m = StudyConfig{} }
func (m *StudyConfig) String() string            { return proto.CompactTextString(m) }
func (*StudyConfig) ProtoMessage()               {}
func (*StudyConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }

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

func (m *StudyConfig) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

func (m *StudyConfig) GetOptimizationType() OptimizationType {
	if m != nil {
		return m.OptimizationType
	}
	return OptimizationType_UNKNOWN_OPTIMIZATION
}

func (m *StudyConfig) GetOptimizationGoal() float64 {
	if m != nil {
		return m.OptimizationGoal
	}
	return 0
}

func (m *StudyConfig) GetParameterConfigs() *StudyConfig_ParameterConfigs {
	if m != nil {
		return m.ParameterConfigs
	}
	return nil
}

func (m *StudyConfig) GetAccessPermissions() []string {
	if m != nil {
		return m.AccessPermissions
	}
	return nil
}

func (m *StudyConfig) GetTags() []*Tag {
	if m != nil {
		return m.Tags
	}
	return nil
}

func (m *StudyConfig) GetObjectiveValueName() string {
	if m != nil {
		return m.ObjectiveValueName
	}
	return ""
}

func (m *StudyConfig) GetMetrics() []string {
	if m != nil {
		return m.Metrics
	}
	return nil
}

func (m *StudyConfig) GetJobId() string {
	if m != nil {
		return m.JobId
	}
	return ""
}

type StudyConfig_ParameterConfigs struct {
	Configs []*ParameterConfig `protobuf:"bytes,1,rep,name=configs" json:"configs,omitempty"`
}

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

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

type CreateStudyRequest struct {
	StudyConfig *StudyConfig `protobuf:"bytes,1,opt,name=study_config,json=studyConfig" json:"study_config,omitempty"`
}

func (m *CreateStudyRequest) Reset()                    { *m = CreateStudyRequest{} }
func (m *CreateStudyRequest) String() string            { return proto.CompactTextString(m) }
func (*CreateStudyRequest) ProtoMessage()               {}
func (*CreateStudyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }

func (m *CreateStudyRequest) GetStudyConfig() *StudyConfig {
	if m != nil {
		return m.StudyConfig
	}
	return nil
}

type CreateStudyReply struct {
	StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
}

func (m *CreateStudyReply) Reset()                    { *m = CreateStudyReply{} }
func (m *CreateStudyReply) String() string            { return proto.CompactTextString(m) }
func (*CreateStudyReply) ProtoMessage()               {}
func (*CreateStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }

func (m *CreateStudyReply) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

type StopStudyReply struct {
}

func (m *StopStudyReply) Reset()                    { *m = StopStudyReply{} }
func (m *StopStudyReply) String() string            { return proto.CompactTextString(m) }
func (*StopStudyReply) ProtoMessage()               {}
func (*StopStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }

type GetStudyRequest struct {
	StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
}

func (m *GetStudyRequest) Reset()                    { *m = GetStudyRequest{} }
func (m *GetStudyRequest) String() string            { return proto.CompactTextString(m) }
func (*GetStudyRequest) ProtoMessage()               {}
func (*GetStudyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }

func (m *GetStudyRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

type GetStudyReply struct {
	StudyConfig *StudyConfig `protobuf:"bytes,1,opt,name=study_config,json=studyConfig" json:"study_config,omitempty"`
}

func (m *GetStudyReply) Reset()                    { *m = GetStudyReply{} }
func (m *GetStudyReply) String() string            { return proto.CompactTextString(m) }
func (*GetStudyReply) ProtoMessage()               {}
func (*GetStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }

func (m *GetStudyReply) GetStudyConfig() *StudyConfig {
	if m != nil {
		return m.StudyConfig
	}
	return nil
}

type GetStudyListRequest struct {
}

func (m *GetStudyListRequest) Reset()                    { *m = GetStudyListRequest{} }
func (m *GetStudyListRequest) String() string            { return proto.CompactTextString(m) }
func (*GetStudyListRequest) ProtoMessage()               {}
func (*GetStudyListRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }

type GetStudyListReply struct {
	StudyOverviews []*StudyOverview `protobuf:"bytes,1,rep,name=study_overviews,json=studyOverviews" json:"study_overviews,omitempty"`
}

func (m *GetStudyListReply) Reset()                    { *m = GetStudyListReply{} }
func (m *GetStudyListReply) String() string            { return proto.CompactTextString(m) }
func (*GetStudyListReply) ProtoMessage()               {}
func (*GetStudyListReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }

func (m *GetStudyListReply) GetStudyOverviews() []*StudyOverview {
	if m != nil {
		return m.StudyOverviews
	}
	return nil
}

type CreateTrialRequest struct {
	Trial *Trial `protobuf:"bytes,1,opt,name=trial" json:"trial,omitempty"`
}

func (m *CreateTrialRequest) Reset()                    { *m = CreateTrialRequest{} }
func (m *CreateTrialRequest) String() string            { return proto.CompactTextString(m) }
func (*CreateTrialRequest) ProtoMessage()               {}
func (*CreateTrialRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }

func (m *CreateTrialRequest) GetTrial() *Trial {
	if m != nil {
		return m.Trial
	}
	return nil
}

type CreateTrialReply struct {
	TrialId string `protobuf:"bytes,1,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"`
}

func (m *CreateTrialReply) Reset()                    { *m = CreateTrialReply{} }
func (m *CreateTrialReply) String() string            { return proto.CompactTextString(m) }
func (*CreateTrialReply) ProtoMessage()               {}
func (*CreateTrialReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }

func (m *CreateTrialReply) GetTrialId() string {
	if m != nil {
		return m.TrialId
	}
	return ""
}

type GetTrialsRequest struct {
	StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
}

func (m *GetTrialsRequest) Reset()                    { *m = GetTrialsRequest{} }
func (m *GetTrialsRequest) String() string            { return proto.CompactTextString(m) }
func (*GetTrialsRequest) ProtoMessage()               {}
func (*GetTrialsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }

func (m *GetTrialsRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

type GetTrialsReply struct {
	Trials []*Trial `protobuf:"bytes,1,rep,name=trials" json:"trials,omitempty"`
}

func (m *GetTrialsReply) Reset()                    { *m = GetTrialsReply{} }
func (m *GetTrialsReply) String() string            { return proto.CompactTextString(m) }
func (*GetTrialsReply) ProtoMessage()               {}
func (*GetTrialsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }

func (m *GetTrialsReply) GetTrials() []*Trial {
	if m != nil {
		return m.Trials
	}
	return nil
}

type RegisterWorkerRequest struct {
	Worker *Worker `protobuf:"bytes,1,opt,name=worker" json:"worker,omitempty"`
}

func (m *RegisterWorkerRequest) Reset()                    { *m = RegisterWorkerRequest{} }
func (m *RegisterWorkerRequest) String() string            { return proto.CompactTextString(m) }
func (*RegisterWorkerRequest) ProtoMessage()               {}
func (*RegisterWorkerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }

func (m *RegisterWorkerRequest) GetWorker() *Worker {
	if m != nil {
		return m.Worker
	}
	return nil
}

type RegisterWorkerReply struct {
	WorkerId string `protobuf:"bytes,1,opt,name=worker_id,json=workerId" json:"worker_id,omitempty"`
}

func (m *RegisterWorkerReply) Reset()                    { *m = RegisterWorkerReply{} }
func (m *RegisterWorkerReply) String() string            { return proto.CompactTextString(m) }
func (*RegisterWorkerReply) ProtoMessage()               {}
func (*RegisterWorkerReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }

func (m *RegisterWorkerReply) GetWorkerId() string {
	if m != nil {
		return m.WorkerId
	}
	return ""
}

type StopWorkersRequest struct {
	StudyId    string   `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	WorkerIds  []string `protobuf:"bytes,2,rep,name=worker_ids,json=workerIds" json:"worker_ids,omitempty"`
	IsComplete bool     `protobuf:"varint,3,opt,name=is_complete,json=isComplete" json:"is_complete,omitempty"`
}

func (m *StopWorkersRequest) Reset()                    { *m = StopWorkersRequest{} }
func (m *StopWorkersRequest) String() string            { return proto.CompactTextString(m) }
func (*StopWorkersRequest) ProtoMessage()               {}
func (*StopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }

func (m *StopWorkersRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *StopWorkersRequest) GetWorkerIds() []string {
	if m != nil {
		return m.WorkerIds
	}
	return nil
}

func (m *StopWorkersRequest) GetIsComplete() bool {
	if m != nil {
		return m.IsComplete
	}
	return false
}

type StopWorkersReply struct {
}

func (m *StopWorkersReply) Reset()                    { *m = StopWorkersReply{} }
func (m *StopWorkersReply) String() string            { return proto.CompactTextString(m) }
func (*StopWorkersReply) ProtoMessage()               {}
func (*StopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }

type GetWorkersRequest struct {
	StudyId  string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	TrialId  string `protobuf:"bytes,2,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"`
	WorkerId string `protobuf:"bytes,3,opt,name=worker_id,json=workerId" json:"worker_id,omitempty"`
}

func (m *GetWorkersRequest) Reset()                    { *m = GetWorkersRequest{} }
func (m *GetWorkersRequest) String() string            { return proto.CompactTextString(m) }
func (*GetWorkersRequest) ProtoMessage()               {}
func (*GetWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }

func (m *GetWorkersRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *GetWorkersRequest) GetTrialId() string {
	if m != nil {
		return m.TrialId
	}
	return ""
}

func (m *GetWorkersRequest) GetWorkerId() string {
	if m != nil {
		return m.WorkerId
	}
	return ""
}

type GetWorkersReply struct {
	Workers []*Worker `protobuf:"bytes,1,rep,name=workers" json:"workers,omitempty"`
}

func (m *GetWorkersReply) Reset()                    { *m = GetWorkersReply{} }
func (m *GetWorkersReply) String() string            { return proto.CompactTextString(m) }
func (*GetWorkersReply) ProtoMessage()               {}
func (*GetWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }

func (m *GetWorkersReply) GetWorkers() []*Worker {
	if m != nil {
		return m.Workers
	}
	return nil
}

type UpdateWorkerStateRequest struct {
	WorkerId string `protobuf:"bytes,1,opt,name=worker_id,json=workerId" json:"worker_id,omitempty"`
	Status   State  `protobuf:"varint,2,opt,name=status,enum=api.State" json:"status,omitempty"`
}

func (m *UpdateWorkerStateRequest) Reset()                    { *m = UpdateWorkerStateRequest{} }
func (m *UpdateWorkerStateRequest) String() string            { return proto.CompactTextString(m) }
func (*UpdateWorkerStateRequest) ProtoMessage()               {}
func (*UpdateWorkerStateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }

func (m *UpdateWorkerStateRequest) GetWorkerId() string {
	if m != nil {
		return m.WorkerId
	}
	return ""
}

func (m *UpdateWorkerStateRequest) GetStatus() State {
	if m != nil {
		return m.Status
	}
	return State_PENDING
}

type UpdateWorkerStateReply struct {
}

func (m *UpdateWorkerStateReply) Reset()                    { *m = UpdateWorkerStateReply{} }
func (m *UpdateWorkerStateReply) String() string            { return proto.CompactTextString(m) }
func (*UpdateWorkerStateReply) ProtoMessage()               {}
func (*UpdateWorkerStateReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }

type GetWorkerFullInfoRequest struct {
	StudyId       string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	TrialId       string `protobuf:"bytes,2,opt,name=trial_id,json=trialId" json:"trial_id,omitempty"`
	WorkerId      string `protobuf:"bytes,3,opt,name=worker_id,json=workerId" json:"worker_id,omitempty"`
	OnlyLatestLog bool   `protobuf:"varint,4,opt,name=only_latest_log,json=onlyLatestLog" json:"only_latest_log,omitempty"`
}

func (m *GetWorkerFullInfoRequest) Reset()                    { *m = GetWorkerFullInfoRequest{} }
func (m *GetWorkerFullInfoRequest) String() string            { return proto.CompactTextString(m) }
func (*GetWorkerFullInfoRequest) ProtoMessage()               {}
func (*GetWorkerFullInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }

func (m *GetWorkerFullInfoRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *GetWorkerFullInfoRequest) GetTrialId() string {
	if m != nil {
		return m.TrialId
	}
	return ""
}

func (m *GetWorkerFullInfoRequest) GetWorkerId() string {
	if m != nil {
		return m.WorkerId
	}
	return ""
}

func (m *GetWorkerFullInfoRequest) GetOnlyLatestLog() bool {
	if m != nil {
		return m.OnlyLatestLog
	}
	return false
}

type WorkerFullInfo struct {
	Worker       *Worker       `protobuf:"bytes,1,opt,name=Worker" json:"Worker,omitempty"`
	ParameterSet []*Parameter  `protobuf:"bytes,2,rep,name=parameter_set,json=parameterSet" json:"parameter_set,omitempty"`
	MetricsLogs  []*MetricsLog `protobuf:"bytes,3,rep,name=metrics_logs,json=metricsLogs" json:"metrics_logs,omitempty"`
}

func (m *WorkerFullInfo) Reset()                    { *m = WorkerFullInfo{} }
func (m *WorkerFullInfo) String() string            { return proto.CompactTextString(m) }
func (*WorkerFullInfo) ProtoMessage()               {}
func (*WorkerFullInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }

func (m *WorkerFullInfo) GetWorker() *Worker {
	if m != nil {
		return m.Worker
	}
	return nil
}

func (m *WorkerFullInfo) GetParameterSet() []*Parameter {
	if m != nil {
		return m.ParameterSet
	}
	return nil
}

func (m *WorkerFullInfo) GetMetricsLogs() []*MetricsLog {
	if m != nil {
		return m.MetricsLogs
	}
	return nil
}

type GetWorkerFullInfoReply struct {
	WorkerFullInfos []*WorkerFullInfo `protobuf:"bytes,1,rep,name=worker_full_infos,json=workerFullInfos" json:"worker_full_infos,omitempty"`
}

func (m *GetWorkerFullInfoReply) Reset()                    { *m = GetWorkerFullInfoReply{} }
func (m *GetWorkerFullInfoReply) String() string            { return proto.CompactTextString(m) }
func (*GetWorkerFullInfoReply) ProtoMessage()               {}
func (*GetWorkerFullInfoReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }

func (m *GetWorkerFullInfoReply) GetWorkerFullInfos() []*WorkerFullInfo {
	if m != nil {
		return m.WorkerFullInfos
	}
	return nil
}

type GetSuggestionsRequest struct {
	StudyId             string   `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	SuggestionAlgorithm string   `protobuf:"bytes,2,opt,name=suggestion_algorithm,json=suggestionAlgorithm" json:"suggestion_algorithm,omitempty"`
	RequestNumber       int32    `protobuf:"varint,3,opt,name=request_number,json=requestNumber" json:"request_number,omitempty"`
	LogWorkerIds        []string `protobuf:"bytes,4,rep,name=log_worker_ids,json=logWorkerIds" json:"log_worker_ids,omitempty"`
	ParamId             string   `protobuf:"bytes,5,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
}

func (m *GetSuggestionsRequest) Reset()                    { *m = GetSuggestionsRequest{} }
func (m *GetSuggestionsRequest) String() string            { return proto.CompactTextString(m) }
func (*GetSuggestionsRequest) ProtoMessage()               {}
func (*GetSuggestionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }

func (m *GetSuggestionsRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *GetSuggestionsRequest) GetSuggestionAlgorithm() string {
	if m != nil {
		return m.SuggestionAlgorithm
	}
	return ""
}

func (m *GetSuggestionsRequest) GetRequestNumber() int32 {
	if m != nil {
		return m.RequestNumber
	}
	return 0
}

func (m *GetSuggestionsRequest) GetLogWorkerIds() []string {
	if m != nil {
		return m.LogWorkerIds
	}
	return nil
}

func (m *GetSuggestionsRequest) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

type GetSuggestionsReply struct {
	Trials []*Trial `protobuf:"bytes,1,rep,name=trials" json:"trials,omitempty"`
}

func (m *GetSuggestionsReply) Reset()                    { *m = GetSuggestionsReply{} }
func (m *GetSuggestionsReply) String() string            { return proto.CompactTextString(m) }
func (*GetSuggestionsReply) ProtoMessage()               {}
func (*GetSuggestionsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }

func (m *GetSuggestionsReply) GetTrials() []*Trial {
	if m != nil {
		return m.Trials
	}
	return nil
}

type GetShouldStopWorkersRequest struct {
	StudyId                string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	EarlyStoppingAlgorithm string `protobuf:"bytes,2,opt,name=early_stopping_algorithm,json=earlyStoppingAlgorithm" json:"early_stopping_algorithm,omitempty"`
	ParamId                string `protobuf:"bytes,5,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
}

func (m *GetShouldStopWorkersRequest) Reset()                    { *m = GetShouldStopWorkersRequest{} }
func (m *GetShouldStopWorkersRequest) String() string            { return proto.CompactTextString(m) }
func (*GetShouldStopWorkersRequest) ProtoMessage()               {}
func (*GetShouldStopWorkersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }

func (m *GetShouldStopWorkersRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *GetShouldStopWorkersRequest) GetEarlyStoppingAlgorithm() string {
	if m != nil {
		return m.EarlyStoppingAlgorithm
	}
	return ""
}

func (m *GetShouldStopWorkersRequest) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

type GetShouldStopWorkersReply struct {
	ShouldStopWorkerIds []string `protobuf:"bytes,1,rep,name=should_stop_worker_ids,json=shouldStopWorkerIds" json:"should_stop_worker_ids,omitempty"`
}

func (m *GetShouldStopWorkersReply) Reset()                    { *m = GetShouldStopWorkersReply{} }
func (m *GetShouldStopWorkersReply) String() string            { return proto.CompactTextString(m) }
func (*GetShouldStopWorkersReply) ProtoMessage()               {}
func (*GetShouldStopWorkersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }

func (m *GetShouldStopWorkersReply) GetShouldStopWorkerIds() []string {
	if m != nil {
		return m.ShouldStopWorkerIds
	}
	return nil
}

type GetMetricsRequest struct {
	StudyId      string   `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	WorkerIds    []string `protobuf:"bytes,2,rep,name=worker_ids,json=workerIds" json:"worker_ids,omitempty"`
	MetricsNames []string `protobuf:"bytes,3,rep,name=metrics_names,json=metricsNames" json:"metrics_names,omitempty"`
}

func (m *GetMetricsRequest) Reset()                    { *m = GetMetricsRequest{} }
func (m *GetMetricsRequest) String() string            { return proto.CompactTextString(m) }
func (*GetMetricsRequest) ProtoMessage()               {}
func (*GetMetricsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }

func (m *GetMetricsRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *GetMetricsRequest) GetWorkerIds() []string {
	if m != nil {
		return m.WorkerIds
	}
	return nil
}

func (m *GetMetricsRequest) GetMetricsNames() []string {
	if m != nil {
		return m.MetricsNames
	}
	return nil
}

type GetMetricsReply struct {
	MetricsLogSets []*MetricsLogSet `protobuf:"bytes,1,rep,name=metrics_log_sets,json=metricsLogSets" json:"metrics_log_sets,omitempty"`
}

func (m *GetMetricsReply) Reset()                    { *m = GetMetricsReply{} }
func (m *GetMetricsReply) String() string            { return proto.CompactTextString(m) }
func (*GetMetricsReply) ProtoMessage()               {}
func (*GetMetricsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }

func (m *GetMetricsReply) GetMetricsLogSets() []*MetricsLogSet {
	if m != nil {
		return m.MetricsLogSets
	}
	return nil
}

type ReportMetricsLogsRequest struct {
	StudyId        string           `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	MetricsLogSets []*MetricsLogSet `protobuf:"bytes,3,rep,name=metrics_log_sets,json=metricsLogSets" json:"metrics_log_sets,omitempty"`
}

func (m *ReportMetricsLogsRequest) Reset()                    { *m = ReportMetricsLogsRequest{} }
func (m *ReportMetricsLogsRequest) String() string            { return proto.CompactTextString(m) }
func (*ReportMetricsLogsRequest) ProtoMessage()               {}
func (*ReportMetricsLogsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }

func (m *ReportMetricsLogsRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *ReportMetricsLogsRequest) GetMetricsLogSets() []*MetricsLogSet {
	if m != nil {
		return m.MetricsLogSets
	}
	return nil
}

type ReportMetricsLogsReply struct {
}

func (m *ReportMetricsLogsReply) Reset()                    { *m = ReportMetricsLogsReply{} }
func (m *ReportMetricsLogsReply) String() string            { return proto.CompactTextString(m) }
func (*ReportMetricsLogsReply) ProtoMessage()               {}
func (*ReportMetricsLogsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }

type ModelInfo struct {
	StudyName  string       `protobuf:"bytes,1,opt,name=study_name,json=studyName" json:"study_name,omitempty"`
	WorkerId   string       `protobuf:"bytes,2,opt,name=worker_id,json=workerId" json:"worker_id,omitempty"`
	Parameters []*Parameter `protobuf:"bytes,3,rep,name=parameters" json:"parameters,omitempty"`
	Metrics    []*Metrics   `protobuf:"bytes,4,rep,name=metrics" json:"metrics,omitempty"`
	ModelPath  string       `protobuf:"bytes,5,opt,name=model_path,json=modelPath" json:"model_path,omitempty"`
}

func (m *ModelInfo) Reset()                    { *m = ModelInfo{} }
func (m *ModelInfo) String() string            { return proto.CompactTextString(m) }
func (*ModelInfo) ProtoMessage()               {}
func (*ModelInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }

func (m *ModelInfo) GetStudyName() string {
	if m != nil {
		return m.StudyName
	}
	return ""
}

func (m *ModelInfo) GetWorkerId() string {
	if m != nil {
		return m.WorkerId
	}
	return ""
}

func (m *ModelInfo) GetParameters() []*Parameter {
	if m != nil {
		return m.Parameters
	}
	return nil
}

func (m *ModelInfo) GetMetrics() []*Metrics {
	if m != nil {
		return m.Metrics
	}
	return nil
}

func (m *ModelInfo) GetModelPath() string {
	if m != nil {
		return m.ModelPath
	}
	return ""
}

type DataSetInfo struct {
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
}

func (m *DataSetInfo) Reset()                    { *m = DataSetInfo{} }
func (m *DataSetInfo) String() string            { return proto.CompactTextString(m) }
func (*DataSetInfo) ProtoMessage()               {}
func (*DataSetInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }

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

func (m *DataSetInfo) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

type SaveStudyRequest struct {
	StudyName   string `protobuf:"bytes,1,opt,name=study_name,json=studyName" json:"study_name,omitempty"`
	Owner       string `protobuf:"bytes,2,opt,name=owner" json:"owner,omitempty"`
	Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
}

func (m *SaveStudyRequest) Reset()                    { *m = SaveStudyRequest{} }
func (m *SaveStudyRequest) String() string            { return proto.CompactTextString(m) }
func (*SaveStudyRequest) ProtoMessage()               {}
func (*SaveStudyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }

func (m *SaveStudyRequest) GetStudyName() string {
	if m != nil {
		return m.StudyName
	}
	return ""
}

func (m *SaveStudyRequest) GetOwner() string {
	if m != nil {
		return m.Owner
	}
	return ""
}

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

type SaveStudyReply struct {
}

func (m *SaveStudyReply) Reset()                    { *m = SaveStudyReply{} }
func (m *SaveStudyReply) String() string            { return proto.CompactTextString(m) }
func (*SaveStudyReply) ProtoMessage()               {}
func (*SaveStudyReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }

type SaveModelRequest struct {
	Model       *ModelInfo   `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
	DataSet     *DataSetInfo `protobuf:"bytes,2,opt,name=data_set,json=dataSet" json:"data_set,omitempty"`
	TensorBoard bool         `protobuf:"varint,3,opt,name=tensor_board,json=tensorBoard" json:"tensor_board,omitempty"`
}

func (m *SaveModelRequest) Reset()                    { *m = SaveModelRequest{} }
func (m *SaveModelRequest) String() string            { return proto.CompactTextString(m) }
func (*SaveModelRequest) ProtoMessage()               {}
func (*SaveModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }

func (m *SaveModelRequest) GetModel() *ModelInfo {
	if m != nil {
		return m.Model
	}
	return nil
}

func (m *SaveModelRequest) GetDataSet() *DataSetInfo {
	if m != nil {
		return m.DataSet
	}
	return nil
}

func (m *SaveModelRequest) GetTensorBoard() bool {
	if m != nil {
		return m.TensorBoard
	}
	return false
}

type SaveModelReply struct {
}

func (m *SaveModelReply) Reset()                    { *m = SaveModelReply{} }
func (m *SaveModelReply) String() string            { return proto.CompactTextString(m) }
func (*SaveModelReply) ProtoMessage()               {}
func (*SaveModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }

type GetSavedStudiesRequest struct {
}

func (m *GetSavedStudiesRequest) Reset()                    { *m = GetSavedStudiesRequest{} }
func (m *GetSavedStudiesRequest) String() string            { return proto.CompactTextString(m) }
func (*GetSavedStudiesRequest) ProtoMessage()               {}
func (*GetSavedStudiesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }

type GetSavedStudiesReply struct {
	Studies []*StudyOverview `protobuf:"bytes,1,rep,name=studies" json:"studies,omitempty"`
}

func (m *GetSavedStudiesReply) Reset()                    { *m = GetSavedStudiesReply{} }
func (m *GetSavedStudiesReply) String() string            { return proto.CompactTextString(m) }
func (*GetSavedStudiesReply) ProtoMessage()               {}
func (*GetSavedStudiesReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }

func (m *GetSavedStudiesReply) GetStudies() []*StudyOverview {
	if m != nil {
		return m.Studies
	}
	return nil
}

type GetSavedModelsRequest struct {
	StudyName string `protobuf:"bytes,1,opt,name=study_name,json=studyName" json:"study_name,omitempty"`
}

func (m *GetSavedModelsRequest) Reset()                    { *m = GetSavedModelsRequest{} }
func (m *GetSavedModelsRequest) String() string            { return proto.CompactTextString(m) }
func (*GetSavedModelsRequest) ProtoMessage()               {}
func (*GetSavedModelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }

func (m *GetSavedModelsRequest) GetStudyName() string {
	if m != nil {
		return m.StudyName
	}
	return ""
}

type GetSavedModelsReply struct {
	Models []*ModelInfo `protobuf:"bytes,1,rep,name=models" json:"models,omitempty"`
}

func (m *GetSavedModelsReply) Reset()                    { *m = GetSavedModelsReply{} }
func (m *GetSavedModelsReply) String() string            { return proto.CompactTextString(m) }
func (*GetSavedModelsReply) ProtoMessage()               {}
func (*GetSavedModelsReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }

func (m *GetSavedModelsReply) GetModels() []*ModelInfo {
	if m != nil {
		return m.Models
	}
	return nil
}

type GetSavedModelRequest struct {
	StudyName string `protobuf:"bytes,1,opt,name=study_name,json=studyName" json:"study_name,omitempty"`
	WorkerId  string `protobuf:"bytes,2,opt,name=worker_id,json=workerId" json:"worker_id,omitempty"`
}

func (m *GetSavedModelRequest) Reset()                    { *m = GetSavedModelRequest{} }
func (m *GetSavedModelRequest) String() string            { return proto.CompactTextString(m) }
func (*GetSavedModelRequest) ProtoMessage()               {}
func (*GetSavedModelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }

func (m *GetSavedModelRequest) GetStudyName() string {
	if m != nil {
		return m.StudyName
	}
	return ""
}

func (m *GetSavedModelRequest) GetWorkerId() string {
	if m != nil {
		return m.WorkerId
	}
	return ""
}

type GetSavedModelReply struct {
	Model *ModelInfo `protobuf:"bytes,1,opt,name=model" json:"model,omitempty"`
}

func (m *GetSavedModelReply) Reset()                    { *m = GetSavedModelReply{} }
func (m *GetSavedModelReply) String() string            { return proto.CompactTextString(m) }
func (*GetSavedModelReply) ProtoMessage()               {}
func (*GetSavedModelReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }

func (m *GetSavedModelReply) GetModel() *ModelInfo {
	if m != nil {
		return m.Model
	}
	return nil
}

type SetSuggestionParametersRequest struct {
	StudyId              string                 `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	SuggestionAlgorithm  string                 `protobuf:"bytes,2,opt,name=suggestion_algorithm,json=suggestionAlgorithm" json:"suggestion_algorithm,omitempty"`
	ParamId              string                 `protobuf:"bytes,3,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
	SuggestionParameters []*SuggestionParameter `protobuf:"bytes,4,rep,name=suggestion_parameters,json=suggestionParameters" json:"suggestion_parameters,omitempty"`
}

func (m *SetSuggestionParametersRequest) Reset()                    { *m = SetSuggestionParametersRequest{} }
func (m *SetSuggestionParametersRequest) String() string            { return proto.CompactTextString(m) }
func (*SetSuggestionParametersRequest) ProtoMessage()               {}
func (*SetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }

func (m *SetSuggestionParametersRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *SetSuggestionParametersRequest) GetSuggestionAlgorithm() string {
	if m != nil {
		return m.SuggestionAlgorithm
	}
	return ""
}

func (m *SetSuggestionParametersRequest) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

func (m *SetSuggestionParametersRequest) GetSuggestionParameters() []*SuggestionParameter {
	if m != nil {
		return m.SuggestionParameters
	}
	return nil
}

type SetSuggestionParametersReply struct {
	ParamId string `protobuf:"bytes,1,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
}

func (m *SetSuggestionParametersReply) Reset()                    { *m = SetSuggestionParametersReply{} }
func (m *SetSuggestionParametersReply) String() string            { return proto.CompactTextString(m) }
func (*SetSuggestionParametersReply) ProtoMessage()               {}
func (*SetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} }

func (m *SetSuggestionParametersReply) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

type GetSuggestionParametersRequest struct {
	ParamId string `protobuf:"bytes,1,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
}

func (m *GetSuggestionParametersRequest) Reset()                    { *m = GetSuggestionParametersRequest{} }
func (m *GetSuggestionParametersRequest) String() string            { return proto.CompactTextString(m) }
func (*GetSuggestionParametersRequest) ProtoMessage()               {}
func (*GetSuggestionParametersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }

func (m *GetSuggestionParametersRequest) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

type GetSuggestionParametersReply struct {
	SuggestionParameters []*SuggestionParameter `protobuf:"bytes,1,rep,name=suggestion_parameters,json=suggestionParameters" json:"suggestion_parameters,omitempty"`
}

func (m *GetSuggestionParametersReply) Reset()                    { *m = GetSuggestionParametersReply{} }
func (m *GetSuggestionParametersReply) String() string            { return proto.CompactTextString(m) }
func (*GetSuggestionParametersReply) ProtoMessage()               {}
func (*GetSuggestionParametersReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }

func (m *GetSuggestionParametersReply) GetSuggestionParameters() []*SuggestionParameter {
	if m != nil {
		return m.SuggestionParameters
	}
	return nil
}

type GetSuggestionParameterListRequest struct {
	StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
}

func (m *GetSuggestionParameterListRequest) Reset()         { *m = GetSuggestionParameterListRequest{} }
func (m *GetSuggestionParameterListRequest) String() string { return proto.CompactTextString(m) }
func (*GetSuggestionParameterListRequest) ProtoMessage()    {}
func (*GetSuggestionParameterListRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{61}
}

func (m *GetSuggestionParameterListRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

type SuggestionParameterSet struct {
	ParamId              string                 `protobuf:"bytes,1,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
	SuggestionAlgorithm  string                 `protobuf:"bytes,2,opt,name=suggestion_algorithm,json=suggestionAlgorithm" json:"suggestion_algorithm,omitempty"`
	SuggestionParameters []*SuggestionParameter `protobuf:"bytes,3,rep,name=suggestion_parameters,json=suggestionParameters" json:"suggestion_parameters,omitempty"`
}

func (m *SuggestionParameterSet) Reset()                    { *m = SuggestionParameterSet{} }
func (m *SuggestionParameterSet) String() string            { return proto.CompactTextString(m) }
func (*SuggestionParameterSet) ProtoMessage()               {}
func (*SuggestionParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }

func (m *SuggestionParameterSet) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

func (m *SuggestionParameterSet) GetSuggestionAlgorithm() string {
	if m != nil {
		return m.SuggestionAlgorithm
	}
	return ""
}

func (m *SuggestionParameterSet) GetSuggestionParameters() []*SuggestionParameter {
	if m != nil {
		return m.SuggestionParameters
	}
	return nil
}

type GetSuggestionParameterListReply struct {
	SuggestionParameterSets []*SuggestionParameterSet `protobuf:"bytes,1,rep,name=suggestion_parameter_sets,json=suggestionParameterSets" json:"suggestion_parameter_sets,omitempty"`
}

func (m *GetSuggestionParameterListReply) Reset()         { *m = GetSuggestionParameterListReply{} }
func (m *GetSuggestionParameterListReply) String() string { return proto.CompactTextString(m) }
func (*GetSuggestionParameterListReply) ProtoMessage()    {}
func (*GetSuggestionParameterListReply) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{63}
}

func (m *GetSuggestionParameterListReply) GetSuggestionParameterSets() []*SuggestionParameterSet {
	if m != nil {
		return m.SuggestionParameterSets
	}
	return nil
}

type StopSuggestionRequest struct {
	StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
}

func (m *StopSuggestionRequest) Reset()                    { *m = StopSuggestionRequest{} }
func (m *StopSuggestionRequest) String() string            { return proto.CompactTextString(m) }
func (*StopSuggestionRequest) ProtoMessage()               {}
func (*StopSuggestionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }

func (m *StopSuggestionRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

type StopSuggestionReply struct {
}

func (m *StopSuggestionReply) Reset()                    { *m = StopSuggestionReply{} }
func (m *StopSuggestionReply) String() string            { return proto.CompactTextString(m) }
func (*StopSuggestionReply) ProtoMessage()               {}
func (*StopSuggestionReply) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }

type SetEarlyStoppingParametersRequest struct {
	StudyId                 string                    `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
	EarlyStoppingAlgorithm  string                    `protobuf:"bytes,2,opt,name=early_stopping_algorithm,json=earlyStoppingAlgorithm" json:"early_stopping_algorithm,omitempty"`
	ParamId                 string                    `protobuf:"bytes,3,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
	EarlyStoppingParameters []*EarlyStoppingParameter `protobuf:"bytes,4,rep,name=early_stopping_parameters,json=earlyStoppingParameters" json:"early_stopping_parameters,omitempty"`
}

func (m *SetEarlyStoppingParametersRequest) Reset()         { *m = SetEarlyStoppingParametersRequest{} }
func (m *SetEarlyStoppingParametersRequest) String() string { return proto.CompactTextString(m) }
func (*SetEarlyStoppingParametersRequest) ProtoMessage()    {}
func (*SetEarlyStoppingParametersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{66}
}

func (m *SetEarlyStoppingParametersRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

func (m *SetEarlyStoppingParametersRequest) GetEarlyStoppingAlgorithm() string {
	if m != nil {
		return m.EarlyStoppingAlgorithm
	}
	return ""
}

func (m *SetEarlyStoppingParametersRequest) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

func (m *SetEarlyStoppingParametersRequest) GetEarlyStoppingParameters() []*EarlyStoppingParameter {
	if m != nil {
		return m.EarlyStoppingParameters
	}
	return nil
}

type SetEarlyStoppingParametersReply struct {
	ParamId string `protobuf:"bytes,1,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
}

func (m *SetEarlyStoppingParametersReply) Reset()         { *m = SetEarlyStoppingParametersReply{} }
func (m *SetEarlyStoppingParametersReply) String() string { return proto.CompactTextString(m) }
func (*SetEarlyStoppingParametersReply) ProtoMessage()    {}
func (*SetEarlyStoppingParametersReply) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{67}
}

func (m *SetEarlyStoppingParametersReply) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

type GetEarlyStoppingParametersRequest struct {
	ParamId string `protobuf:"bytes,1,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
}

func (m *GetEarlyStoppingParametersRequest) Reset()         { *m = GetEarlyStoppingParametersRequest{} }
func (m *GetEarlyStoppingParametersRequest) String() string { return proto.CompactTextString(m) }
func (*GetEarlyStoppingParametersRequest) ProtoMessage()    {}
func (*GetEarlyStoppingParametersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{68}
}

func (m *GetEarlyStoppingParametersRequest) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

type GetEarlyStoppingParametersReply struct {
	EarlyStoppingParameters []*EarlyStoppingParameter `protobuf:"bytes,1,rep,name=early_stopping_parameters,json=earlyStoppingParameters" json:"early_stopping_parameters,omitempty"`
}

func (m *GetEarlyStoppingParametersReply) Reset()         { *m = GetEarlyStoppingParametersReply{} }
func (m *GetEarlyStoppingParametersReply) String() string { return proto.CompactTextString(m) }
func (*GetEarlyStoppingParametersReply) ProtoMessage()    {}
func (*GetEarlyStoppingParametersReply) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{69}
}

func (m *GetEarlyStoppingParametersReply) GetEarlyStoppingParameters() []*EarlyStoppingParameter {
	if m != nil {
		return m.EarlyStoppingParameters
	}
	return nil
}

type GetEarlyStoppingParameterListRequest struct {
	StudyId string `protobuf:"bytes,1,opt,name=study_id,json=studyId" json:"study_id,omitempty"`
}

func (m *GetEarlyStoppingParameterListRequest) Reset()         { *m = GetEarlyStoppingParameterListRequest{} }
func (m *GetEarlyStoppingParameterListRequest) String() string { return proto.CompactTextString(m) }
func (*GetEarlyStoppingParameterListRequest) ProtoMessage()    {}
func (*GetEarlyStoppingParameterListRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{70}
}

func (m *GetEarlyStoppingParameterListRequest) GetStudyId() string {
	if m != nil {
		return m.StudyId
	}
	return ""
}

type EarlyStoppingParameterSet struct {
	ParamId                 string                    `protobuf:"bytes,1,opt,name=param_id,json=paramId" json:"param_id,omitempty"`
	EarlyStoppingAlgorithm  string                    `protobuf:"bytes,2,opt,name=early_stopping_algorithm,json=earlyStoppingAlgorithm" json:"early_stopping_algorithm,omitempty"`
	EarlyStoppingParameters []*EarlyStoppingParameter `protobuf:"bytes,3,rep,name=early_stopping_parameters,json=earlyStoppingParameters" json:"early_stopping_parameters,omitempty"`
}

func (m *EarlyStoppingParameterSet) Reset()                    { *m = EarlyStoppingParameterSet{} }
func (m *EarlyStoppingParameterSet) String() string            { return proto.CompactTextString(m) }
func (*EarlyStoppingParameterSet) ProtoMessage()               {}
func (*EarlyStoppingParameterSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }

func (m *EarlyStoppingParameterSet) GetParamId() string {
	if m != nil {
		return m.ParamId
	}
	return ""
}

func (m *EarlyStoppingParameterSet) GetEarlyStoppingAlgorithm() string {
	if m != nil {
		return m.EarlyStoppingAlgorithm
	}
	return ""
}

func (m *EarlyStoppingParameterSet) GetEarlyStoppingParameters() []*EarlyStoppingParameter {
	if m != nil {
		return m.EarlyStoppingParameters
	}
	return nil
}

type GetEarlyStoppingParameterListReply struct {
	EarlyStoppingParameterSets []*EarlyStoppingParameterSet `protobuf:"bytes,1,rep,name=early_stopping_parameter_sets,json=earlyStoppingParameterSets" json:"early_stopping_parameter_sets,omitempty"`
}

func (m *GetEarlyStoppingParameterListReply) Reset()         { *m = GetEarlyStoppingParameterListReply{} }
func (m *GetEarlyStoppingParameterListReply) String() string { return proto.CompactTextString(m) }
func (*GetEarlyStoppingParameterListReply) ProtoMessage()    {}
func (*GetEarlyStoppingParameterListReply) Descriptor() ([]byte, []int) {
	return fileDescriptor0, []int{72}
}

func (m *GetEarlyStoppingParameterListReply) GetEarlyStoppingParameterSets() []*EarlyStoppingParameterSet {
	if m != nil {
		return m.EarlyStoppingParameterSets
	}
	return nil
}

func init() {
	proto.RegisterType((*FeasibleSpace)(nil), "api.FeasibleSpace")
	proto.RegisterType((*ParameterConfig)(nil), "api.ParameterConfig")
	proto.RegisterType((*Parameter)(nil), "api.Parameter")
	proto.RegisterType((*MetricsLogSet)(nil), "api.MetricsLogSet")
	proto.RegisterType((*Metrics)(nil), "api.Metrics")
	proto.RegisterType((*MetricsValueTime)(nil), "api.MetricsValueTime")
	proto.RegisterType((*MetricsLog)(nil), "api.MetricsLog")
	proto.RegisterType((*SuggestionParameter)(nil), "api.SuggestionParameter")
	proto.RegisterType((*EarlyStoppingParameter)(nil), "api.EarlyStoppingParameter")
	proto.RegisterType((*Tag)(nil), "api.Tag")
	proto.RegisterType((*StudyOverview)(nil), "api.StudyOverview")
	proto.RegisterType((*Trial)(nil), "api.Trial")
	proto.RegisterType((*VolumeConf)(nil), "api.VolumeConf")
	proto.RegisterType((*Worker)(nil), "api.Worker")
	proto.RegisterType((*StudyConfig)(nil), "api.StudyConfig")
	proto.RegisterType((*StudyConfig_ParameterConfigs)(nil), "api.StudyConfig.ParameterConfigs")
	proto.RegisterType((*CreateStudyRequest)(nil), "api.CreateStudyRequest")
	proto.RegisterType((*CreateStudyReply)(nil), "api.CreateStudyReply")
	proto.RegisterType((*StopStudyReply)(nil), "api.StopStudyReply")
	proto.RegisterType((*GetStudyRequest)(nil), "api.GetStudyRequest")
	proto.RegisterType((*GetStudyReply)(nil), "api.GetStudyReply")
	proto.RegisterType((*GetStudyListRequest)(nil), "api.GetStudyListRequest")
	proto.RegisterType((*GetStudyListReply)(nil), "api.GetStudyListReply")
	proto.RegisterType((*CreateTrialRequest)(nil), "api.CreateTrialRequest")
	proto.RegisterType((*CreateTrialReply)(nil), "api.CreateTrialReply")
	proto.RegisterType((*GetTrialsRequest)(nil), "api.GetTrialsRequest")
	proto.RegisterType((*GetTrialsReply)(nil), "api.GetTrialsReply")
	proto.RegisterType((*RegisterWorkerRequest)(nil), "api.RegisterWorkerRequest")
	proto.RegisterType((*RegisterWorkerReply)(nil), "api.RegisterWorkerReply")
	proto.RegisterType((*StopWorkersRequest)(nil), "api.StopWorkersRequest")
	proto.RegisterType((*StopWorkersReply)(nil), "api.StopWorkersReply")
	proto.RegisterType((*GetWorkersRequest)(nil), "api.GetWorkersRequest")
	proto.RegisterType((*GetWorkersReply)(nil), "api.GetWorkersReply")
	proto.RegisterType((*UpdateWorkerStateRequest)(nil), "api.UpdateWorkerStateRequest")
	proto.RegisterType((*UpdateWorkerStateReply)(nil), "api.UpdateWorkerStateReply")
	proto.RegisterType((*GetWorkerFullInfoRequest)(nil), "api.GetWorkerFullInfoRequest")
	proto.RegisterType((*WorkerFullInfo)(nil), "api.WorkerFullInfo")
	proto.RegisterType((*GetWorkerFullInfoReply)(nil), "api.GetWorkerFullInfoReply")
	proto.RegisterType((*GetSuggestionsRequest)(nil), "api.GetSuggestionsRequest")
	proto.RegisterType((*GetSuggestionsReply)(nil), "api.GetSuggestionsReply")
	proto.RegisterType((*GetShouldStopWorkersRequest)(nil), "api.GetShouldStopWorkersRequest")
	proto.RegisterType((*GetShouldStopWorkersReply)(nil), "api.GetShouldStopWorkersReply")
	proto.RegisterType((*GetMetricsRequest)(nil), "api.GetMetricsRequest")
	proto.RegisterType((*GetMetricsReply)(nil), "api.GetMetricsReply")
	proto.RegisterType((*ReportMetricsLogsRequest)(nil), "api.ReportMetricsLogsRequest")
	proto.RegisterType((*ReportMetricsLogsReply)(nil), "api.ReportMetricsLogsReply")
	proto.RegisterType((*ModelInfo)(nil), "api.ModelInfo")
	proto.RegisterType((*DataSetInfo)(nil), "api.DataSetInfo")
	proto.RegisterType((*SaveStudyRequest)(nil), "api.SaveStudyRequest")
	proto.RegisterType((*SaveStudyReply)(nil), "api.SaveStudyReply")
	proto.RegisterType((*SaveModelRequest)(nil), "api.SaveModelRequest")
	proto.RegisterType((*SaveModelReply)(nil), "api.SaveModelReply")
	proto.RegisterType((*GetSavedStudiesRequest)(nil), "api.GetSavedStudiesRequest")
	proto.RegisterType((*GetSavedStudiesReply)(nil), "api.GetSavedStudiesReply")
	proto.RegisterType((*GetSavedModelsRequest)(nil), "api.GetSavedModelsRequest")
	proto.RegisterType((*GetSavedModelsReply)(nil), "api.GetSavedModelsReply")
	proto.RegisterType((*GetSavedModelRequest)(nil), "api.GetSavedModelRequest")
	proto.RegisterType((*GetSavedModelReply)(nil), "api.GetSavedModelReply")
	proto.RegisterType((*SetSuggestionParametersRequest)(nil), "api.SetSuggestionParametersRequest")
	proto.RegisterType((*SetSuggestionParametersReply)(nil), "api.SetSuggestionParametersReply")
	proto.RegisterType((*GetSuggestionParametersRequest)(nil), "api.GetSuggestionParametersRequest")
	proto.RegisterType((*GetSuggestionParametersReply)(nil), "api.GetSuggestionParametersReply")
	proto.RegisterType((*GetSuggestionParameterListRequest)(nil), "api.GetSuggestionParameterListRequest")
	proto.RegisterType((*SuggestionParameterSet)(nil), "api.SuggestionParameterSet")
	proto.RegisterType((*GetSuggestionParameterListReply)(nil), "api.GetSuggestionParameterListReply")
	proto.RegisterType((*StopSuggestionRequest)(nil), "api.StopSuggestionRequest")
	proto.RegisterType((*StopSuggestionReply)(nil), "api.StopSuggestionReply")
	proto.RegisterType((*SetEarlyStoppingParametersRequest)(nil), "api.SetEarlyStoppingParametersRequest")
	proto.RegisterType((*SetEarlyStoppingParametersReply)(nil), "api.SetEarlyStoppingParametersReply")
	proto.RegisterType((*GetEarlyStoppingParametersRequest)(nil), "api.GetEarlyStoppingParametersRequest")
	proto.RegisterType((*GetEarlyStoppingParametersReply)(nil), "api.GetEarlyStoppingParametersReply")
	proto.RegisterType((*GetEarlyStoppingParameterListRequest)(nil), "api.GetEarlyStoppingParameterListRequest")
	proto.RegisterType((*EarlyStoppingParameterSet)(nil), "api.EarlyStoppingParameterSet")
	proto.RegisterType((*GetEarlyStoppingParameterListReply)(nil), "api.GetEarlyStoppingParameterListReply")
	proto.RegisterEnum("api.ParameterType", ParameterType_name, ParameterType_value)
	proto.RegisterEnum("api.OptimizationType", OptimizationType_name, OptimizationType_value)
	proto.RegisterEnum("api.State", State_name, State_value)
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// Client API for Manager service

type ManagerClient interface {
	CreateStudy(ctx context.Context, in *CreateStudyRequest, opts ...grpc.CallOption) (*CreateStudyReply, error)
	GetStudy(ctx context.Context, in *GetStudyRequest, opts ...grpc.CallOption) (*GetStudyReply, error)
	GetStudyList(ctx context.Context, in *GetStudyListRequest, opts ...grpc.CallOption) (*GetStudyListReply, error)
	CreateTrial(ctx context.Context, in *CreateTrialRequest, opts ...grpc.CallOption) (*CreateTrialReply, error)
	GetTrials(ctx context.Context, in *GetTrialsRequest, opts ...grpc.CallOption) (*GetTrialsReply, error)
	RegisterWorker(ctx context.Context, in *RegisterWorkerRequest, opts ...grpc.CallOption) (*RegisterWorkerReply, error)
	GetWorkers(ctx context.Context, in *GetWorkersRequest, opts ...grpc.CallOption) (*GetWorkersReply, error)
	UpdateWorkerState(ctx context.Context, in *UpdateWorkerStateRequest, opts ...grpc.CallOption) (*UpdateWorkerStateReply, error)
	GetWorkerFullInfo(ctx context.Context, in *GetWorkerFullInfoRequest, opts ...grpc.CallOption) (*GetWorkerFullInfoReply, error)
	GetSuggestions(ctx context.Context, in *GetSuggestionsRequest, opts ...grpc.CallOption) (*GetSuggestionsReply, error)
	GetShouldStopWorkers(ctx context.Context, in *GetShouldStopWorkersRequest, opts ...grpc.CallOption) (*GetShouldStopWorkersReply, error)
	GetMetrics(ctx context.Context, in *GetMetricsRequest, opts ...grpc.CallOption) (*GetMetricsReply, error)
	SetSuggestionParameters(ctx context.Context, in *SetSuggestionParametersRequest, opts ...grpc.CallOption) (*SetSuggestionParametersReply, error)
	GetSuggestionParameters(ctx context.Context, in *GetSuggestionParametersRequest, opts ...grpc.CallOption) (*GetSuggestionParametersReply, error)
	GetSuggestionParameterList(ctx context.Context, in *GetSuggestionParameterListRequest, opts ...grpc.CallOption) (*GetSuggestionParameterListReply, error)
	SetEarlyStoppingParameters(ctx context.Context, in *SetEarlyStoppingParametersRequest, opts ...grpc.CallOption) (*SetEarlyStoppingParametersReply, error)
	GetEarlyStoppingParameters(ctx context.Context, in *GetEarlyStoppingParametersRequest, opts ...grpc.CallOption) (*GetEarlyStoppingParametersReply, error)
	GetEarlyStoppingParameterList(ctx context.Context, in *GetEarlyStoppingParameterListRequest, opts ...grpc.CallOption) (*GetEarlyStoppingParameterListReply, error)
	SaveStudy(ctx context.Context, in *SaveStudyRequest, opts ...grpc.CallOption) (*SaveStudyReply, error)
	SaveModel(ctx context.Context, in *SaveModelRequest, opts ...grpc.CallOption) (*SaveModelReply, error)
	ReportMetricsLogs(ctx context.Context, in *ReportMetricsLogsRequest, opts ...grpc.CallOption) (*ReportMetricsLogsReply, error)
	GetSavedStudies(ctx context.Context, in *GetSavedStudiesRequest, opts ...grpc.CallOption) (*GetSavedStudiesReply, error)
	GetSavedModels(ctx context.Context, in *GetSavedModelsRequest, opts ...grpc.CallOption) (*GetSavedModelsReply, error)
}

type managerClient struct {
	cc *grpc.ClientConn
}

func NewManagerClient(cc *grpc.ClientConn) ManagerClient {
	return &managerClient{cc}
}

func (c *managerClient) CreateStudy(ctx context.Context, in *CreateStudyRequest, opts ...grpc.CallOption) (*CreateStudyReply, error) {
	out := new(CreateStudyReply)
	err := grpc.Invoke(ctx, "/api.Manager/CreateStudy", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetStudy(ctx context.Context, in *GetStudyRequest, opts ...grpc.CallOption) (*GetStudyReply, error) {
	out := new(GetStudyReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetStudy", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetStudyList(ctx context.Context, in *GetStudyListRequest, opts ...grpc.CallOption) (*GetStudyListReply, error) {
	out := new(GetStudyListReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetStudyList", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) CreateTrial(ctx context.Context, in *CreateTrialRequest, opts ...grpc.CallOption) (*CreateTrialReply, error) {
	out := new(CreateTrialReply)
	err := grpc.Invoke(ctx, "/api.Manager/CreateTrial", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetTrials(ctx context.Context, in *GetTrialsRequest, opts ...grpc.CallOption) (*GetTrialsReply, error) {
	out := new(GetTrialsReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetTrials", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) RegisterWorker(ctx context.Context, in *RegisterWorkerRequest, opts ...grpc.CallOption) (*RegisterWorkerReply, error) {
	out := new(RegisterWorkerReply)
	err := grpc.Invoke(ctx, "/api.Manager/RegisterWorker", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetWorkers(ctx context.Context, in *GetWorkersRequest, opts ...grpc.CallOption) (*GetWorkersReply, error) {
	out := new(GetWorkersReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetWorkers", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) UpdateWorkerState(ctx context.Context, in *UpdateWorkerStateRequest, opts ...grpc.CallOption) (*UpdateWorkerStateReply, error) {
	out := new(UpdateWorkerStateReply)
	err := grpc.Invoke(ctx, "/api.Manager/UpdateWorkerState", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetWorkerFullInfo(ctx context.Context, in *GetWorkerFullInfoRequest, opts ...grpc.CallOption) (*GetWorkerFullInfoReply, error) {
	out := new(GetWorkerFullInfoReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetWorkerFullInfo", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetSuggestions(ctx context.Context, in *GetSuggestionsRequest, opts ...grpc.CallOption) (*GetSuggestionsReply, error) {
	out := new(GetSuggestionsReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetSuggestions", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetShouldStopWorkers(ctx context.Context, in *GetShouldStopWorkersRequest, opts ...grpc.CallOption) (*GetShouldStopWorkersReply, error) {
	out := new(GetShouldStopWorkersReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetShouldStopWorkers", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetMetrics(ctx context.Context, in *GetMetricsRequest, opts ...grpc.CallOption) (*GetMetricsReply, error) {
	out := new(GetMetricsReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetMetrics", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) SetSuggestionParameters(ctx context.Context, in *SetSuggestionParametersRequest, opts ...grpc.CallOption) (*SetSuggestionParametersReply, error) {
	out := new(SetSuggestionParametersReply)
	err := grpc.Invoke(ctx, "/api.Manager/SetSuggestionParameters", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetSuggestionParameters(ctx context.Context, in *GetSuggestionParametersRequest, opts ...grpc.CallOption) (*GetSuggestionParametersReply, error) {
	out := new(GetSuggestionParametersReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetSuggestionParameters", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetSuggestionParameterList(ctx context.Context, in *GetSuggestionParameterListRequest, opts ...grpc.CallOption) (*GetSuggestionParameterListReply, error) {
	out := new(GetSuggestionParameterListReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetSuggestionParameterList", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) SetEarlyStoppingParameters(ctx context.Context, in *SetEarlyStoppingParametersRequest, opts ...grpc.CallOption) (*SetEarlyStoppingParametersReply, error) {
	out := new(SetEarlyStoppingParametersReply)
	err := grpc.Invoke(ctx, "/api.Manager/SetEarlyStoppingParameters", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetEarlyStoppingParameters(ctx context.Context, in *GetEarlyStoppingParametersRequest, opts ...grpc.CallOption) (*GetEarlyStoppingParametersReply, error) {
	out := new(GetEarlyStoppingParametersReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetEarlyStoppingParameters", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetEarlyStoppingParameterList(ctx context.Context, in *GetEarlyStoppingParameterListRequest, opts ...grpc.CallOption) (*GetEarlyStoppingParameterListReply, error) {
	out := new(GetEarlyStoppingParameterListReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetEarlyStoppingParameterList", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) SaveStudy(ctx context.Context, in *SaveStudyRequest, opts ...grpc.CallOption) (*SaveStudyReply, error) {
	out := new(SaveStudyReply)
	err := grpc.Invoke(ctx, "/api.Manager/SaveStudy", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) SaveModel(ctx context.Context, in *SaveModelRequest, opts ...grpc.CallOption) (*SaveModelReply, error) {
	out := new(SaveModelReply)
	err := grpc.Invoke(ctx, "/api.Manager/SaveModel", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) ReportMetricsLogs(ctx context.Context, in *ReportMetricsLogsRequest, opts ...grpc.CallOption) (*ReportMetricsLogsReply, error) {
	out := new(ReportMetricsLogsReply)
	err := grpc.Invoke(ctx, "/api.Manager/ReportMetricsLogs", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetSavedStudies(ctx context.Context, in *GetSavedStudiesRequest, opts ...grpc.CallOption) (*GetSavedStudiesReply, error) {
	out := new(GetSavedStudiesReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetSavedStudies", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *managerClient) GetSavedModels(ctx context.Context, in *GetSavedModelsRequest, opts ...grpc.CallOption) (*GetSavedModelsReply, error) {
	out := new(GetSavedModelsReply)
	err := grpc.Invoke(ctx, "/api.Manager/GetSavedModels", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for Manager service

type ManagerServer interface {
	CreateStudy(context.Context, *CreateStudyRequest) (*CreateStudyReply, error)
	GetStudy(context.Context, *GetStudyRequest) (*GetStudyReply, error)
	GetStudyList(context.Context, *GetStudyListRequest) (*GetStudyListReply, error)
	CreateTrial(context.Context, *CreateTrialRequest) (*CreateTrialReply, error)
	GetTrials(context.Context, *GetTrialsRequest) (*GetTrialsReply, error)
	RegisterWorker(context.Context, *RegisterWorkerRequest) (*RegisterWorkerReply, error)
	GetWorkers(context.Context, *GetWorkersRequest) (*GetWorkersReply, error)
	UpdateWorkerState(context.Context, *UpdateWorkerStateRequest) (*UpdateWorkerStateReply, error)
	GetWorkerFullInfo(context.Context, *GetWorkerFullInfoRequest) (*GetWorkerFullInfoReply, error)
	GetSuggestions(context.Context, *GetSuggestionsRequest) (*GetSuggestionsReply, error)
	GetShouldStopWorkers(context.Context, *GetShouldStopWorkersRequest) (*GetShouldStopWorkersReply, error)
	GetMetrics(context.Context, *GetMetricsRequest) (*GetMetricsReply, error)
	SetSuggestionParameters(context.Context, *SetSuggestionParametersRequest) (*SetSuggestionParametersReply, error)
	GetSuggestionParameters(context.Context, *GetSuggestionParametersRequest) (*GetSuggestionParametersReply, error)
	GetSuggestionParameterList(context.Context, *GetSuggestionParameterListRequest) (*GetSuggestionParameterListReply, error)
	SetEarlyStoppingParameters(context.Context, *SetEarlyStoppingParametersRequest) (*SetEarlyStoppingParametersReply, error)
	GetEarlyStoppingParameters(context.Context, *GetEarlyStoppingParametersRequest) (*GetEarlyStoppingParametersReply, error)
	GetEarlyStoppingParameterList(context.Context, *GetEarlyStoppingParameterListRequest) (*GetEarlyStoppingParameterListReply, error)
	SaveStudy(context.Context, *SaveStudyRequest) (*SaveStudyReply, error)
	SaveModel(context.Context, *SaveModelRequest) (*SaveModelReply, error)
	ReportMetricsLogs(context.Context, *ReportMetricsLogsRequest) (*ReportMetricsLogsReply, error)
	GetSavedStudies(context.Context, *GetSavedStudiesRequest) (*GetSavedStudiesReply, error)
	GetSavedModels(context.Context, *GetSavedModelsRequest) (*GetSavedModelsReply, error)
}

func RegisterManagerServer(s *grpc.Server, srv ManagerServer) {
	s.RegisterService(&_Manager_serviceDesc, srv)
}

func _Manager_CreateStudy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateStudyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).CreateStudy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/CreateStudy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).CreateStudy(ctx, req.(*CreateStudyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetStudy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetStudyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetStudy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetStudy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetStudy(ctx, req.(*GetStudyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetStudyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetStudyListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetStudyList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetStudyList",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetStudyList(ctx, req.(*GetStudyListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_CreateTrial_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateTrialRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).CreateTrial(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/CreateTrial",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).CreateTrial(ctx, req.(*CreateTrialRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetTrials_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetTrialsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetTrials(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetTrials",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetTrials(ctx, req.(*GetTrialsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_RegisterWorker_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RegisterWorkerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).RegisterWorker(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/RegisterWorker",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).RegisterWorker(ctx, req.(*RegisterWorkerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetWorkers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetWorkersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetWorkers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetWorkers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetWorkers(ctx, req.(*GetWorkersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_UpdateWorkerState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateWorkerStateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).UpdateWorkerState(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/UpdateWorkerState",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).UpdateWorkerState(ctx, req.(*UpdateWorkerStateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetWorkerFullInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetWorkerFullInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetWorkerFullInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetWorkerFullInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetWorkerFullInfo(ctx, req.(*GetWorkerFullInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetSuggestions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSuggestionsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetSuggestions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetSuggestions",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetSuggestions(ctx, req.(*GetSuggestionsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetShouldStopWorkers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetShouldStopWorkersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetShouldStopWorkers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetShouldStopWorkers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetShouldStopWorkers(ctx, req.(*GetShouldStopWorkersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMetricsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetMetrics(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetMetrics",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetMetrics(ctx, req.(*GetMetricsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_SetSuggestionParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetSuggestionParametersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).SetSuggestionParameters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/SetSuggestionParameters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).SetSuggestionParameters(ctx, req.(*SetSuggestionParametersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetSuggestionParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSuggestionParametersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetSuggestionParameters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetSuggestionParameters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetSuggestionParameters(ctx, req.(*GetSuggestionParametersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetSuggestionParameterList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSuggestionParameterListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetSuggestionParameterList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetSuggestionParameterList",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetSuggestionParameterList(ctx, req.(*GetSuggestionParameterListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_SetEarlyStoppingParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetEarlyStoppingParametersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).SetEarlyStoppingParameters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/SetEarlyStoppingParameters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).SetEarlyStoppingParameters(ctx, req.(*SetEarlyStoppingParametersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetEarlyStoppingParameters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetEarlyStoppingParametersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetEarlyStoppingParameters(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetEarlyStoppingParameters",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetEarlyStoppingParameters(ctx, req.(*GetEarlyStoppingParametersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetEarlyStoppingParameterList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetEarlyStoppingParameterListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetEarlyStoppingParameterList(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetEarlyStoppingParameterList",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetEarlyStoppingParameterList(ctx, req.(*GetEarlyStoppingParameterListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_SaveStudy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SaveStudyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).SaveStudy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/SaveStudy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).SaveStudy(ctx, req.(*SaveStudyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_SaveModel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SaveModelRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).SaveModel(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/SaveModel",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).SaveModel(ctx, req.(*SaveModelRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_ReportMetricsLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReportMetricsLogsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).ReportMetricsLogs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/ReportMetricsLogs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).ReportMetricsLogs(ctx, req.(*ReportMetricsLogsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetSavedStudies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSavedStudiesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetSavedStudies(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetSavedStudies",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetSavedStudies(ctx, req.(*GetSavedStudiesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Manager_GetSavedModels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSavedModelsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagerServer).GetSavedModels(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Manager/GetSavedModels",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagerServer).GetSavedModels(ctx, req.(*GetSavedModelsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _Manager_serviceDesc = grpc.ServiceDesc{
	ServiceName: "api.Manager",
	HandlerType: (*ManagerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateStudy",
			Handler:    _Manager_CreateStudy_Handler,
		},
		{
			MethodName: "GetStudy",
			Handler:    _Manager_GetStudy_Handler,
		},
		{
			MethodName: "GetStudyList",
			Handler:    _Manager_GetStudyList_Handler,
		},
		{
			MethodName: "CreateTrial",
			Handler:    _Manager_CreateTrial_Handler,
		},
		{
			MethodName: "GetTrials",
			Handler:    _Manager_GetTrials_Handler,
		},
		{
			MethodName: "RegisterWorker",
			Handler:    _Manager_RegisterWorker_Handler,
		},
		{
			MethodName: "GetWorkers",
			Handler:    _Manager_GetWorkers_Handler,
		},
		{
			MethodName: "UpdateWorkerState",
			Handler:    _Manager_UpdateWorkerState_Handler,
		},
		{
			MethodName: "GetWorkerFullInfo",
			Handler:    _Manager_GetWorkerFullInfo_Handler,
		},
		{
			MethodName: "GetSuggestions",
			Handler:    _Manager_GetSuggestions_Handler,
		},
		{
			MethodName: "GetShouldStopWorkers",
			Handler:    _Manager_GetShouldStopWorkers_Handler,
		},
		{
			MethodName: "GetMetrics",
			Handler:    _Manager_GetMetrics_Handler,
		},
		{
			MethodName: "SetSuggestionParameters",
			Handler:    _Manager_SetSuggestionParameters_Handler,
		},
		{
			MethodName: "GetSuggestionParameters",
			Handler:    _Manager_GetSuggestionParameters_Handler,
		},
		{
			MethodName: "GetSuggestionParameterList",
			Handler:    _Manager_GetSuggestionParameterList_Handler,
		},
		{
			MethodName: "SetEarlyStoppingParameters",
			Handler:    _Manager_SetEarlyStoppingParameters_Handler,
		},
		{
			MethodName: "GetEarlyStoppingParameters",
			Handler:    _Manager_GetEarlyStoppingParameters_Handler,
		},
		{
			MethodName: "GetEarlyStoppingParameterList",
			Handler:    _Manager_GetEarlyStoppingParameterList_Handler,
		},
		{
			MethodName: "SaveStudy",
			Handler:    _Manager_SaveStudy_Handler,
		},
		{
			MethodName: "SaveModel",
			Handler:    _Manager_SaveModel_Handler,
		},
		{
			MethodName: "ReportMetricsLogs",
			Handler:    _Manager_ReportMetricsLogs_Handler,
		},
		{
			MethodName: "GetSavedStudies",
			Handler:    _Manager_GetSavedStudies_Handler,
		},
		{
			MethodName: "GetSavedModels",
			Handler:    _Manager_GetSavedModels_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "api.proto",
}

// Client API for Suggestion service

type SuggestionClient interface {
	GetSuggestions(ctx context.Context, in *GetSuggestionsRequest, opts ...grpc.CallOption) (*GetSuggestionsReply, error)
}

type suggestionClient struct {
	cc *grpc.ClientConn
}

func NewSuggestionClient(cc *grpc.ClientConn) SuggestionClient {
	return &suggestionClient{cc}
}

func (c *suggestionClient) GetSuggestions(ctx context.Context, in *GetSuggestionsRequest, opts ...grpc.CallOption) (*GetSuggestionsReply, error) {
	out := new(GetSuggestionsReply)
	err := grpc.Invoke(ctx, "/api.Suggestion/GetSuggestions", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for Suggestion service

type SuggestionServer interface {
	GetSuggestions(context.Context, *GetSuggestionsRequest) (*GetSuggestionsReply, error)
}

func RegisterSuggestionServer(s *grpc.Server, srv SuggestionServer) {
	s.RegisterService(&_Suggestion_serviceDesc, srv)
}

func _Suggestion_GetSuggestions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSuggestionsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(SuggestionServer).GetSuggestions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.Suggestion/GetSuggestions",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(SuggestionServer).GetSuggestions(ctx, req.(*GetSuggestionsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _Suggestion_serviceDesc = grpc.ServiceDesc{
	ServiceName: "api.Suggestion",
	HandlerType: (*SuggestionServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetSuggestions",
			Handler:    _Suggestion_GetSuggestions_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "api.proto",
}

// Client API for EarlyStopping service

type EarlyStoppingClient interface {
	GetShouldStopWorkers(ctx context.Context, in *GetShouldStopWorkersRequest, opts ...grpc.CallOption) (*GetShouldStopWorkersReply, error)
}

type earlyStoppingClient struct {
	cc *grpc.ClientConn
}

func NewEarlyStoppingClient(cc *grpc.ClientConn) EarlyStoppingClient {
	return &earlyStoppingClient{cc}
}

func (c *earlyStoppingClient) GetShouldStopWorkers(ctx context.Context, in *GetShouldStopWorkersRequest, opts ...grpc.CallOption) (*GetShouldStopWorkersReply, error) {
	out := new(GetShouldStopWorkersReply)
	err := grpc.Invoke(ctx, "/api.EarlyStopping/GetShouldStopWorkers", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for EarlyStopping service

type EarlyStoppingServer interface {
	GetShouldStopWorkers(context.Context, *GetShouldStopWorkersRequest) (*GetShouldStopWorkersReply, error)
}

func RegisterEarlyStoppingServer(s *grpc.Server, srv EarlyStoppingServer) {
	s.RegisterService(&_EarlyStopping_serviceDesc, srv)
}

func _EarlyStopping_GetShouldStopWorkers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetShouldStopWorkersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(EarlyStoppingServer).GetShouldStopWorkers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/api.EarlyStopping/GetShouldStopWorkers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(EarlyStoppingServer).GetShouldStopWorkers(ctx, req.(*GetShouldStopWorkersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _EarlyStopping_serviceDesc = grpc.ServiceDesc{
	ServiceName: "api.EarlyStopping",
	HandlerType: (*EarlyStoppingServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetShouldStopWorkers",
			Handler:    _EarlyStopping_GetShouldStopWorkers_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "api.proto",
}

func init() { proto.RegisterFile("api.proto", fileDescriptor0) }

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