// Copyright 2011 Google LLC. All Rights Reserved.

//
// proto definitions for goma log.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.27.1
// 	protoc        v3.17.3
// source: api/goma_log.proto

package api

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

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

type ExecLog_AuthenticationType int32

const (
	ExecLog_NONE    ExecLog_AuthenticationType = 0
	ExecLog_UNKNOWN ExecLog_AuthenticationType = 1
	// reserved 2,3
	ExecLog_OAUTH2_UNSPEC              ExecLog_AuthenticationType = 4
	ExecLog_OAUTH2_APPLICATION         ExecLog_AuthenticationType = 5
	ExecLog_OAUTH2_SERVICE_ACCOUNT     ExecLog_AuthenticationType = 6
	ExecLog_OAUTH2_GCE_SERVICE_ACCOUNT ExecLog_AuthenticationType = 7
	ExecLog_OAUTH2_LUCI_LOCAL_AUTH     ExecLog_AuthenticationType = 8
)

// Enum value maps for ExecLog_AuthenticationType.
var (
	ExecLog_AuthenticationType_name = map[int32]string{
		0: "NONE",
		1: "UNKNOWN",
		4: "OAUTH2_UNSPEC",
		5: "OAUTH2_APPLICATION",
		6: "OAUTH2_SERVICE_ACCOUNT",
		7: "OAUTH2_GCE_SERVICE_ACCOUNT",
		8: "OAUTH2_LUCI_LOCAL_AUTH",
	}
	ExecLog_AuthenticationType_value = map[string]int32{
		"NONE":                       0,
		"UNKNOWN":                    1,
		"OAUTH2_UNSPEC":              4,
		"OAUTH2_APPLICATION":         5,
		"OAUTH2_SERVICE_ACCOUNT":     6,
		"OAUTH2_GCE_SERVICE_ACCOUNT": 7,
		"OAUTH2_LUCI_LOCAL_AUTH":     8,
	}
)

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

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

func (ExecLog_AuthenticationType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_goma_log_proto_enumTypes[0].Descriptor()
}

func (ExecLog_AuthenticationType) Type() protoreflect.EnumType {
	return &file_api_goma_log_proto_enumTypes[0]
}

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

// Deprecated: Do not use.
func (x *ExecLog_AuthenticationType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = ExecLog_AuthenticationType(num)
	return nil
}

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

type ExecLog_NetworkFailureType int32

const (
	ExecLog_NO_NETWORK_ERROR      ExecLog_NetworkFailureType = 0 // succeeded or not used.
	ExecLog_DISABLED              ExecLog_NetworkFailureType = 1 // failed because http is disabled (failnow() is true).
	ExecLog_UNKNOWN_NETWORK_ERROR ExecLog_NetworkFailureType = 2 // unknown error status.
	ExecLog_CONNECT_FAILED        ExecLog_NetworkFailureType = 3 // failed at connect.
	ExecLog_SEND_FAILED           ExecLog_NetworkFailureType = 4 // failed at send.
	ExecLog_TIMEDOUT_AFTER_SEND   ExecLog_NetworkFailureType = 5 // timed out after request has sent.
	ExecLog_RECEIVE_FAILED        ExecLog_NetworkFailureType = 6 // failed at receiving response.
	ExecLog_BAD_HTTP_STATUS_CODE  ExecLog_NetworkFailureType = 7 // received but response was not 2xx.
)

// Enum value maps for ExecLog_NetworkFailureType.
var (
	ExecLog_NetworkFailureType_name = map[int32]string{
		0: "NO_NETWORK_ERROR",
		1: "DISABLED",
		2: "UNKNOWN_NETWORK_ERROR",
		3: "CONNECT_FAILED",
		4: "SEND_FAILED",
		5: "TIMEDOUT_AFTER_SEND",
		6: "RECEIVE_FAILED",
		7: "BAD_HTTP_STATUS_CODE",
	}
	ExecLog_NetworkFailureType_value = map[string]int32{
		"NO_NETWORK_ERROR":      0,
		"DISABLED":              1,
		"UNKNOWN_NETWORK_ERROR": 2,
		"CONNECT_FAILED":        3,
		"SEND_FAILED":           4,
		"TIMEDOUT_AFTER_SEND":   5,
		"RECEIVE_FAILED":        6,
		"BAD_HTTP_STATUS_CODE":  7,
	}
)

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

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

func (ExecLog_NetworkFailureType) Descriptor() protoreflect.EnumDescriptor {
	return file_api_goma_log_proto_enumTypes[1].Descriptor()
}

func (ExecLog_NetworkFailureType) Type() protoreflect.EnumType {
	return &file_api_goma_log_proto_enumTypes[1]
}

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

// Deprecated: Do not use.
func (x *ExecLog_NetworkFailureType) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = ExecLog_NetworkFailureType(num)
	return nil
}

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

type ExecLog_CacheSource int32

const (
	ExecLog_UNKNOWN_CACHE      ExecLog_CacheSource = 0
	ExecLog_MEM_CACHE          ExecLog_CacheSource = 1
	ExecLog_STORAGE_CACHE      ExecLog_CacheSource = 2
	ExecLog_LOCAL_OUTPUT_CACHE ExecLog_CacheSource = 3
)

// Enum value maps for ExecLog_CacheSource.
var (
	ExecLog_CacheSource_name = map[int32]string{
		0: "UNKNOWN_CACHE",
		1: "MEM_CACHE",
		2: "STORAGE_CACHE",
		3: "LOCAL_OUTPUT_CACHE",
	}
	ExecLog_CacheSource_value = map[string]int32{
		"UNKNOWN_CACHE":      0,
		"MEM_CACHE":          1,
		"STORAGE_CACHE":      2,
		"LOCAL_OUTPUT_CACHE": 3,
	}
)

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

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

func (ExecLog_CacheSource) Descriptor() protoreflect.EnumDescriptor {
	return file_api_goma_log_proto_enumTypes[2].Descriptor()
}

func (ExecLog_CacheSource) Type() protoreflect.EnumType {
	return &file_api_goma_log_proto_enumTypes[2]
}

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

// Deprecated: Do not use.
func (x *ExecLog_CacheSource) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = ExecLog_CacheSource(num)
	return nil
}

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

// NEXT ID TO USE: 96
type ExecLog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// optional string compiler_proxy_id = 1;
	Username               *string `protobuf:"bytes,46,opt,name=username" json:"username,omitempty"`
	Nodename               *string `protobuf:"bytes,47,opt,name=nodename" json:"nodename,omitempty"`
	Port                   *int32  `protobuf:"varint,48,opt,name=port" json:"port,omitempty"`
	CompilerProxyStartTime *int32  `protobuf:"varint,49,opt,name=compiler_proxy_start_time,json=compilerProxyStartTime" json:"compiler_proxy_start_time,omitempty"`
	TaskId                 *int32  `protobuf:"varint,50,opt,name=task_id,json=taskId" json:"task_id,omitempty"`
	BuildId                *string `protobuf:"bytes,91,opt,name=build_id,json=buildId" json:"build_id,omitempty"`
	ServiceAccountId       *string `protobuf:"bytes,94,opt,name=service_account_id,json=serviceAccountId" json:"service_account_id,omitempty"`
	Oauth2Email            *string `protobuf:"bytes,95,opt,name=oauth2_email,json=oauth2Email" json:"oauth2_email,omitempty"`
	CompilerProxyUserAgent *string `protobuf:"bytes,51,opt,name=compiler_proxy_user_agent,json=compilerProxyUserAgent" json:"compiler_proxy_user_agent,omitempty"`
	// request info.
	StartTime   *int32   `protobuf:"varint,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
	Arg         []string `protobuf:"bytes,3,rep,name=arg" json:"arg,omitempty"`
	Env         []string `protobuf:"bytes,4,rep,name=env" json:"env,omitempty"`
	Cwd         *string  `protobuf:"bytes,5,opt,name=cwd" json:"cwd,omitempty"`
	ExpandedArg []string `protobuf:"bytes,62,rep,name=expanded_arg,json=expandedArg" json:"expanded_arg,omitempty"`
	// command spec
	CommandVersion      *string                     `protobuf:"bytes,71,opt,name=command_version,json=commandVersion" json:"command_version,omitempty"`
	CommandTarget       *string                     `protobuf:"bytes,72,opt,name=command_target,json=commandTarget" json:"command_target,omitempty"`
	LatestInputFilename *string                     `protobuf:"bytes,59,opt,name=latest_input_filename,json=latestInputFilename" json:"latest_input_filename,omitempty"`
	LatestInputMtime    *int32                      `protobuf:"varint,60,opt,name=latest_input_mtime,json=latestInputMtime" json:"latest_input_mtime,omitempty"`
	UseSsl              *bool                       `protobuf:"varint,64,opt,name=use_ssl,json=useSsl" json:"use_ssl,omitempty"`
	AuthType            *ExecLog_AuthenticationType `protobuf:"varint,86,opt,name=auth_type,json=authType,enum=devtools_goma.ExecLog_AuthenticationType,def=0" json:"auth_type,omitempty"`
	CpuFeatures         *CpuFeatures                `protobuf:"bytes,87,opt,name=cpu_features,json=cpuFeatures" json:"cpu_features,omitempty"`
	NetworkFailureType  *ExecLog_NetworkFailureType `protobuf:"varint,88,opt,name=network_failure_type,json=networkFailureType,enum=devtools_goma.ExecLog_NetworkFailureType,def=0" json:"network_failure_type,omitempty"`
	OsInfo              *OSInfo                     `protobuf:"bytes,89,opt,name=os_info,json=osInfo" json:"os_info,omitempty"`
	// in INIT.
	PendingTime *int32 `protobuf:"varint,63,opt,name=pending_time,json=pendingTime" json:"pending_time,omitempty"`
	// in SETUP.
	CompilerInfoProcessTime *int32 `protobuf:"varint,82,opt,name=compiler_info_process_time,json=compilerInfoProcessTime" json:"compiler_info_process_time,omitempty"`
	// include_preprocess_time is sum of
	// include_processor_wait_time and include_processor_run_time.
	IncludePreprocessTime         *int32 `protobuf:"varint,6,opt,name=include_preprocess_time,json=includePreprocessTime" json:"include_preprocess_time,omitempty"`
	IncludeProcessorWaitTime      *int32 `protobuf:"varint,84,opt,name=include_processor_wait_time,json=includeProcessorWaitTime" json:"include_processor_wait_time,omitempty"`
	IncludeProcessorRunTime       *int32 `protobuf:"varint,85,opt,name=include_processor_run_time,json=includeProcessorRunTime" json:"include_processor_run_time,omitempty"`
	DepscacheUsed                 *bool  `protobuf:"varint,78,opt,name=depscache_used,json=depscacheUsed" json:"depscache_used,omitempty"`
	IncludePreprocessTotalFiles   *int32 `protobuf:"varint,79,opt,name=include_preprocess_total_files,json=includePreprocessTotalFiles" json:"include_preprocess_total_files,omitempty"`
	IncludePreprocessSkippedFiles *int32 `protobuf:"varint,80,opt,name=include_preprocess_skipped_files,json=includePreprocessSkippedFiles" json:"include_preprocess_skipped_files,omitempty"`
	// in FILE_REQ.
	IncludeFileloadTime        *int32  `protobuf:"varint,7,opt,name=include_fileload_time,json=includeFileloadTime" json:"include_fileload_time,omitempty"`
	IncludeFileloadPendingTime []int32 `protobuf:"varint,69,rep,name=include_fileload_pending_time,json=includeFileloadPendingTime" json:"include_fileload_pending_time,omitempty"`
	IncludeFileloadRunTime     []int32 `protobuf:"varint,70,rep,name=include_fileload_run_time,json=includeFileloadRunTime" json:"include_fileload_run_time,omitempty"`
	NumTotalInputFile          *int32  `protobuf:"varint,8,opt,name=num_total_input_file,json=numTotalInputFile" json:"num_total_input_file,omitempty"`
	TotalInputFileSize         *int64  `protobuf:"varint,93,opt,name=total_input_file_size,json=totalInputFileSize" json:"total_input_file_size,omitempty"`
	// repeated by retry.
	NumUploadingInputFile            []int32 `protobuf:"varint,9,rep,name=num_uploading_input_file,json=numUploadingInputFile" json:"num_uploading_input_file,omitempty"`
	NumMissingInputFile              []int32 `protobuf:"varint,10,rep,name=num_missing_input_file,json=numMissingInputFile" json:"num_missing_input_file,omitempty"`
	NumDroppedInputFile              []int32 `protobuf:"varint,92,rep,name=num_dropped_input_file,json=numDroppedInputFile" json:"num_dropped_input_file,omitempty"`
	NumFileUploadedDuringExecFailure []int32 `protobuf:"varint,66,rep,name=num_file_uploaded_during_exec_failure,json=numFileUploadedDuringExecFailure" json:"num_file_uploaded_during_exec_failure,omitempty"`
	// repeated by each input file.
	InputFileTime []int32 `protobuf:"varint,11,rep,name=input_file_time,json=inputFileTime" json:"input_file_time,omitempty"`
	InputFileSize []int32 `protobuf:"varint,12,rep,name=input_file_size,json=inputFileSize" json:"input_file_size,omitempty"`
	// in CALL_EXEC.  repeated by retry.
	RpcCallTime      []int32  `protobuf:"varint,13,rep,name=rpc_call_time,json=rpcCallTime" json:"rpc_call_time,omitempty"`
	RpcReqSize       []int32  `protobuf:"varint,14,rep,name=rpc_req_size,json=rpcReqSize" json:"rpc_req_size,omitempty"`
	RpcRespSize      []int32  `protobuf:"varint,15,rep,name=rpc_resp_size,json=rpcRespSize" json:"rpc_resp_size,omitempty"`
	RpcRawReqSize    []int32  `protobuf:"varint,16,rep,name=rpc_raw_req_size,json=rpcRawReqSize" json:"rpc_raw_req_size,omitempty"`
	RpcRawRespSize   []int32  `protobuf:"varint,17,rep,name=rpc_raw_resp_size,json=rpcRawRespSize" json:"rpc_raw_resp_size,omitempty"`
	RpcMasterTraceId []string `protobuf:"bytes,58,rep,name=rpc_master_trace_id,json=rpcMasterTraceId" json:"rpc_master_trace_id,omitempty"`
	RpcThrottleTime  []int32  `protobuf:"varint,67,rep,name=rpc_throttle_time,json=rpcThrottleTime" json:"rpc_throttle_time,omitempty"`
	RpcPendingTime   []int32  `protobuf:"varint,57,rep,name=rpc_pending_time,json=rpcPendingTime" json:"rpc_pending_time,omitempty"`
	RpcReqBuildTime  []int32  `protobuf:"varint,18,rep,name=rpc_req_build_time,json=rpcReqBuildTime" json:"rpc_req_build_time,omitempty"`
	RpcReqSendTime   []int32  `protobuf:"varint,19,rep,name=rpc_req_send_time,json=rpcReqSendTime" json:"rpc_req_send_time,omitempty"`
	RpcWaitTime      []int32  `protobuf:"varint,20,rep,name=rpc_wait_time,json=rpcWaitTime" json:"rpc_wait_time,omitempty"`
	RpcRespRecvTime  []int32  `protobuf:"varint,21,rep,name=rpc_resp_recv_time,json=rpcRespRecvTime" json:"rpc_resp_recv_time,omitempty"`
	RpcRespParseTime []int32  `protobuf:"varint,22,rep,name=rpc_resp_parse_time,json=rpcRespParseTime" json:"rpc_resp_parse_time,omitempty"`
	// in FILE_RESP.
	FileResponseTime *int32 `protobuf:"varint,32,opt,name=file_response_time,json=fileResponseTime" json:"file_response_time,omitempty"`
	NumOutputFile    *int32 `protobuf:"varint,33,opt,name=num_output_file,json=numOutputFile" json:"num_output_file,omitempty"`
	// repeated by each output file
	OutputFileTime []int32 `protobuf:"varint,34,rep,name=output_file_time,json=outputFileTime" json:"output_file_time,omitempty"`
	OutputFileSize []int32 `protobuf:"varint,35,rep,name=output_file_size,json=outputFileSize" json:"output_file_size,omitempty"`
	ChunkRespSize  []int32 `protobuf:"varint,36,rep,name=chunk_resp_size,json=chunkRespSize" json:"chunk_resp_size,omitempty"`
	// Total time elapsed for handling the request in compiler_proxy.
	HandlerTime *int32 `protobuf:"varint,37,opt,name=handler_time,json=handlerTime" json:"handler_time,omitempty"`
	// result info
	ExecCommandNotFound            *string  `protobuf:"bytes,76,opt,name=exec_command_not_found,json=execCommandNotFound" json:"exec_command_not_found,omitempty"`
	ExecCommandNameMismatch        *string  `protobuf:"bytes,73,opt,name=exec_command_name_mismatch,json=execCommandNameMismatch" json:"exec_command_name_mismatch,omitempty"`
	ExecCommandTargetMismatch      *string  `protobuf:"bytes,74,opt,name=exec_command_target_mismatch,json=execCommandTargetMismatch" json:"exec_command_target_mismatch,omitempty"`
	ExecCommandVersionMismatch     *string  `protobuf:"bytes,38,opt,name=exec_command_version_mismatch,json=execCommandVersionMismatch" json:"exec_command_version_mismatch,omitempty"`
	ExecCommandBinaryHashMismatch  *string  `protobuf:"bytes,39,opt,name=exec_command_binary_hash_mismatch,json=execCommandBinaryHashMismatch" json:"exec_command_binary_hash_mismatch,omitempty"`
	ExecCommandSubprogramsMismatch *string  `protobuf:"bytes,75,opt,name=exec_command_subprograms_mismatch,json=execCommandSubprogramsMismatch" json:"exec_command_subprograms_mismatch,omitempty"`
	ExecExitStatus                 *int32   `protobuf:"varint,40,opt,name=exec_exit_status,json=execExitStatus" json:"exec_exit_status,omitempty"`
	ExecRequestRetry               *int32   `protobuf:"varint,41,opt,name=exec_request_retry,json=execRequestRetry" json:"exec_request_retry,omitempty"`
	ExecRequestRetryReason         []string `protobuf:"bytes,56,rep,name=exec_request_retry_reason,json=execRequestRetryReason" json:"exec_request_retry_reason,omitempty"`
	// local run
	LocalRunReason   *string `protobuf:"bytes,42,opt,name=local_run_reason,json=localRunReason" json:"local_run_reason,omitempty"`
	LocalPendingTime *int32  `protobuf:"varint,43,opt,name=local_pending_time,json=localPendingTime" json:"local_pending_time,omitempty"`
	LocalRunTime     *int32  `protobuf:"varint,44,opt,name=local_run_time,json=localRunTime" json:"local_run_time,omitempty"`
	// TODO: use int32?
	LocalMemKb          *int64  `protobuf:"varint,52,opt,name=local_mem_kb,json=localMemKb" json:"local_mem_kb,omitempty"`
	LocalOutputFileTime []int32 `protobuf:"varint,54,rep,name=local_output_file_time,json=localOutputFileTime" json:"local_output_file_time,omitempty"`
	// TODO: use int64?
	LocalOutputFileSize []int32              `protobuf:"varint,55,rep,name=local_output_file_size,json=localOutputFileSize" json:"local_output_file_size,omitempty"`
	LocalDelayTime      *int32               `protobuf:"varint,61,opt,name=local_delay_time,json=localDelayTime" json:"local_delay_time,omitempty"`
	CacheHit            *bool                `protobuf:"varint,45,opt,name=cache_hit,json=cacheHit" json:"cache_hit,omitempty"`
	CacheSource         *ExecLog_CacheSource `protobuf:"varint,90,opt,name=cache_source,json=cacheSource,enum=devtools_goma.ExecLog_CacheSource" json:"cache_source,omitempty"`
	// goma_error indicates result mismatch (exit status, stdout, stderr) between
	// local and remote.
	GomaError *bool `protobuf:"varint,53,opt,name=goma_error,json=gomaError" json:"goma_error,omitempty"`
	// compiler_proxy_error indicates it replied failure exit status to gomacc
	// while remote/local compilation have succeeded.
	// so not genuie compilation failure.
	CompilerProxyError *bool `protobuf:"varint,77,opt,name=compiler_proxy_error,json=compilerProxyError" json:"compiler_proxy_error,omitempty"`
}

// Default values for ExecLog fields.
const (
	Default_ExecLog_AuthType           = ExecLog_NONE
	Default_ExecLog_NetworkFailureType = ExecLog_NO_NETWORK_ERROR
)

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

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

func (*ExecLog) ProtoMessage() {}

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

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

func (x *ExecLog) GetUsername() string {
	if x != nil && x.Username != nil {
		return *x.Username
	}
	return ""
}

func (x *ExecLog) GetNodename() string {
	if x != nil && x.Nodename != nil {
		return *x.Nodename
	}
	return ""
}

func (x *ExecLog) GetPort() int32 {
	if x != nil && x.Port != nil {
		return *x.Port
	}
	return 0
}

func (x *ExecLog) GetCompilerProxyStartTime() int32 {
	if x != nil && x.CompilerProxyStartTime != nil {
		return *x.CompilerProxyStartTime
	}
	return 0
}

func (x *ExecLog) GetTaskId() int32 {
	if x != nil && x.TaskId != nil {
		return *x.TaskId
	}
	return 0
}

func (x *ExecLog) GetBuildId() string {
	if x != nil && x.BuildId != nil {
		return *x.BuildId
	}
	return ""
}

func (x *ExecLog) GetServiceAccountId() string {
	if x != nil && x.ServiceAccountId != nil {
		return *x.ServiceAccountId
	}
	return ""
}

func (x *ExecLog) GetOauth2Email() string {
	if x != nil && x.Oauth2Email != nil {
		return *x.Oauth2Email
	}
	return ""
}

func (x *ExecLog) GetCompilerProxyUserAgent() string {
	if x != nil && x.CompilerProxyUserAgent != nil {
		return *x.CompilerProxyUserAgent
	}
	return ""
}

func (x *ExecLog) GetStartTime() int32 {
	if x != nil && x.StartTime != nil {
		return *x.StartTime
	}
	return 0
}

func (x *ExecLog) GetArg() []string {
	if x != nil {
		return x.Arg
	}
	return nil
}

func (x *ExecLog) GetEnv() []string {
	if x != nil {
		return x.Env
	}
	return nil
}

func (x *ExecLog) GetCwd() string {
	if x != nil && x.Cwd != nil {
		return *x.Cwd
	}
	return ""
}

func (x *ExecLog) GetExpandedArg() []string {
	if x != nil {
		return x.ExpandedArg
	}
	return nil
}

func (x *ExecLog) GetCommandVersion() string {
	if x != nil && x.CommandVersion != nil {
		return *x.CommandVersion
	}
	return ""
}

func (x *ExecLog) GetCommandTarget() string {
	if x != nil && x.CommandTarget != nil {
		return *x.CommandTarget
	}
	return ""
}

func (x *ExecLog) GetLatestInputFilename() string {
	if x != nil && x.LatestInputFilename != nil {
		return *x.LatestInputFilename
	}
	return ""
}

func (x *ExecLog) GetLatestInputMtime() int32 {
	if x != nil && x.LatestInputMtime != nil {
		return *x.LatestInputMtime
	}
	return 0
}

func (x *ExecLog) GetUseSsl() bool {
	if x != nil && x.UseSsl != nil {
		return *x.UseSsl
	}
	return false
}

func (x *ExecLog) GetAuthType() ExecLog_AuthenticationType {
	if x != nil && x.AuthType != nil {
		return *x.AuthType
	}
	return Default_ExecLog_AuthType
}

func (x *ExecLog) GetCpuFeatures() *CpuFeatures {
	if x != nil {
		return x.CpuFeatures
	}
	return nil
}

func (x *ExecLog) GetNetworkFailureType() ExecLog_NetworkFailureType {
	if x != nil && x.NetworkFailureType != nil {
		return *x.NetworkFailureType
	}
	return Default_ExecLog_NetworkFailureType
}

func (x *ExecLog) GetOsInfo() *OSInfo {
	if x != nil {
		return x.OsInfo
	}
	return nil
}

func (x *ExecLog) GetPendingTime() int32 {
	if x != nil && x.PendingTime != nil {
		return *x.PendingTime
	}
	return 0
}

func (x *ExecLog) GetCompilerInfoProcessTime() int32 {
	if x != nil && x.CompilerInfoProcessTime != nil {
		return *x.CompilerInfoProcessTime
	}
	return 0
}

func (x *ExecLog) GetIncludePreprocessTime() int32 {
	if x != nil && x.IncludePreprocessTime != nil {
		return *x.IncludePreprocessTime
	}
	return 0
}

func (x *ExecLog) GetIncludeProcessorWaitTime() int32 {
	if x != nil && x.IncludeProcessorWaitTime != nil {
		return *x.IncludeProcessorWaitTime
	}
	return 0
}

func (x *ExecLog) GetIncludeProcessorRunTime() int32 {
	if x != nil && x.IncludeProcessorRunTime != nil {
		return *x.IncludeProcessorRunTime
	}
	return 0
}

func (x *ExecLog) GetDepscacheUsed() bool {
	if x != nil && x.DepscacheUsed != nil {
		return *x.DepscacheUsed
	}
	return false
}

func (x *ExecLog) GetIncludePreprocessTotalFiles() int32 {
	if x != nil && x.IncludePreprocessTotalFiles != nil {
		return *x.IncludePreprocessTotalFiles
	}
	return 0
}

func (x *ExecLog) GetIncludePreprocessSkippedFiles() int32 {
	if x != nil && x.IncludePreprocessSkippedFiles != nil {
		return *x.IncludePreprocessSkippedFiles
	}
	return 0
}

func (x *ExecLog) GetIncludeFileloadTime() int32 {
	if x != nil && x.IncludeFileloadTime != nil {
		return *x.IncludeFileloadTime
	}
	return 0
}

func (x *ExecLog) GetIncludeFileloadPendingTime() []int32 {
	if x != nil {
		return x.IncludeFileloadPendingTime
	}
	return nil
}

func (x *ExecLog) GetIncludeFileloadRunTime() []int32 {
	if x != nil {
		return x.IncludeFileloadRunTime
	}
	return nil
}

func (x *ExecLog) GetNumTotalInputFile() int32 {
	if x != nil && x.NumTotalInputFile != nil {
		return *x.NumTotalInputFile
	}
	return 0
}

func (x *ExecLog) GetTotalInputFileSize() int64 {
	if x != nil && x.TotalInputFileSize != nil {
		return *x.TotalInputFileSize
	}
	return 0
}

func (x *ExecLog) GetNumUploadingInputFile() []int32 {
	if x != nil {
		return x.NumUploadingInputFile
	}
	return nil
}

func (x *ExecLog) GetNumMissingInputFile() []int32 {
	if x != nil {
		return x.NumMissingInputFile
	}
	return nil
}

func (x *ExecLog) GetNumDroppedInputFile() []int32 {
	if x != nil {
		return x.NumDroppedInputFile
	}
	return nil
}

func (x *ExecLog) GetNumFileUploadedDuringExecFailure() []int32 {
	if x != nil {
		return x.NumFileUploadedDuringExecFailure
	}
	return nil
}

func (x *ExecLog) GetInputFileTime() []int32 {
	if x != nil {
		return x.InputFileTime
	}
	return nil
}

func (x *ExecLog) GetInputFileSize() []int32 {
	if x != nil {
		return x.InputFileSize
	}
	return nil
}

func (x *ExecLog) GetRpcCallTime() []int32 {
	if x != nil {
		return x.RpcCallTime
	}
	return nil
}

func (x *ExecLog) GetRpcReqSize() []int32 {
	if x != nil {
		return x.RpcReqSize
	}
	return nil
}

func (x *ExecLog) GetRpcRespSize() []int32 {
	if x != nil {
		return x.RpcRespSize
	}
	return nil
}

func (x *ExecLog) GetRpcRawReqSize() []int32 {
	if x != nil {
		return x.RpcRawReqSize
	}
	return nil
}

func (x *ExecLog) GetRpcRawRespSize() []int32 {
	if x != nil {
		return x.RpcRawRespSize
	}
	return nil
}

func (x *ExecLog) GetRpcMasterTraceId() []string {
	if x != nil {
		return x.RpcMasterTraceId
	}
	return nil
}

func (x *ExecLog) GetRpcThrottleTime() []int32 {
	if x != nil {
		return x.RpcThrottleTime
	}
	return nil
}

func (x *ExecLog) GetRpcPendingTime() []int32 {
	if x != nil {
		return x.RpcPendingTime
	}
	return nil
}

func (x *ExecLog) GetRpcReqBuildTime() []int32 {
	if x != nil {
		return x.RpcReqBuildTime
	}
	return nil
}

func (x *ExecLog) GetRpcReqSendTime() []int32 {
	if x != nil {
		return x.RpcReqSendTime
	}
	return nil
}

func (x *ExecLog) GetRpcWaitTime() []int32 {
	if x != nil {
		return x.RpcWaitTime
	}
	return nil
}

func (x *ExecLog) GetRpcRespRecvTime() []int32 {
	if x != nil {
		return x.RpcRespRecvTime
	}
	return nil
}

func (x *ExecLog) GetRpcRespParseTime() []int32 {
	if x != nil {
		return x.RpcRespParseTime
	}
	return nil
}

func (x *ExecLog) GetFileResponseTime() int32 {
	if x != nil && x.FileResponseTime != nil {
		return *x.FileResponseTime
	}
	return 0
}

func (x *ExecLog) GetNumOutputFile() int32 {
	if x != nil && x.NumOutputFile != nil {
		return *x.NumOutputFile
	}
	return 0
}

func (x *ExecLog) GetOutputFileTime() []int32 {
	if x != nil {
		return x.OutputFileTime
	}
	return nil
}

func (x *ExecLog) GetOutputFileSize() []int32 {
	if x != nil {
		return x.OutputFileSize
	}
	return nil
}

func (x *ExecLog) GetChunkRespSize() []int32 {
	if x != nil {
		return x.ChunkRespSize
	}
	return nil
}

func (x *ExecLog) GetHandlerTime() int32 {
	if x != nil && x.HandlerTime != nil {
		return *x.HandlerTime
	}
	return 0
}

func (x *ExecLog) GetExecCommandNotFound() string {
	if x != nil && x.ExecCommandNotFound != nil {
		return *x.ExecCommandNotFound
	}
	return ""
}

func (x *ExecLog) GetExecCommandNameMismatch() string {
	if x != nil && x.ExecCommandNameMismatch != nil {
		return *x.ExecCommandNameMismatch
	}
	return ""
}

func (x *ExecLog) GetExecCommandTargetMismatch() string {
	if x != nil && x.ExecCommandTargetMismatch != nil {
		return *x.ExecCommandTargetMismatch
	}
	return ""
}

func (x *ExecLog) GetExecCommandVersionMismatch() string {
	if x != nil && x.ExecCommandVersionMismatch != nil {
		return *x.ExecCommandVersionMismatch
	}
	return ""
}

func (x *ExecLog) GetExecCommandBinaryHashMismatch() string {
	if x != nil && x.ExecCommandBinaryHashMismatch != nil {
		return *x.ExecCommandBinaryHashMismatch
	}
	return ""
}

func (x *ExecLog) GetExecCommandSubprogramsMismatch() string {
	if x != nil && x.ExecCommandSubprogramsMismatch != nil {
		return *x.ExecCommandSubprogramsMismatch
	}
	return ""
}

func (x *ExecLog) GetExecExitStatus() int32 {
	if x != nil && x.ExecExitStatus != nil {
		return *x.ExecExitStatus
	}
	return 0
}

func (x *ExecLog) GetExecRequestRetry() int32 {
	if x != nil && x.ExecRequestRetry != nil {
		return *x.ExecRequestRetry
	}
	return 0
}

func (x *ExecLog) GetExecRequestRetryReason() []string {
	if x != nil {
		return x.ExecRequestRetryReason
	}
	return nil
}

func (x *ExecLog) GetLocalRunReason() string {
	if x != nil && x.LocalRunReason != nil {
		return *x.LocalRunReason
	}
	return ""
}

func (x *ExecLog) GetLocalPendingTime() int32 {
	if x != nil && x.LocalPendingTime != nil {
		return *x.LocalPendingTime
	}
	return 0
}

func (x *ExecLog) GetLocalRunTime() int32 {
	if x != nil && x.LocalRunTime != nil {
		return *x.LocalRunTime
	}
	return 0
}

func (x *ExecLog) GetLocalMemKb() int64 {
	if x != nil && x.LocalMemKb != nil {
		return *x.LocalMemKb
	}
	return 0
}

func (x *ExecLog) GetLocalOutputFileTime() []int32 {
	if x != nil {
		return x.LocalOutputFileTime
	}
	return nil
}

func (x *ExecLog) GetLocalOutputFileSize() []int32 {
	if x != nil {
		return x.LocalOutputFileSize
	}
	return nil
}

func (x *ExecLog) GetLocalDelayTime() int32 {
	if x != nil && x.LocalDelayTime != nil {
		return *x.LocalDelayTime
	}
	return 0
}

func (x *ExecLog) GetCacheHit() bool {
	if x != nil && x.CacheHit != nil {
		return *x.CacheHit
	}
	return false
}

func (x *ExecLog) GetCacheSource() ExecLog_CacheSource {
	if x != nil && x.CacheSource != nil {
		return *x.CacheSource
	}
	return ExecLog_UNKNOWN_CACHE
}

func (x *ExecLog) GetGomaError() bool {
	if x != nil && x.GomaError != nil {
		return *x.GomaError
	}
	return false
}

func (x *ExecLog) GetCompilerProxyError() bool {
	if x != nil && x.CompilerProxyError != nil {
		return *x.CompilerProxyError
	}
	return false
}

// NEXT ID TO USE: 8
type MemoryUsageLog struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// compiler_proxy identification
	CompilerProxyStartTime *int32  `protobuf:"varint,1,opt,name=compiler_proxy_start_time,json=compilerProxyStartTime" json:"compiler_proxy_start_time,omitempty"`
	CompilerProxyUserAgent *string `protobuf:"bytes,2,opt,name=compiler_proxy_user_agent,json=compilerProxyUserAgent" json:"compiler_proxy_user_agent,omitempty"`
	// user information
	Username *string `protobuf:"bytes,3,opt,name=username" json:"username,omitempty"`
	Nodename *string `protobuf:"bytes,4,opt,name=nodename" json:"nodename,omitempty"`
	// memory information
	Memory        *int64 `protobuf:"varint,5,opt,name=memory" json:"memory,omitempty"`
	VirtualMemory *int64 `protobuf:"varint,7,opt,name=virtual_memory,json=virtualMemory" json:"virtual_memory,omitempty"`
	Time          *int64 `protobuf:"varint,6,opt,name=time" json:"time,omitempty"`
}

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

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

func (*MemoryUsageLog) ProtoMessage() {}

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

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

func (x *MemoryUsageLog) GetCompilerProxyStartTime() int32 {
	if x != nil && x.CompilerProxyStartTime != nil {
		return *x.CompilerProxyStartTime
	}
	return 0
}

func (x *MemoryUsageLog) GetCompilerProxyUserAgent() string {
	if x != nil && x.CompilerProxyUserAgent != nil {
		return *x.CompilerProxyUserAgent
	}
	return ""
}

func (x *MemoryUsageLog) GetUsername() string {
	if x != nil && x.Username != nil {
		return *x.Username
	}
	return ""
}

func (x *MemoryUsageLog) GetNodename() string {
	if x != nil && x.Nodename != nil {
		return *x.Nodename
	}
	return ""
}

func (x *MemoryUsageLog) GetMemory() int64 {
	if x != nil && x.Memory != nil {
		return *x.Memory
	}
	return 0
}

func (x *MemoryUsageLog) GetVirtualMemory() int64 {
	if x != nil && x.VirtualMemory != nil {
		return *x.VirtualMemory
	}
	return 0
}

func (x *MemoryUsageLog) GetTime() int64 {
	if x != nil && x.Time != nil {
		return *x.Time
	}
	return 0
}

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

	ExecLog        []*ExecLog        `protobuf:"bytes,1,rep,name=exec_log,json=execLog" json:"exec_log,omitempty"`
	MemoryUsageLog []*MemoryUsageLog `protobuf:"bytes,2,rep,name=memory_usage_log,json=memoryUsageLog" json:"memory_usage_log,omitempty"`
}

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

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

func (*SaveLogReq) ProtoMessage() {}

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

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

func (x *SaveLogReq) GetExecLog() []*ExecLog {
	if x != nil {
		return x.ExecLog
	}
	return nil
}

func (x *SaveLogReq) GetMemoryUsageLog() []*MemoryUsageLog {
	if x != nil {
		return x.MemoryUsageLog
	}
	return nil
}

type SaveLogResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*SaveLogResp) ProtoMessage() {}

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

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

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

	Samples       *int64 `protobuf:"varint,1,opt,name=samples" json:"samples,omitempty"`
	Average       *int32 `protobuf:"varint,2,opt,name=average" json:"average,omitempty"`
	Minimum       *int32 `protobuf:"varint,10,opt,name=minimum" json:"minimum,omitempty"`
	Percentile_2  *int32 `protobuf:"varint,11,opt,name=percentile_2,json=percentile2" json:"percentile_2,omitempty"`
	Percentile_9  *int32 `protobuf:"varint,12,opt,name=percentile_9,json=percentile9" json:"percentile_9,omitempty"`
	LowerQuantile *int32 `protobuf:"varint,13,opt,name=lower_quantile,json=lowerQuantile" json:"lower_quantile,omitempty"`
	Median        *int32 `protobuf:"varint,14,opt,name=median" json:"median,omitempty"`
	UpperQuantile *int32 `protobuf:"varint,15,opt,name=upper_quantile,json=upperQuantile" json:"upper_quantile,omitempty"`
	Percentile_91 *int32 `protobuf:"varint,16,opt,name=percentile_91,json=percentile91" json:"percentile_91,omitempty"`
	Percentile_98 *int32 `protobuf:"varint,17,opt,name=percentile_98,json=percentile98" json:"percentile_98,omitempty"`
	Maximum       *int32 `protobuf:"varint,18,opt,name=maximum" json:"maximum,omitempty"`
}

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

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

func (*NumberSummary) ProtoMessage() {}

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

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

func (x *NumberSummary) GetSamples() int64 {
	if x != nil && x.Samples != nil {
		return *x.Samples
	}
	return 0
}

func (x *NumberSummary) GetAverage() int32 {
	if x != nil && x.Average != nil {
		return *x.Average
	}
	return 0
}

func (x *NumberSummary) GetMinimum() int32 {
	if x != nil && x.Minimum != nil {
		return *x.Minimum
	}
	return 0
}

func (x *NumberSummary) GetPercentile_2() int32 {
	if x != nil && x.Percentile_2 != nil {
		return *x.Percentile_2
	}
	return 0
}

func (x *NumberSummary) GetPercentile_9() int32 {
	if x != nil && x.Percentile_9 != nil {
		return *x.Percentile_9
	}
	return 0
}

func (x *NumberSummary) GetLowerQuantile() int32 {
	if x != nil && x.LowerQuantile != nil {
		return *x.LowerQuantile
	}
	return 0
}

func (x *NumberSummary) GetMedian() int32 {
	if x != nil && x.Median != nil {
		return *x.Median
	}
	return 0
}

func (x *NumberSummary) GetUpperQuantile() int32 {
	if x != nil && x.UpperQuantile != nil {
		return *x.UpperQuantile
	}
	return 0
}

func (x *NumberSummary) GetPercentile_91() int32 {
	if x != nil && x.Percentile_91 != nil {
		return *x.Percentile_91
	}
	return 0
}

func (x *NumberSummary) GetPercentile_98() int32 {
	if x != nil && x.Percentile_98 != nil {
		return *x.Percentile_98
	}
	return 0
}

func (x *NumberSummary) GetMaximum() int32 {
	if x != nil && x.Maximum != nil {
		return *x.Maximum
	}
	return 0
}

// NEXT ID TO USE: 13
type ExecLogStat struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	HandlerTime             *NumberSummary `protobuf:"bytes,1,opt,name=handler_time,json=handlerTime" json:"handler_time,omitempty"`
	CompilerInfoProcessTime *NumberSummary `protobuf:"bytes,12,opt,name=compiler_info_process_time,json=compilerInfoProcessTime" json:"compiler_info_process_time,omitempty"`
	IncludePreprocessTime   *NumberSummary `protobuf:"bytes,2,opt,name=include_preprocess_time,json=includePreprocessTime" json:"include_preprocess_time,omitempty"`
	IncludeFileloadTime     *NumberSummary `protobuf:"bytes,3,opt,name=include_fileload_time,json=includeFileloadTime" json:"include_fileload_time,omitempty"`
	RpcCallTime             *NumberSummary `protobuf:"bytes,4,opt,name=rpc_call_time,json=rpcCallTime" json:"rpc_call_time,omitempty"`
	FileResponseTime        *NumberSummary `protobuf:"bytes,7,opt,name=file_response_time,json=fileResponseTime" json:"file_response_time,omitempty"`
	LocalPendingTime        *NumberSummary `protobuf:"bytes,8,opt,name=local_pending_time,json=localPendingTime" json:"local_pending_time,omitempty"`
	LocalRunTime            *NumberSummary `protobuf:"bytes,9,opt,name=local_run_time,json=localRunTime" json:"local_run_time,omitempty"`
	CacheHit                *int64         `protobuf:"varint,10,opt,name=cache_hit,json=cacheHit" json:"cache_hit,omitempty"`
	GomaError               *int64         `protobuf:"varint,11,opt,name=goma_error,json=gomaError" json:"goma_error,omitempty"`
}

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

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

func (*ExecLogStat) ProtoMessage() {}

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

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

func (x *ExecLogStat) GetHandlerTime() *NumberSummary {
	if x != nil {
		return x.HandlerTime
	}
	return nil
}

func (x *ExecLogStat) GetCompilerInfoProcessTime() *NumberSummary {
	if x != nil {
		return x.CompilerInfoProcessTime
	}
	return nil
}

func (x *ExecLogStat) GetIncludePreprocessTime() *NumberSummary {
	if x != nil {
		return x.IncludePreprocessTime
	}
	return nil
}

func (x *ExecLogStat) GetIncludeFileloadTime() *NumberSummary {
	if x != nil {
		return x.IncludeFileloadTime
	}
	return nil
}

func (x *ExecLogStat) GetRpcCallTime() *NumberSummary {
	if x != nil {
		return x.RpcCallTime
	}
	return nil
}

func (x *ExecLogStat) GetFileResponseTime() *NumberSummary {
	if x != nil {
		return x.FileResponseTime
	}
	return nil
}

func (x *ExecLogStat) GetLocalPendingTime() *NumberSummary {
	if x != nil {
		return x.LocalPendingTime
	}
	return nil
}

func (x *ExecLogStat) GetLocalRunTime() *NumberSummary {
	if x != nil {
		return x.LocalRunTime
	}
	return nil
}

func (x *ExecLogStat) GetCacheHit() int64 {
	if x != nil && x.CacheHit != nil {
		return *x.CacheHit
	}
	return 0
}

func (x *ExecLogStat) GetGomaError() int64 {
	if x != nil && x.GomaError != nil {
		return *x.GomaError
	}
	return 0
}

// NEXT ID TO USE: 12
type CpuFeatures struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Mmx                     *bool `protobuf:"varint,1,opt,name=mmx" json:"mmx,omitempty"`
	Sse                     *bool `protobuf:"varint,2,opt,name=sse" json:"sse,omitempty"`
	Sse2                    *bool `protobuf:"varint,3,opt,name=sse2" json:"sse2,omitempty"`
	Sse3                    *bool `protobuf:"varint,4,opt,name=sse3" json:"sse3,omitempty"`
	Sse41                   *bool `protobuf:"varint,5,opt,name=sse41" json:"sse41,omitempty"`
	Sse42                   *bool `protobuf:"varint,6,opt,name=sse42" json:"sse42,omitempty"`
	Popcnt                  *bool `protobuf:"varint,7,opt,name=popcnt" json:"popcnt,omitempty"`
	Avx                     *bool `protobuf:"varint,8,opt,name=avx" json:"avx,omitempty"`
	Avx2                    *bool `protobuf:"varint,9,opt,name=avx2" json:"avx2,omitempty"`
	Aesni                   *bool `protobuf:"varint,10,opt,name=aesni" json:"aesni,omitempty"`
	NonStopTimeStampCounter *bool `protobuf:"varint,11,opt,name=non_stop_time_stamp_counter,json=nonStopTimeStampCounter" json:"non_stop_time_stamp_counter,omitempty"`
}

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

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

func (*CpuFeatures) ProtoMessage() {}

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

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

func (x *CpuFeatures) GetMmx() bool {
	if x != nil && x.Mmx != nil {
		return *x.Mmx
	}
	return false
}

func (x *CpuFeatures) GetSse() bool {
	if x != nil && x.Sse != nil {
		return *x.Sse
	}
	return false
}

func (x *CpuFeatures) GetSse2() bool {
	if x != nil && x.Sse2 != nil {
		return *x.Sse2
	}
	return false
}

func (x *CpuFeatures) GetSse3() bool {
	if x != nil && x.Sse3 != nil {
		return *x.Sse3
	}
	return false
}

func (x *CpuFeatures) GetSse41() bool {
	if x != nil && x.Sse41 != nil {
		return *x.Sse41
	}
	return false
}

func (x *CpuFeatures) GetSse42() bool {
	if x != nil && x.Sse42 != nil {
		return *x.Sse42
	}
	return false
}

func (x *CpuFeatures) GetPopcnt() bool {
	if x != nil && x.Popcnt != nil {
		return *x.Popcnt
	}
	return false
}

func (x *CpuFeatures) GetAvx() bool {
	if x != nil && x.Avx != nil {
		return *x.Avx
	}
	return false
}

func (x *CpuFeatures) GetAvx2() bool {
	if x != nil && x.Avx2 != nil {
		return *x.Avx2
	}
	return false
}

func (x *CpuFeatures) GetAesni() bool {
	if x != nil && x.Aesni != nil {
		return *x.Aesni
	}
	return false
}

func (x *CpuFeatures) GetNonStopTimeStampCounter() bool {
	if x != nil && x.NonStopTimeStampCounter != nil {
		return *x.NonStopTimeStampCounter
	}
	return false
}

// NEXT ID TO USE: 4
type OSInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to OsInfoOneof:
	//	*OSInfo_LinuxInfo_
	//	*OSInfo_WinInfo_
	//	*OSInfo_MacInfo_
	OsInfoOneof isOSInfo_OsInfoOneof `protobuf_oneof:"os_info_oneof"`
}

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

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

func (*OSInfo) ProtoMessage() {}

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

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

func (m *OSInfo) GetOsInfoOneof() isOSInfo_OsInfoOneof {
	if m != nil {
		return m.OsInfoOneof
	}
	return nil
}

func (x *OSInfo) GetLinuxInfo() *OSInfo_LinuxInfo {
	if x, ok := x.GetOsInfoOneof().(*OSInfo_LinuxInfo_); ok {
		return x.LinuxInfo
	}
	return nil
}

func (x *OSInfo) GetWinInfo() *OSInfo_WinInfo {
	if x, ok := x.GetOsInfoOneof().(*OSInfo_WinInfo_); ok {
		return x.WinInfo
	}
	return nil
}

func (x *OSInfo) GetMacInfo() *OSInfo_MacInfo {
	if x, ok := x.GetOsInfoOneof().(*OSInfo_MacInfo_); ok {
		return x.MacInfo
	}
	return nil
}

type isOSInfo_OsInfoOneof interface {
	isOSInfo_OsInfoOneof()
}

type OSInfo_LinuxInfo_ struct {
	LinuxInfo *OSInfo_LinuxInfo `protobuf:"bytes,1,opt,name=linux_info,json=linuxInfo,oneof"`
}

type OSInfo_WinInfo_ struct {
	WinInfo *OSInfo_WinInfo `protobuf:"bytes,2,opt,name=win_info,json=winInfo,oneof"`
}

type OSInfo_MacInfo_ struct {
	MacInfo *OSInfo_MacInfo `protobuf:"bytes,3,opt,name=mac_info,json=macInfo,oneof"`
}

func (*OSInfo_LinuxInfo_) isOSInfo_OsInfoOneof() {}

func (*OSInfo_WinInfo_) isOSInfo_OsInfoOneof() {}

func (*OSInfo_MacInfo_) isOSInfo_OsInfoOneof() {}

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

	GnuLibcVersion *string `protobuf:"bytes,1,opt,name=gnu_libc_version,json=gnuLibcVersion" json:"gnu_libc_version,omitempty"`
}

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

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

func (*OSInfo_LinuxInfo) ProtoMessage() {}

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

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

func (x *OSInfo_LinuxInfo) GetGnuLibcVersion() string {
	if x != nil && x.GnuLibcVersion != nil {
		return *x.GnuLibcVersion
	}
	return ""
}

type OSInfo_WinInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*OSInfo_WinInfo) ProtoMessage() {}

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

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

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

	// TODO: Have max_osx_major_version
	MacOsxMinorVersion *int32 `protobuf:"varint,1,opt,name=mac_osx_minor_version,json=macOsxMinorVersion" json:"mac_osx_minor_version,omitempty"`
}

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

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

func (*OSInfo_MacInfo) ProtoMessage() {}

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

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

func (x *OSInfo_MacInfo) GetMacOsxMinorVersion() int32 {
	if x != nil && x.MacOsxMinorVersion != nil {
		return *x.MacOsxMinorVersion
	}
	return 0
}

var File_api_goma_log_proto protoreflect.FileDescriptor

var file_api_goma_log_proto_rawDesc = []byte{
	0x0a, 0x12, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x6d, 0x61, 0x5f, 0x6c, 0x6f, 0x67, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67,
	0x6f, 0x6d, 0x61, 0x22, 0xd4, 0x21, 0x0a, 0x07, 0x45, 0x78, 0x65, 0x63, 0x4c, 0x6f, 0x67, 0x12,
	0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
	0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
	0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18,
	0x30, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x39, 0x0a, 0x19, 0x63,
	0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16,
	0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69,
	0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
	0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x5b, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65,
	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64,
	0x18, 0x5e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x61, 0x75, 0x74,
	0x68, 0x32, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
	0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x39, 0x0a, 0x19, 0x63,
	0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x75, 0x73,
	0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16,
	0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x73, 0x65,
	0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x03, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x03, 0x61, 0x72, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x04,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x77, 0x64,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x77, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65,
	0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x3e, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x72, 0x67, 0x12, 0x27,
	0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
	0x6e, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x48, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x32,
	0x0a, 0x15, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66,
	0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6c,
	0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10,
	0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65,
	0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x73, 0x6c, 0x18, 0x40, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x06, 0x75, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x12, 0x4c, 0x0a, 0x09, 0x61, 0x75, 0x74,
	0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x56, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x64,
	0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x45, 0x78, 0x65,
	0x63, 0x4c, 0x6f, 0x67, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x52, 0x08, 0x61,
	0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x70, 0x75, 0x5f, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x57, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x43, 0x70,
	0x75, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x14, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
	0x6b, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x58,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f,
	0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x4c, 0x6f, 0x67, 0x2e, 0x4e, 0x65, 0x74,
	0x77, 0x6f, 0x72, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3a,
	0x10, 0x4e, 0x4f, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x4f,
	0x52, 0x52, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
	0x18, 0x59, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
	0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f,
	0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x65, 0x6e,
	0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x70,
	0x69, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x63, 0x6f,
	0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
	0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
	0x5f, 0x70, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50,
	0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a,
	0x1b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x54, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x18, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x6f, 0x72, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x1a,
	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x55, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x70,
	0x73, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x4e, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x73, 0x63, 0x61, 0x63, 0x68, 0x65, 0x55, 0x73, 0x65, 0x64,
	0x12, 0x43, 0x0a, 0x1e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x70,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c,
	0x65, 0x73, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
	0x65, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c,
	0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
	0x5f, 0x70, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70,
	0x70, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x50, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x32,
	0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6c, 0x6f,
	0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69,
	0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x69,
	0x6c, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x45, 0x20, 0x03, 0x28, 0x05, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x6c, 0x75,
	0x64, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e,
	0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
	0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x46, 0x20, 0x03, 0x28, 0x05, 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
	0x65, 0x46, 0x69, 0x6c, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x2f, 0x0a, 0x14, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6e,
	0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11,
	0x6e, 0x75, 0x6d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c,
	0x65, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74,
	0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65,
	0x53, 0x69, 0x7a, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x70, 0x6c, 0x6f,
	0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65,
	0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x15, 0x6e, 0x75, 0x6d, 0x55, 0x70, 0x6c, 0x6f, 0x61,
	0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x33, 0x0a,
	0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x70,
	0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x13, 0x6e,
	0x75, 0x6d, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69,
	0x6c, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6e, 0x75, 0x6d, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65,
	0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x5c, 0x20, 0x03,
	0x28, 0x05, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x49, 0x6e,
	0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x4f, 0x0a, 0x25, 0x6e, 0x75, 0x6d, 0x5f, 0x66,
	0x69, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72,
	0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
	0x18, 0x42, 0x20, 0x03, 0x28, 0x05, 0x52, 0x20, 0x6e, 0x75, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x55,
	0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x44, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x65,
	0x63, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75,
	0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28,
	0x05, 0x52, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74,
	0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x70, 0x63, 0x5f,
	0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x05, 0x52,
	0x0b, 0x72, 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c,
	0x72, 0x70, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x03,
	0x28, 0x05, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22,
	0x0a, 0x0d, 0x72, 0x70, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18,
	0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x70, 0x63, 0x52, 0x65, 0x73, 0x70, 0x53, 0x69,
	0x7a, 0x65, 0x12, 0x27, 0x0a, 0x10, 0x72, 0x70, 0x63, 0x5f, 0x72, 0x61, 0x77, 0x5f, 0x72, 0x65,
	0x71, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x70,
	0x63, 0x52, 0x61, 0x77, 0x52, 0x65, 0x71, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x72,
	0x70, 0x63, 0x5f, 0x72, 0x61, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65,
	0x18, 0x11, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x70, 0x63, 0x52, 0x61, 0x77, 0x52, 0x65,
	0x73, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x61,
	0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x3a, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x70, 0x63, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x54, 0x72,
	0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x70, 0x63, 0x5f, 0x74, 0x68, 0x72,
	0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x43, 0x20, 0x03, 0x28, 0x05,
	0x52, 0x0f, 0x72, 0x70, 0x63, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x70, 0x63, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x39, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x70, 0x63,
	0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x72,
	0x70, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x42,
	0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x72, 0x70, 0x63, 0x5f,
	0x72, 0x65, 0x71, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20,
	0x03, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x70, 0x63, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6e, 0x64, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x70, 0x63, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x70, 0x63, 0x57,
	0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x72, 0x70, 0x63, 0x5f, 0x72,
	0x65, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20,
	0x03, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x70, 0x63, 0x52, 0x65, 0x73, 0x70, 0x52, 0x65, 0x63, 0x76,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x72, 0x70, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x70,
	0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x03, 0x28,
	0x05, 0x52, 0x10, 0x72, 0x70, 0x63, 0x52, 0x65, 0x73, 0x70, 0x50, 0x61, 0x72, 0x73, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x10, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x69, 0x6d,
	0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f,
	0x66, 0x69, 0x6c, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x4f,
	0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x22, 0x20,
	0x03, 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69,
	0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x23, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x6f,
	0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a,
	0x0f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65,
	0x18, 0x24, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73,
	0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x68, 0x61, 0x6e,
	0x64, 0x6c, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x65, 0x78, 0x65, 0x63,
	0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75,
	0x6e, 0x64, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x65, 0x78, 0x65, 0x63, 0x43, 0x6f,
	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3b, 0x0a,
	0x1a, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x49, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x17, 0x65, 0x78, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4e, 0x61,
	0x6d, 0x65, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3f, 0x0a, 0x1c, 0x65, 0x78,
	0x65, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x19, 0x65, 0x78, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x41, 0x0a, 0x1d, 0x65,
	0x78, 0x65, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x26, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x1a, 0x65, 0x78, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x56,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x48,
	0x0a, 0x21, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x62,
	0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x65, 0x78, 0x65, 0x63, 0x43,
	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x61, 0x73, 0x68,
	0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x49, 0x0a, 0x21, 0x65, 0x78, 0x65, 0x63,
	0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x70, 0x72, 0x6f, 0x67,
	0x72, 0x61, 0x6d, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x4b, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x1e, 0x65, 0x78, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
	0x53, 0x75, 0x62, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x4d, 0x69, 0x73, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x65, 0x78, 0x69, 0x74,
	0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x28, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65,
	0x78, 0x65, 0x63, 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a,
	0x12, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65,
	0x74, 0x72, 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x39, 0x0a, 0x19, 0x65,
	0x78, 0x65, 0x63, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x74, 0x72,
	0x79, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x38, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16,
	0x65, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x74, 0x72, 0x79,
	0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
	0x72, 0x75, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e,
	0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6c, 0x6f,
	0x63, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24,
	0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x2c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x75, 0x6e,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x65,
	0x6d, 0x5f, 0x6b, 0x62, 0x18, 0x34, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61,
	0x6c, 0x4d, 0x65, 0x6d, 0x4b, 0x62, 0x12, 0x33, 0x0a, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x36, 0x20, 0x03, 0x28, 0x05, 0x52, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4f, 0x75, 0x74,
	0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6c,
	0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65,
	0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x37, 0x20, 0x03, 0x28, 0x05, 0x52, 0x13, 0x6c, 0x6f, 0x63,
	0x61, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65,
	0x12, 0x28, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61,
	0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61,
	0x63, 0x68, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63,
	0x61, 0x63, 0x68, 0x65, 0x48, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65,
	0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e,
	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x45, 0x78,
	0x65, 0x63, 0x4c, 0x6f, 0x67, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d,
	0x0a, 0x0a, 0x67, 0x6f, 0x6d, 0x61, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x35, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x09, 0x67, 0x6f, 0x6d, 0x61, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x30, 0x0a,
	0x14, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x63, 0x6f, 0x6d,
	0x70, 0x69, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22,
	0xae, 0x01, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00,
	0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x11, 0x0a,
	0x0d, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x32, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x10, 0x04,
	0x12, 0x16, 0x0a, 0x12, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x32, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49,
	0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x41, 0x55, 0x54,
	0x48, 0x32, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55,
	0x4e, 0x54, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x32, 0x5f, 0x47,
	0x43, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55,
	0x4e, 0x54, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x32, 0x5f, 0x4c,
	0x55, 0x43, 0x49, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x10, 0x08,
	0x22, 0xbf, 0x01, 0x0a, 0x12, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x46, 0x61, 0x69, 0x6c,
	0x75, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x4f, 0x5f, 0x4e, 0x45,
	0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x0c, 0x0a,
	0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x55,
	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45,
	0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43,
	0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x45,
	0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x54,
	0x49, 0x4d, 0x45, 0x44, 0x4f, 0x55, 0x54, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x53, 0x45,
	0x4e, 0x44, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x5f,
	0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x41, 0x44, 0x5f,
	0x48, 0x54, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45,
	0x10, 0x07, 0x22, 0x5a, 0x0a, 0x0b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x41, 0x43,
	0x48, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x45, 0x4d, 0x5f, 0x43, 0x41, 0x43, 0x48,
	0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x43,
	0x41, 0x43, 0x48, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f,
	0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x10, 0x03, 0x4a, 0x04,
	0x08, 0x51, 0x10, 0x52, 0x4a, 0x04, 0x08, 0x41, 0x10, 0x42, 0x22, 0x91, 0x02, 0x0a, 0x0e, 0x4d,
	0x65, 0x6d, 0x6f, 0x72, 0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x39, 0x0a,
	0x19, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53,
	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x70,
	0x69, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f,
	0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x6f, 0x6d,
	0x70, 0x69, 0x6c, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x73, 0x65, 0x72, 0x41, 0x67,
	0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d,
	0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x65, 0x6d,
	0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x6d,
	0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x76, 0x69, 0x72,
	0x74, 0x75, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69,
	0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x88,
	0x01, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x12, 0x31, 0x0a,
	0x08, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x16, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e,
	0x45, 0x78, 0x65, 0x63, 0x4c, 0x6f, 0x67, 0x52, 0x07, 0x65, 0x78, 0x65, 0x63, 0x4c, 0x6f, 0x67,
	0x12, 0x47, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65,
	0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x65, 0x76,
	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72,
	0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x52, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
	0x79, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x67, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x61, 0x76,
	0x65, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0xed, 0x02, 0x0a, 0x0d, 0x4e, 0x75, 0x6d,
	0x62, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x61,
	0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x61, 0x6d,
	0x70, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x18,
	0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x63,
	0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
	0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x70,
	0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x39, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x12, 0x25,
	0x0a, 0x0e, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65,
	0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x51, 0x75, 0x61,
	0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x12, 0x25, 0x0a,
	0x0e, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x75, 0x70, 0x70, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e,
	0x74, 0x69, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69,
	0x6c, 0x65, 0x5f, 0x39, 0x31, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x65, 0x72,
	0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x31, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x65, 0x72,
	0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x5f, 0x39, 0x38, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x38, 0x12, 0x18,
	0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x22, 0xab, 0x05, 0x0a, 0x0b, 0x45, 0x78, 0x65,
	0x63, 0x4c, 0x6f, 0x67, 0x53, 0x74, 0x61, 0x74, 0x12, 0x3f, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0b, 0x68, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x1a, 0x63, 0x6f, 0x6d,
	0x70, 0x69, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65,
	0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4e, 0x75,
	0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x17, 0x63, 0x6f, 0x6d,
	0x70, 0x69, 0x6c, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f,
	0x70, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73,
	0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d,
	0x61, 0x72, 0x79, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x65, 0x70,
	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x15, 0x69, 0x6e,
	0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x74,
	0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
	0x46, 0x69, 0x6c, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0d,
	0x72, 0x70, 0x63, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67,
	0x6f, 0x6d, 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72,
	0x79, 0x52, 0x0b, 0x72, 0x70, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a,
	0x0a, 0x12, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
	0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76,
	0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65,
	0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x12, 0x6c, 0x6f,
	0x63, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65,
	0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
	0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x6d,
	0x6d, 0x61, 0x72, 0x79, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69,
	0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
	0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x0c, 0x6c, 0x6f,
	0x63, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61,
	0x63, 0x68, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63,
	0x61, 0x63, 0x68, 0x65, 0x48, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x6d, 0x61, 0x5f,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x6f, 0x6d,
	0x61, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x97, 0x02, 0x0a, 0x0b, 0x43, 0x70, 0x75, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x6d, 0x78, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x03, 0x6d, 0x6d, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x73, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x73, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x73,
	0x65, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x73, 0x65, 0x32, 0x12, 0x12,
	0x0a, 0x04, 0x73, 0x73, 0x65, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x73,
	0x65, 0x33, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x73, 0x65, 0x34, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x05, 0x73, 0x73, 0x65, 0x34, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x73, 0x65, 0x34,
	0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x73, 0x65, 0x34, 0x32, 0x12, 0x16,
	0x0a, 0x06, 0x70, 0x6f, 0x70, 0x63, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
	0x70, 0x6f, 0x70, 0x63, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x76, 0x78, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x76, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x76, 0x78, 0x32,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x61, 0x76, 0x78, 0x32, 0x12, 0x14, 0x0a, 0x05,
	0x61, 0x65, 0x73, 0x6e, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x65, 0x73,
	0x6e, 0x69, 0x12, 0x3c, 0x0a, 0x1b, 0x6e, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65,
	0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x6e, 0x6f, 0x6e, 0x53, 0x74, 0x6f, 0x70,
	0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
	0x22, 0xd3, 0x02, 0x0a, 0x06, 0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0a, 0x6c,
	0x69, 0x6e, 0x75, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1f, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e,
	0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x49, 0x6e, 0x66, 0x6f,
	0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a,
	0x08, 0x77, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1d, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e,
	0x4f, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00,
	0x52, 0x07, 0x77, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x61, 0x63,
	0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x65,
	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x5f, 0x67, 0x6f, 0x6d, 0x61, 0x2e, 0x4f, 0x53, 0x49, 0x6e,
	0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61,
	0x63, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x35, 0x0a, 0x09, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x6e, 0x75, 0x5f, 0x6c, 0x69, 0x62, 0x63, 0x5f, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x67, 0x6e,
	0x75, 0x4c, 0x69, 0x62, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x09, 0x0a, 0x07,
	0x57, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x3c, 0x0a, 0x07, 0x4d, 0x61, 0x63, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x61, 0x63, 0x5f, 0x6f, 0x73, 0x78, 0x5f, 0x6d, 0x69,
	0x6e, 0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x12, 0x6d, 0x61, 0x63, 0x4f, 0x73, 0x78, 0x4d, 0x69, 0x6e, 0x6f, 0x72, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
	0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x6f, 0x6d, 0x61, 0x2f, 0x73,
	0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x70, 0x69,
}

var (
	file_api_goma_log_proto_rawDescOnce sync.Once
	file_api_goma_log_proto_rawDescData = file_api_goma_log_proto_rawDesc
)

func file_api_goma_log_proto_rawDescGZIP() []byte {
	file_api_goma_log_proto_rawDescOnce.Do(func() {
		file_api_goma_log_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_goma_log_proto_rawDescData)
	})
	return file_api_goma_log_proto_rawDescData
}

var file_api_goma_log_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_api_goma_log_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_api_goma_log_proto_goTypes = []interface{}{
	(ExecLog_AuthenticationType)(0), // 0: devtools_goma.ExecLog.AuthenticationType
	(ExecLog_NetworkFailureType)(0), // 1: devtools_goma.ExecLog.NetworkFailureType
	(ExecLog_CacheSource)(0),        // 2: devtools_goma.ExecLog.CacheSource
	(*ExecLog)(nil),                 // 3: devtools_goma.ExecLog
	(*MemoryUsageLog)(nil),          // 4: devtools_goma.MemoryUsageLog
	(*SaveLogReq)(nil),              // 5: devtools_goma.SaveLogReq
	(*SaveLogResp)(nil),             // 6: devtools_goma.SaveLogResp
	(*NumberSummary)(nil),           // 7: devtools_goma.NumberSummary
	(*ExecLogStat)(nil),             // 8: devtools_goma.ExecLogStat
	(*CpuFeatures)(nil),             // 9: devtools_goma.CpuFeatures
	(*OSInfo)(nil),                  // 10: devtools_goma.OSInfo
	(*OSInfo_LinuxInfo)(nil),        // 11: devtools_goma.OSInfo.LinuxInfo
	(*OSInfo_WinInfo)(nil),          // 12: devtools_goma.OSInfo.WinInfo
	(*OSInfo_MacInfo)(nil),          // 13: devtools_goma.OSInfo.MacInfo
}
var file_api_goma_log_proto_depIdxs = []int32{
	0,  // 0: devtools_goma.ExecLog.auth_type:type_name -> devtools_goma.ExecLog.AuthenticationType
	9,  // 1: devtools_goma.ExecLog.cpu_features:type_name -> devtools_goma.CpuFeatures
	1,  // 2: devtools_goma.ExecLog.network_failure_type:type_name -> devtools_goma.ExecLog.NetworkFailureType
	10, // 3: devtools_goma.ExecLog.os_info:type_name -> devtools_goma.OSInfo
	2,  // 4: devtools_goma.ExecLog.cache_source:type_name -> devtools_goma.ExecLog.CacheSource
	3,  // 5: devtools_goma.SaveLogReq.exec_log:type_name -> devtools_goma.ExecLog
	4,  // 6: devtools_goma.SaveLogReq.memory_usage_log:type_name -> devtools_goma.MemoryUsageLog
	7,  // 7: devtools_goma.ExecLogStat.handler_time:type_name -> devtools_goma.NumberSummary
	7,  // 8: devtools_goma.ExecLogStat.compiler_info_process_time:type_name -> devtools_goma.NumberSummary
	7,  // 9: devtools_goma.ExecLogStat.include_preprocess_time:type_name -> devtools_goma.NumberSummary
	7,  // 10: devtools_goma.ExecLogStat.include_fileload_time:type_name -> devtools_goma.NumberSummary
	7,  // 11: devtools_goma.ExecLogStat.rpc_call_time:type_name -> devtools_goma.NumberSummary
	7,  // 12: devtools_goma.ExecLogStat.file_response_time:type_name -> devtools_goma.NumberSummary
	7,  // 13: devtools_goma.ExecLogStat.local_pending_time:type_name -> devtools_goma.NumberSummary
	7,  // 14: devtools_goma.ExecLogStat.local_run_time:type_name -> devtools_goma.NumberSummary
	11, // 15: devtools_goma.OSInfo.linux_info:type_name -> devtools_goma.OSInfo.LinuxInfo
	12, // 16: devtools_goma.OSInfo.win_info:type_name -> devtools_goma.OSInfo.WinInfo
	13, // 17: devtools_goma.OSInfo.mac_info:type_name -> devtools_goma.OSInfo.MacInfo
	18, // [18:18] is the sub-list for method output_type
	18, // [18:18] is the sub-list for method input_type
	18, // [18:18] is the sub-list for extension type_name
	18, // [18:18] is the sub-list for extension extendee
	0,  // [0:18] is the sub-list for field type_name
}

func init() { file_api_goma_log_proto_init() }
func file_api_goma_log_proto_init() {
	if File_api_goma_log_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_api_goma_log_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecLog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MemoryUsageLog); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SaveLogReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SaveLogResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NumberSummary); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecLogStat); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CpuFeatures); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OSInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OSInfo_LinuxInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OSInfo_WinInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_goma_log_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OSInfo_MacInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_api_goma_log_proto_msgTypes[7].OneofWrappers = []interface{}{
		(*OSInfo_LinuxInfo_)(nil),
		(*OSInfo_WinInfo_)(nil),
		(*OSInfo_MacInfo_)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_api_goma_log_proto_rawDesc,
			NumEnums:      3,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_api_goma_log_proto_goTypes,
		DependencyIndexes: file_api_goma_log_proto_depIdxs,
		EnumInfos:         file_api_goma_log_proto_enumTypes,
		MessageInfos:      file_api_goma_log_proto_msgTypes,
	}.Build()
	File_api_goma_log_proto = out.File
	file_api_goma_log_proto_rawDesc = nil
	file_api_goma_log_proto_goTypes = nil
	file_api_goma_log_proto_depIdxs = nil
}
