Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Unified Diff: common/eventlog/proto/chrome_infra_log.pb.go

Issue 2517503002: luci-go: Basic support for event logging in Go. (Closed)
Patch Set: Add helpers for generating TypedTime Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « common/eventlog/internal/logservice/logservice.go ('k') | common/eventlog/proto/goma_stats.pb.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: common/eventlog/proto/chrome_infra_log.pb.go
diff --git a/common/eventlog/proto/chrome_infra_log.pb.go b/common/eventlog/proto/chrome_infra_log.pb.go
new file mode 100644
index 0000000000000000000000000000000000000000..6f45ca0c9e7cc76eb2a0a626aa4588ff57e3e290
--- /dev/null
+++ b/common/eventlog/proto/chrome_infra_log.pb.go
@@ -0,0 +1,3548 @@
+// Code generated by protoc-gen-go.
+// source: github.com/luci/luci-go/common/eventlog/proto/chrome_infra_log.proto
+// DO NOT EDIT!
+
+/*
+Package eventlog is a generated protocol buffer package.
+
+It is generated from these files:
+ github.com/luci/luci-go/common/eventlog/proto/chrome_infra_log.proto
+ github.com/luci/luci-go/common/eventlog/proto/goma_stats.proto
+ github.com/luci/luci-go/common/eventlog/proto/log_request_lite.proto
+
+It has these top-level messages:
+ CQEvent
+ CodeVersion
+ ServiceEvent
+ BuildEvent
+ InfraEventSource
+ TestResultsEvent
+ MachineProviderEvent
+ AnalyzeEvent
+ SwarmingTaskEvent
+ Binary
+ IsolateClientEvent
+ ChromeInfraEvent
+ RequestStats
+ CompilerProxyStats
+ CompilerInfoStats
+ GomaCompileStats
+ LocalCompileStats
+ FallbackInSetupStats
+ FileStats
+ OutputStats
+ MemoryStats
+ TimeStats
+ IncludeProcessorStats
+ IncludeCacheStats
+ DepsCacheStats
+ IncludeDirCacheStats
+ HttpRPCStats
+ GomaErrorStats
+ GomaMismatchStats
+ DistributionProto
+ GomaHistograms
+ MachineInfo
+ GomaStats
+ LogRequestLite
+*/
+package eventlog
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+// Type of CQ event.
+type CQEvent_Action int32
+
+const (
+ CQEvent_UNKNOWN_ACTION CQEvent_Action = 0
+ CQEvent_CQ_START CQEvent_Action = 1
+ CQEvent_CQ_STOP CQEvent_Action = 2
+ CQEvent_PATCH_COMMITTED CQEvent_Action = 3
+ CQEvent_PATCH_COMMITTING CQEvent_Action = 4
+ CQEvent_PATCH_FAILED CQEvent_Action = 5
+ CQEvent_PATCH_READY_TO_COMMIT CQEvent_Action = 6
+ CQEvent_PATCH_START CQEvent_Action = 7
+ CQEvent_PATCH_STOP CQEvent_Action = 8
+ CQEvent_PATCH_THROTTLED CQEvent_Action = 9
+ CQEvent_PATCH_TREE_CLOSED CQEvent_Action = 10
+ CQEvent_VERIFIER_CUSTOM_TRYBOTS CQEvent_Action = 11
+ CQEvent_VERIFIER_ERROR CQEvent_Action = 12
+ CQEvent_VERIFIER_FAIL CQEvent_Action = 13
+ CQEvent_VERIFIER_JOBS_UPDATE CQEvent_Action = 14
+ CQEvent_VERIFIER_PASS CQEvent_Action = 15
+ CQEvent_VERIFIER_RETRY CQEvent_Action = 16
+ CQEvent_VERIFIER_SKIP CQEvent_Action = 17
+ CQEvent_VERIFIER_START CQEvent_Action = 18
+ CQEvent_VERIFIER_TIMEOUT CQEvent_Action = 19
+ CQEvent_VERIFIER_TRIGGER CQEvent_Action = 20
+ CQEvent_VERIFIER_NOTRY CQEvent_Action = 21
+)
+
+var CQEvent_Action_name = map[int32]string{
+ 0: "UNKNOWN_ACTION",
+ 1: "CQ_START",
+ 2: "CQ_STOP",
+ 3: "PATCH_COMMITTED",
+ 4: "PATCH_COMMITTING",
+ 5: "PATCH_FAILED",
+ 6: "PATCH_READY_TO_COMMIT",
+ 7: "PATCH_START",
+ 8: "PATCH_STOP",
+ 9: "PATCH_THROTTLED",
+ 10: "PATCH_TREE_CLOSED",
+ 11: "VERIFIER_CUSTOM_TRYBOTS",
+ 12: "VERIFIER_ERROR",
+ 13: "VERIFIER_FAIL",
+ 14: "VERIFIER_JOBS_UPDATE",
+ 15: "VERIFIER_PASS",
+ 16: "VERIFIER_RETRY",
+ 17: "VERIFIER_SKIP",
+ 18: "VERIFIER_START",
+ 19: "VERIFIER_TIMEOUT",
+ 20: "VERIFIER_TRIGGER",
+ 21: "VERIFIER_NOTRY",
+}
+var CQEvent_Action_value = map[string]int32{
+ "UNKNOWN_ACTION": 0,
+ "CQ_START": 1,
+ "CQ_STOP": 2,
+ "PATCH_COMMITTED": 3,
+ "PATCH_COMMITTING": 4,
+ "PATCH_FAILED": 5,
+ "PATCH_READY_TO_COMMIT": 6,
+ "PATCH_START": 7,
+ "PATCH_STOP": 8,
+ "PATCH_THROTTLED": 9,
+ "PATCH_TREE_CLOSED": 10,
+ "VERIFIER_CUSTOM_TRYBOTS": 11,
+ "VERIFIER_ERROR": 12,
+ "VERIFIER_FAIL": 13,
+ "VERIFIER_JOBS_UPDATE": 14,
+ "VERIFIER_PASS": 15,
+ "VERIFIER_RETRY": 16,
+ "VERIFIER_SKIP": 17,
+ "VERIFIER_START": 18,
+ "VERIFIER_TIMEOUT": 19,
+ "VERIFIER_TRIGGER": 20,
+ "VERIFIER_NOTRY": 21,
+}
+
+func (x CQEvent_Action) Enum() *CQEvent_Action {
+ p := new(CQEvent_Action)
+ *p = x
+ return p
+}
+func (x CQEvent_Action) String() string {
+ return proto.EnumName(CQEvent_Action_name, int32(x))
+}
+func (x *CQEvent_Action) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(CQEvent_Action_value, data, "CQEvent_Action")
+ if err != nil {
+ return err
+ }
+ *x = CQEvent_Action(value)
+ return nil
+}
+func (CQEvent_Action) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} }
+
+// Verifier which produced event.
+type CQEvent_Verifier int32
+
+const (
+ CQEvent_UNKNOWN_VERIFIER CQEvent_Verifier = 0
+ CQEvent_REVIEWER_LGTM CQEvent_Verifier = 1
+ CQEvent_SIGN_CLA CQEvent_Verifier = 2
+ CQEvent_TREE_STATUS CQEvent_Verifier = 3
+ CQEvent_TRIGGER_EXPERIMENT_TRY_JOB CQEvent_Verifier = 4
+ CQEvent_TRY_JOB CQEvent_Verifier = 5
+)
+
+var CQEvent_Verifier_name = map[int32]string{
+ 0: "UNKNOWN_VERIFIER",
+ 1: "REVIEWER_LGTM",
+ 2: "SIGN_CLA",
+ 3: "TREE_STATUS",
+ 4: "TRIGGER_EXPERIMENT_TRY_JOB",
+ 5: "TRY_JOB",
+}
+var CQEvent_Verifier_value = map[string]int32{
+ "UNKNOWN_VERIFIER": 0,
+ "REVIEWER_LGTM": 1,
+ "SIGN_CLA": 2,
+ "TREE_STATUS": 3,
+ "TRIGGER_EXPERIMENT_TRY_JOB": 4,
+ "TRY_JOB": 5,
+}
+
+func (x CQEvent_Verifier) Enum() *CQEvent_Verifier {
+ p := new(CQEvent_Verifier)
+ *p = x
+ return p
+}
+func (x CQEvent_Verifier) String() string {
+ return proto.EnumName(CQEvent_Verifier_name, int32(x))
+}
+func (x *CQEvent_Verifier) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(CQEvent_Verifier_value, data, "CQEvent_Verifier")
+ if err != nil {
+ return err
+ }
+ *x = CQEvent_Verifier(value)
+ return nil
+}
+func (CQEvent_Verifier) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 1} }
+
+// DEPRECATED. Status of the issue.
+type CQEvent_Status int32
+
+const (
+ CQEvent_UNKNOWN_STATUS CQEvent_Status = 0
+ CQEvent_START CQEvent_Status = 1
+ CQEvent_STOP CQEvent_Status = 2
+ CQEvent_READY_TO_COMMIT CQEvent_Status = 3
+ CQEvent_COMMITTING CQEvent_Status = 4
+ CQEvent_COMMITTED CQEvent_Status = 5
+ CQEvent_FAILED CQEvent_Status = 6
+ CQEvent_THROTTLED CQEvent_Status = 7
+ CQEvent_TREE_CLOSED CQEvent_Status = 8
+)
+
+var CQEvent_Status_name = map[int32]string{
+ 0: "UNKNOWN_STATUS",
+ 1: "START",
+ 2: "STOP",
+ 3: "READY_TO_COMMIT",
+ 4: "COMMITTING",
+ 5: "COMMITTED",
+ 6: "FAILED",
+ 7: "THROTTLED",
+ 8: "TREE_CLOSED",
+}
+var CQEvent_Status_value = map[string]int32{
+ "UNKNOWN_STATUS": 0,
+ "START": 1,
+ "STOP": 2,
+ "READY_TO_COMMIT": 3,
+ "COMMITTING": 4,
+ "COMMITTED": 5,
+ "FAILED": 6,
+ "THROTTLED": 7,
+ "TREE_CLOSED": 8,
+}
+
+func (x CQEvent_Status) Enum() *CQEvent_Status {
+ p := new(CQEvent_Status)
+ *p = x
+ return p
+}
+func (x CQEvent_Status) String() string {
+ return proto.EnumName(CQEvent_Status_name, int32(x))
+}
+func (x *CQEvent_Status) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(CQEvent_Status_value, data, "CQEvent_Status")
+ if err != nil {
+ return err
+ }
+ *x = CQEvent_Status(value)
+ return nil
+}
+func (CQEvent_Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 2} }
+
+// Next tag: 20
+type CQEvent_FailureReason_FailType int32
+
+const (
+ CQEvent_FailureReason_UNKNOWN_FAIL_TYPE CQEvent_FailureReason_FailType = 0
+ // try_bot
+ CQEvent_FailureReason_FAILED_PRESUBMIT_BOT CQEvent_FailureReason_FailType = 1
+ CQEvent_FailureReason_FAILED_PRESUBMIT_BOT_INFRA CQEvent_FailureReason_FailType = 17
+ CQEvent_FailureReason_FAILED_JOBS CQEvent_FailureReason_FailType = 2
+ CQEvent_FailureReason_RETRY_QUOTA_EXCEEDED CQEvent_FailureReason_FailType = 3
+ // reviewer_lgtm
+ CQEvent_FailureReason_NOT_LGTM CQEvent_FailureReason_FailType = 4
+ CQEvent_FailureReason_MISSING_LGTM CQEvent_FailureReason_FailType = 5
+ // sign_cla
+ CQEvent_FailureReason_NO_SIGNCLA CQEvent_FailureReason_FailType = 6
+ CQEvent_FailureReason_FAILED_SIGNCLA_REQUEST CQEvent_FailureReason_FailType = 7
+ // CQ was stopped manually
+ CQEvent_FailureReason_MANUAL_CANCEL CQEvent_FailureReason_FailType = 8
+ // Issue had COMMIT=false flag
+ CQEvent_FailureReason_COMMIT_FALSE CQEvent_FailureReason_FailType = 9
+ // Issue depends on another issue
+ CQEvent_FailureReason_OPEN_DEPENDENCY CQEvent_FailureReason_FailType = 10
+ // Incorrect CQ_EXTRA_TRYBOTS flag
+ CQEvent_FailureReason_INVALID_DELIMITER CQEvent_FailureReason_FailType = 11
+ // Did not contain NOTRY & NOPRESUBMIT for non-master remote ref
+ CQEvent_FailureReason_FAILED_REMOTE_REF_PRESUBMIT CQEvent_FailureReason_FailType = 12
+ // CQ failed to trigger jobs in buildbucket.
+ CQEvent_FailureReason_FAILED_TO_TRIGGER_JOBS CQEvent_FailureReason_FailType = 18
+ // Using CQ feature that was deprecated and removed.
+ CQEvent_FailureReason_UNSUPPORTED_CQ_FEATURE CQEvent_FailureReason_FailType = 19
+ // CQ failed to check out a patch
+ CQEvent_FailureReason_FAILED_CHECKOUT CQEvent_FailureReason_FailType = 13
+ // CQ failed to commit the patch
+ CQEvent_FailureReason_FAILED_COMMIT CQEvent_FailureReason_FailType = 14
+ // Failed to apply patch
+ CQEvent_FailureReason_FAILED_PATCH CQEvent_FailureReason_FailType = 15
+ // Failed to download patch from Rietveld
+ CQEvent_FailureReason_FAILED_REQUEST_PATCH CQEvent_FailureReason_FailType = 16
+)
+
+var CQEvent_FailureReason_FailType_name = map[int32]string{
+ 0: "UNKNOWN_FAIL_TYPE",
+ 1: "FAILED_PRESUBMIT_BOT",
+ 17: "FAILED_PRESUBMIT_BOT_INFRA",
+ 2: "FAILED_JOBS",
+ 3: "RETRY_QUOTA_EXCEEDED",
+ 4: "NOT_LGTM",
+ 5: "MISSING_LGTM",
+ 6: "NO_SIGNCLA",
+ 7: "FAILED_SIGNCLA_REQUEST",
+ 8: "MANUAL_CANCEL",
+ 9: "COMMIT_FALSE",
+ 10: "OPEN_DEPENDENCY",
+ 11: "INVALID_DELIMITER",
+ 12: "FAILED_REMOTE_REF_PRESUBMIT",
+ 18: "FAILED_TO_TRIGGER_JOBS",
+ 19: "UNSUPPORTED_CQ_FEATURE",
+ 13: "FAILED_CHECKOUT",
+ 14: "FAILED_COMMIT",
+ 15: "FAILED_PATCH",
+ 16: "FAILED_REQUEST_PATCH",
+}
+var CQEvent_FailureReason_FailType_value = map[string]int32{
+ "UNKNOWN_FAIL_TYPE": 0,
+ "FAILED_PRESUBMIT_BOT": 1,
+ "FAILED_PRESUBMIT_BOT_INFRA": 17,
+ "FAILED_JOBS": 2,
+ "RETRY_QUOTA_EXCEEDED": 3,
+ "NOT_LGTM": 4,
+ "MISSING_LGTM": 5,
+ "NO_SIGNCLA": 6,
+ "FAILED_SIGNCLA_REQUEST": 7,
+ "MANUAL_CANCEL": 8,
+ "COMMIT_FALSE": 9,
+ "OPEN_DEPENDENCY": 10,
+ "INVALID_DELIMITER": 11,
+ "FAILED_REMOTE_REF_PRESUBMIT": 12,
+ "FAILED_TO_TRIGGER_JOBS": 18,
+ "UNSUPPORTED_CQ_FEATURE": 19,
+ "FAILED_CHECKOUT": 13,
+ "FAILED_COMMIT": 14,
+ "FAILED_PATCH": 15,
+ "FAILED_REQUEST_PATCH": 16,
+}
+
+func (x CQEvent_FailureReason_FailType) Enum() *CQEvent_FailureReason_FailType {
+ p := new(CQEvent_FailureReason_FailType)
+ *p = x
+ return p
+}
+func (x CQEvent_FailureReason_FailType) String() string {
+ return proto.EnumName(CQEvent_FailureReason_FailType_name, int32(x))
+}
+func (x *CQEvent_FailureReason_FailType) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(CQEvent_FailureReason_FailType_value, data, "CQEvent_FailureReason_FailType")
+ if err != nil {
+ return err
+ }
+ *x = CQEvent_FailureReason_FailType(value)
+ return nil
+}
+func (CQEvent_FailureReason_FailType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{0, 0, 0}
+}
+
+type ServiceEvent_ServiceEventType int32
+
+const (
+ ServiceEvent_UNKNOWN ServiceEvent_ServiceEventType = 0
+ ServiceEvent_START ServiceEvent_ServiceEventType = 1
+ ServiceEvent_STOP ServiceEvent_ServiceEventType = 2
+ ServiceEvent_UPDATE ServiceEvent_ServiceEventType = 3
+ ServiceEvent_CURRENT_VERSION ServiceEvent_ServiceEventType = 4
+ ServiceEvent_CRASH ServiceEvent_ServiceEventType = 5
+)
+
+var ServiceEvent_ServiceEventType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "START",
+ 2: "STOP",
+ 3: "UPDATE",
+ 4: "CURRENT_VERSION",
+ 5: "CRASH",
+}
+var ServiceEvent_ServiceEventType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "START": 1,
+ "STOP": 2,
+ "UPDATE": 3,
+ "CURRENT_VERSION": 4,
+ "CRASH": 5,
+}
+
+func (x ServiceEvent_ServiceEventType) Enum() *ServiceEvent_ServiceEventType {
+ p := new(ServiceEvent_ServiceEventType)
+ *p = x
+ return p
+}
+func (x ServiceEvent_ServiceEventType) String() string {
+ return proto.EnumName(ServiceEvent_ServiceEventType_name, int32(x))
+}
+func (x *ServiceEvent_ServiceEventType) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(ServiceEvent_ServiceEventType_value, data, "ServiceEvent_ServiceEventType")
+ if err != nil {
+ return err
+ }
+ *x = ServiceEvent_ServiceEventType(value)
+ return nil
+}
+func (ServiceEvent_ServiceEventType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{2, 0}
+}
+
+type BuildEvent_BuildEventType int32
+
+const (
+ BuildEvent_SCHEDULER BuildEvent_BuildEventType = 0
+ BuildEvent_BUILD BuildEvent_BuildEventType = 1
+ BuildEvent_STEP BuildEvent_BuildEventType = 2
+)
+
+var BuildEvent_BuildEventType_name = map[int32]string{
+ 0: "SCHEDULER",
+ 1: "BUILD",
+ 2: "STEP",
+}
+var BuildEvent_BuildEventType_value = map[string]int32{
+ "SCHEDULER": 0,
+ "BUILD": 1,
+ "STEP": 2,
+}
+
+func (x BuildEvent_BuildEventType) Enum() *BuildEvent_BuildEventType {
+ p := new(BuildEvent_BuildEventType)
+ *p = x
+ return p
+}
+func (x BuildEvent_BuildEventType) String() string {
+ return proto.EnumName(BuildEvent_BuildEventType_name, int32(x))
+}
+func (x *BuildEvent_BuildEventType) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(BuildEvent_BuildEventType_value, data, "BuildEvent_BuildEventType")
+ if err != nil {
+ return err
+ }
+ *x = BuildEvent_BuildEventType(value)
+ return nil
+}
+func (BuildEvent_BuildEventType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 0} }
+
+type BuildEvent_BuildResult int32
+
+const (
+ BuildEvent_UNKNOWN BuildEvent_BuildResult = 0
+ BuildEvent_SUCCESS BuildEvent_BuildResult = 1
+ BuildEvent_FAILURE BuildEvent_BuildResult = 2
+ BuildEvent_INFRA_FAILURE BuildEvent_BuildResult = 3
+ BuildEvent_WARNING BuildEvent_BuildResult = 4
+ BuildEvent_SKIPPED BuildEvent_BuildResult = 5
+ BuildEvent_RETRY BuildEvent_BuildResult = 6
+)
+
+var BuildEvent_BuildResult_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "SUCCESS",
+ 2: "FAILURE",
+ 3: "INFRA_FAILURE",
+ 4: "WARNING",
+ 5: "SKIPPED",
+ 6: "RETRY",
+}
+var BuildEvent_BuildResult_value = map[string]int32{
+ "UNKNOWN": 0,
+ "SUCCESS": 1,
+ "FAILURE": 2,
+ "INFRA_FAILURE": 3,
+ "WARNING": 4,
+ "SKIPPED": 5,
+ "RETRY": 6,
+}
+
+func (x BuildEvent_BuildResult) Enum() *BuildEvent_BuildResult {
+ p := new(BuildEvent_BuildResult)
+ *p = x
+ return p
+}
+func (x BuildEvent_BuildResult) String() string {
+ return proto.EnumName(BuildEvent_BuildResult_name, int32(x))
+}
+func (x *BuildEvent_BuildResult) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(BuildEvent_BuildResult_value, data, "BuildEvent_BuildResult")
+ if err != nil {
+ return err
+ }
+ *x = BuildEvent_BuildResult(value)
+ return nil
+}
+func (BuildEvent_BuildResult) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 1} }
+
+// Goma errors if goma_stats is not available while goma should have run.
+type BuildEvent_GomaErrorType int32
+
+const (
+ // No goma error. This must be set as default value.
+ BuildEvent_GOMA_ERROR_OK BuildEvent_GomaErrorType = 0
+ // GomaStats does not exist with unknown reason.
+ BuildEvent_GOMA_ERROR_UNKNOWN BuildEvent_GomaErrorType = 1
+ // Goma compiler_proxy has crashed, and there is a crash dump.
+ // If goma_error is this type, goma_crash_report_id should be set.
+ BuildEvent_GOMA_ERROR_CRASHED BuildEvent_GomaErrorType = 2
+ // Goma compiler_proxy was killed by CHECK or LOG(FATAL), and no crash
+ // dump exists. (goma team may change CHECK behavior to make compiler_proxy
+ // generate crash dump, and then the state would be marked as
+ // GOMA_ERROR_CRASHED)
+ BuildEvent_GOMA_ERROR_LOG_FATAL BuildEvent_GomaErrorType = 3
+)
+
+var BuildEvent_GomaErrorType_name = map[int32]string{
+ 0: "GOMA_ERROR_OK",
+ 1: "GOMA_ERROR_UNKNOWN",
+ 2: "GOMA_ERROR_CRASHED",
+ 3: "GOMA_ERROR_LOG_FATAL",
+}
+var BuildEvent_GomaErrorType_value = map[string]int32{
+ "GOMA_ERROR_OK": 0,
+ "GOMA_ERROR_UNKNOWN": 1,
+ "GOMA_ERROR_CRASHED": 2,
+ "GOMA_ERROR_LOG_FATAL": 3,
+}
+
+func (x BuildEvent_GomaErrorType) Enum() *BuildEvent_GomaErrorType {
+ p := new(BuildEvent_GomaErrorType)
+ *p = x
+ return p
+}
+func (x BuildEvent_GomaErrorType) String() string {
+ return proto.EnumName(BuildEvent_GomaErrorType_name, int32(x))
+}
+func (x *BuildEvent_GomaErrorType) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(BuildEvent_GomaErrorType_value, data, "BuildEvent_GomaErrorType")
+ if err != nil {
+ return err
+ }
+ *x = BuildEvent_GomaErrorType(value)
+ return nil
+}
+func (BuildEvent_GomaErrorType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 2} }
+
+// Build category.
+type BuildEvent_Category int32
+
+const (
+ BuildEvent_CATEGORY_UNKNOWN BuildEvent_Category = 0
+ BuildEvent_CATEGORY_CQ BuildEvent_Category = 1
+ BuildEvent_CATEGORY_CQ_EXPERIMENTAL BuildEvent_Category = 2
+ BuildEvent_CATEGORY_GIT_CL_TRY BuildEvent_Category = 3
+)
+
+var BuildEvent_Category_name = map[int32]string{
+ 0: "CATEGORY_UNKNOWN",
+ 1: "CATEGORY_CQ",
+ 2: "CATEGORY_CQ_EXPERIMENTAL",
+ 3: "CATEGORY_GIT_CL_TRY",
+}
+var BuildEvent_Category_value = map[string]int32{
+ "CATEGORY_UNKNOWN": 0,
+ "CATEGORY_CQ": 1,
+ "CATEGORY_CQ_EXPERIMENTAL": 2,
+ "CATEGORY_GIT_CL_TRY": 3,
+}
+
+func (x BuildEvent_Category) Enum() *BuildEvent_Category {
+ p := new(BuildEvent_Category)
+ *p = x
+ return p
+}
+func (x BuildEvent_Category) String() string {
+ return proto.EnumName(BuildEvent_Category_name, int32(x))
+}
+func (x *BuildEvent_Category) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(BuildEvent_Category_value, data, "BuildEvent_Category")
+ if err != nil {
+ return err
+ }
+ *x = BuildEvent_Category(value)
+ return nil
+}
+func (BuildEvent_Category) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 3} }
+
+type BuildEvent_FailType int32
+
+const (
+ // This is not supposed to be used by any newly reported build events and
+ // should only serve as a default value for legacy events.
+ BuildEvent_FAIL_TYPE_UNKNOWN BuildEvent_FailType = 0
+ // Any kind of infrastructure failure. We classify unknown failure types
+ // as infra failures to be conservative.
+ BuildEvent_FAIL_TYPE_INFRA BuildEvent_FailType = 1
+ // Build failed to compile the code.
+ BuildEvent_FAIL_TYPE_COMPILE BuildEvent_FailType = 2
+ // Test failed to pass.
+ BuildEvent_FAIL_TYPE_TEST BuildEvent_FailType = 3
+ // Test results were invalid.
+ BuildEvent_FAIL_TYPE_INVALID BuildEvent_FailType = 4
+ // Build failed to apply the patch.
+ BuildEvent_FAIL_TYPE_PATCH BuildEvent_FailType = 5
+)
+
+var BuildEvent_FailType_name = map[int32]string{
+ 0: "FAIL_TYPE_UNKNOWN",
+ 1: "FAIL_TYPE_INFRA",
+ 2: "FAIL_TYPE_COMPILE",
+ 3: "FAIL_TYPE_TEST",
+ 4: "FAIL_TYPE_INVALID",
+ 5: "FAIL_TYPE_PATCH",
+}
+var BuildEvent_FailType_value = map[string]int32{
+ "FAIL_TYPE_UNKNOWN": 0,
+ "FAIL_TYPE_INFRA": 1,
+ "FAIL_TYPE_COMPILE": 2,
+ "FAIL_TYPE_TEST": 3,
+ "FAIL_TYPE_INVALID": 4,
+ "FAIL_TYPE_PATCH": 5,
+}
+
+func (x BuildEvent_FailType) Enum() *BuildEvent_FailType {
+ p := new(BuildEvent_FailType)
+ *p = x
+ return p
+}
+func (x BuildEvent_FailType) String() string {
+ return proto.EnumName(BuildEvent_FailType_name, int32(x))
+}
+func (x *BuildEvent_FailType) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(BuildEvent_FailType_value, data, "BuildEvent_FailType")
+ if err != nil {
+ return err
+ }
+ *x = BuildEvent_FailType(value)
+ return nil
+}
+func (BuildEvent_FailType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3, 4} }
+
+// Type of the test result.
+type TestResultsEvent_TestResultType int32
+
+const (
+ TestResultsEvent_UNKNOWN TestResultsEvent_TestResultType = 0
+ // The test was not run.
+ TestResultsEvent_SKIP TestResultsEvent_TestResultType = 1
+ // The test ran as expected.
+ TestResultsEvent_PASS TestResultsEvent_TestResultType = 2
+ // The test did not run as expected.
+ TestResultsEvent_FAIL TestResultsEvent_TestResultType = 3
+ // The test runner crashed during the test.
+ TestResultsEvent_CRASH TestResultsEvent_TestResultType = 4
+ // The test hung (did not complete) and was aborted.
+ TestResultsEvent_TIMEOUT TestResultsEvent_TestResultType = 5
+ // Layout test specific. The test completed but we could not find an
+ // expected baseline to compare against.
+ TestResultsEvent_MISSING TestResultsEvent_TestResultType = 6
+ // Layout test specific. Memory leaks were detected during the test
+ // execution.
+ TestResultsEvent_LEAK TestResultsEvent_TestResultType = 7
+ // Layout test specific. The test is expected to take longer than normal to
+ // run.
+ TestResultsEvent_SLOW TestResultsEvent_TestResultType = 8
+ // Layout test specific, deprecated. The test is expected to produce a
+ // text-only failure (the image, if present, will match). Normally you will
+ // see "FAIL" instead.
+ TestResultsEvent_TEXT TestResultsEvent_TestResultType = 9
+ // Layout test specific, deprecated. The test is expected to produce audio
+ // output that doesn't match the expected result. Normally you will see
+ // "FAIL" instead.
+ TestResultsEvent_AUDIO TestResultsEvent_TestResultType = 10
+ // Layout test specific. The test produces image (and possibly text output).
+ // The image output doesn't match what we'd expect, but the text output, if
+ // present, does.
+ TestResultsEvent_IMAGE TestResultsEvent_TestResultType = 11
+ // Layout test specific, deprecated. The test produces image and text
+ // output, both of which fail to match what we expect. Normally you will see
+ // "FAIL" instead. Corresponds to "IMAGE+TEXT" in JSON format.
+ TestResultsEvent_IMAGE_TEXT TestResultsEvent_TestResultType = 12
+ // Layout test specific. The expected test result is out of date and will be
+ // ignored (any result other than a crash or timeout will be considered as
+ // passing). This test result should only ever show up on local test runs,
+ // not on bots (it is forbidden to check in a TestExpectations file with
+ // this expectation). This should never show up as an "actual" result.
+ TestResultsEvent_REBASELINE TestResultsEvent_TestResultType = 13
+ // Layout test specific. The expected test result is out of date and will be
+ // ignored (as above); the auto-rebaseline-bot will look for tests of this
+ // type and automatically update them. This should never show up as an
+ // "actual" result.
+ TestResultsEvent_NEEDSREBASELINE TestResultsEvent_TestResultType = 14
+ // Layout test specific. The expected test result is out of date and will be
+ // ignored (as above). This result may be checked in to the TestExpectations
+ // file, but the auto-rebasline-bot will ignore these entries. This should
+ // never show up as an "actual" result.
+ TestResultsEvent_NEEDSMANUALREBASELINE TestResultsEvent_TestResultType = 15
+)
+
+var TestResultsEvent_TestResultType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "SKIP",
+ 2: "PASS",
+ 3: "FAIL",
+ 4: "CRASH",
+ 5: "TIMEOUT",
+ 6: "MISSING",
+ 7: "LEAK",
+ 8: "SLOW",
+ 9: "TEXT",
+ 10: "AUDIO",
+ 11: "IMAGE",
+ 12: "IMAGE_TEXT",
+ 13: "REBASELINE",
+ 14: "NEEDSREBASELINE",
+ 15: "NEEDSMANUALREBASELINE",
+}
+var TestResultsEvent_TestResultType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "SKIP": 1,
+ "PASS": 2,
+ "FAIL": 3,
+ "CRASH": 4,
+ "TIMEOUT": 5,
+ "MISSING": 6,
+ "LEAK": 7,
+ "SLOW": 8,
+ "TEXT": 9,
+ "AUDIO": 10,
+ "IMAGE": 11,
+ "IMAGE_TEXT": 12,
+ "REBASELINE": 13,
+ "NEEDSREBASELINE": 14,
+ "NEEDSMANUALREBASELINE": 15,
+}
+
+func (x TestResultsEvent_TestResultType) Enum() *TestResultsEvent_TestResultType {
+ p := new(TestResultsEvent_TestResultType)
+ *p = x
+ return p
+}
+func (x TestResultsEvent_TestResultType) String() string {
+ return proto.EnumName(TestResultsEvent_TestResultType_name, int32(x))
+}
+func (x *TestResultsEvent_TestResultType) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(TestResultsEvent_TestResultType_value, data, "TestResultsEvent_TestResultType")
+ if err != nil {
+ return err
+ }
+ *x = TestResultsEvent_TestResultType(value)
+ return nil
+}
+func (TestResultsEvent_TestResultType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{5, 0}
+}
+
+// State of a specific machine in the Machine Provider's GCE Backend.
+type MachineProviderEvent_GCEBackendMachineState int32
+
+const (
+ MachineProviderEvent_GCE_UNKNOWN MachineProviderEvent_GCEBackendMachineState = 0
+ // First detected, entity created.
+ MachineProviderEvent_CREATED MachineProviderEvent_GCEBackendMachineState = 1
+ // Added to Machine Provider's catalog.
+ MachineProviderEvent_CATALOGED MachineProviderEvent_GCEBackendMachineState = 2
+ // Received information on the Pub/Sub subscription.
+ MachineProviderEvent_SUBSCRIPTION_RECEIVED MachineProviderEvent_GCEBackendMachineState = 3
+ // Intended metadata update written to datastore.
+ MachineProviderEvent_METADATA_UPDATE_PROPOSED MachineProviderEvent_GCEBackendMachineState = 4
+ // GCE metadata operation ready to be scheduled.
+ MachineProviderEvent_METADATA_UPDATE_READY MachineProviderEvent_GCEBackendMachineState = 5
+ // GCE metadata operation scheduled.
+ MachineProviderEvent_METADATA_UPDATE_SCHEDULED MachineProviderEvent_GCEBackendMachineState = 6
+ // GCE metadata operation failed.
+ MachineProviderEvent_METADATA_UPDATE_FAILED MachineProviderEvent_GCEBackendMachineState = 7
+ // GCE metadata operation succeeded.
+ MachineProviderEvent_METADATA_UPDATE_SUCCEEDED MachineProviderEvent_GCEBackendMachineState = 8
+ // Received information on the lease.
+ MachineProviderEvent_LEASE_RECEIVED MachineProviderEvent_GCEBackendMachineState = 9
+ // Lease expired, reclaimed by Machine Provider.
+ MachineProviderEvent_RECLAIMED MachineProviderEvent_GCEBackendMachineState = 10
+ // Intented deletion written to datastore.
+ MachineProviderEvent_DELETION_PROPOSED MachineProviderEvent_GCEBackendMachineState = 11
+ // GCE instance deletion scheduled.
+ MachineProviderEvent_DELETION_SCHEDULED MachineProviderEvent_GCEBackendMachineState = 12
+ // GCE instance deletion succeeded.
+ MachineProviderEvent_DELETION_SUCCEEDED MachineProviderEvent_GCEBackendMachineState = 13
+ // Entity deleted.
+ MachineProviderEvent_DELETED MachineProviderEvent_GCEBackendMachineState = 14
+)
+
+var MachineProviderEvent_GCEBackendMachineState_name = map[int32]string{
+ 0: "GCE_UNKNOWN",
+ 1: "CREATED",
+ 2: "CATALOGED",
+ 3: "SUBSCRIPTION_RECEIVED",
+ 4: "METADATA_UPDATE_PROPOSED",
+ 5: "METADATA_UPDATE_READY",
+ 6: "METADATA_UPDATE_SCHEDULED",
+ 7: "METADATA_UPDATE_FAILED",
+ 8: "METADATA_UPDATE_SUCCEEDED",
+ 9: "LEASE_RECEIVED",
+ 10: "RECLAIMED",
+ 11: "DELETION_PROPOSED",
+ 12: "DELETION_SCHEDULED",
+ 13: "DELETION_SUCCEEDED",
+ 14: "DELETED",
+}
+var MachineProviderEvent_GCEBackendMachineState_value = map[string]int32{
+ "GCE_UNKNOWN": 0,
+ "CREATED": 1,
+ "CATALOGED": 2,
+ "SUBSCRIPTION_RECEIVED": 3,
+ "METADATA_UPDATE_PROPOSED": 4,
+ "METADATA_UPDATE_READY": 5,
+ "METADATA_UPDATE_SCHEDULED": 6,
+ "METADATA_UPDATE_FAILED": 7,
+ "METADATA_UPDATE_SUCCEEDED": 8,
+ "LEASE_RECEIVED": 9,
+ "RECLAIMED": 10,
+ "DELETION_PROPOSED": 11,
+ "DELETION_SCHEDULED": 12,
+ "DELETION_SUCCEEDED": 13,
+ "DELETED": 14,
+}
+
+func (x MachineProviderEvent_GCEBackendMachineState) Enum() *MachineProviderEvent_GCEBackendMachineState {
+ p := new(MachineProviderEvent_GCEBackendMachineState)
+ *p = x
+ return p
+}
+func (x MachineProviderEvent_GCEBackendMachineState) String() string {
+ return proto.EnumName(MachineProviderEvent_GCEBackendMachineState_name, int32(x))
+}
+func (x *MachineProviderEvent_GCEBackendMachineState) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(MachineProviderEvent_GCEBackendMachineState_value, data, "MachineProviderEvent_GCEBackendMachineState")
+ if err != nil {
+ return err
+ }
+ *x = MachineProviderEvent_GCEBackendMachineState(value)
+ return nil
+}
+func (MachineProviderEvent_GCEBackendMachineState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{6, 0}
+}
+
+// Reason for proposing machine deletion in the GCE Backend.
+type MachineProviderEvent_GCEBackendDeletionReason int32
+
+const (
+ // Lease expired, reclaimed by Machine Provider.
+ MachineProviderEvent_RECLAMATION MachineProviderEvent_GCEBackendDeletionReason = 1
+ // Machine is drained as a result of a new config being detected.
+ MachineProviderEvent_DRAINED MachineProviderEvent_GCEBackendDeletionReason = 2
+)
+
+var MachineProviderEvent_GCEBackendDeletionReason_name = map[int32]string{
+ 1: "RECLAMATION",
+ 2: "DRAINED",
+}
+var MachineProviderEvent_GCEBackendDeletionReason_value = map[string]int32{
+ "RECLAMATION": 1,
+ "DRAINED": 2,
+}
+
+func (x MachineProviderEvent_GCEBackendDeletionReason) Enum() *MachineProviderEvent_GCEBackendDeletionReason {
+ p := new(MachineProviderEvent_GCEBackendDeletionReason)
+ *p = x
+ return p
+}
+func (x MachineProviderEvent_GCEBackendDeletionReason) String() string {
+ return proto.EnumName(MachineProviderEvent_GCEBackendDeletionReason_name, int32(x))
+}
+func (x *MachineProviderEvent_GCEBackendDeletionReason) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(MachineProviderEvent_GCEBackendDeletionReason_value, data, "MachineProviderEvent_GCEBackendDeletionReason")
+ if err != nil {
+ return err
+ }
+ *x = MachineProviderEvent_GCEBackendDeletionReason(value)
+ return nil
+}
+func (MachineProviderEvent_GCEBackendDeletionReason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{6, 1}
+}
+
+// State of a specific machine in the Machine Provider's catalog.
+type MachineProviderEvent_MachineProviderMachineState int32
+
+const (
+ MachineProviderEvent_MP_UNKNOWN MachineProviderEvent_MachineProviderMachineState = 0
+ // Received from backend and added to the catalog.
+ MachineProviderEvent_RECEIVED MachineProviderEvent_MachineProviderMachineState = 1
+ // Subscribed to Pub/Sub.
+ MachineProviderEvent_SUBSCRIBED MachineProviderEvent_MachineProviderMachineState = 2
+ // Leased out.
+ MachineProviderEvent_LEASED MachineProviderEvent_MachineProviderMachineState = 3
+ // Lease expired, reclaimed.
+ MachineProviderEvent_LEASE_EXPIRED MachineProviderEvent_MachineProviderMachineState = 4
+ // Entity deleted from Machine Provider catalog.
+ MachineProviderEvent_UNCATALOGED MachineProviderEvent_MachineProviderMachineState = 5
+)
+
+var MachineProviderEvent_MachineProviderMachineState_name = map[int32]string{
+ 0: "MP_UNKNOWN",
+ 1: "RECEIVED",
+ 2: "SUBSCRIBED",
+ 3: "LEASED",
+ 4: "LEASE_EXPIRED",
+ 5: "UNCATALOGED",
+}
+var MachineProviderEvent_MachineProviderMachineState_value = map[string]int32{
+ "MP_UNKNOWN": 0,
+ "RECEIVED": 1,
+ "SUBSCRIBED": 2,
+ "LEASED": 3,
+ "LEASE_EXPIRED": 4,
+ "UNCATALOGED": 5,
+}
+
+func (x MachineProviderEvent_MachineProviderMachineState) Enum() *MachineProviderEvent_MachineProviderMachineState {
+ p := new(MachineProviderEvent_MachineProviderMachineState)
+ *p = x
+ return p
+}
+func (x MachineProviderEvent_MachineProviderMachineState) String() string {
+ return proto.EnumName(MachineProviderEvent_MachineProviderMachineState_name, int32(x))
+}
+func (x *MachineProviderEvent_MachineProviderMachineState) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(MachineProviderEvent_MachineProviderMachineState_value, data, "MachineProviderEvent_MachineProviderMachineState")
+ if err != nil {
+ return err
+ }
+ *x = MachineProviderEvent_MachineProviderMachineState(value)
+ return nil
+}
+func (MachineProviderEvent_MachineProviderMachineState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{6, 2}
+}
+
+// State of a machine reported by the Machine Provider agent.
+type MachineProviderEvent_MachineProviderAgentState int32
+
+const (
+ MachineProviderEvent_AGENT_UNKNOWN MachineProviderEvent_MachineProviderAgentState = 0
+ // Polling the Machine Provider Pub/Sub.
+ MachineProviderEvent_POLLING MachineProviderEvent_MachineProviderAgentState = 1
+ // Allocated to fulfill a lease.
+ MachineProviderEvent_ALLOCATED MachineProviderEvent_MachineProviderAgentState = 2
+ // Configured for Swarming.
+ MachineProviderEvent_SWARMING_CONFIGURED MachineProviderEvent_MachineProviderAgentState = 3
+)
+
+var MachineProviderEvent_MachineProviderAgentState_name = map[int32]string{
+ 0: "AGENT_UNKNOWN",
+ 1: "POLLING",
+ 2: "ALLOCATED",
+ 3: "SWARMING_CONFIGURED",
+}
+var MachineProviderEvent_MachineProviderAgentState_value = map[string]int32{
+ "AGENT_UNKNOWN": 0,
+ "POLLING": 1,
+ "ALLOCATED": 2,
+ "SWARMING_CONFIGURED": 3,
+}
+
+func (x MachineProviderEvent_MachineProviderAgentState) Enum() *MachineProviderEvent_MachineProviderAgentState {
+ p := new(MachineProviderEvent_MachineProviderAgentState)
+ *p = x
+ return p
+}
+func (x MachineProviderEvent_MachineProviderAgentState) String() string {
+ return proto.EnumName(MachineProviderEvent_MachineProviderAgentState_name, int32(x))
+}
+func (x *MachineProviderEvent_MachineProviderAgentState) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(MachineProviderEvent_MachineProviderAgentState_value, data, "MachineProviderEvent_MachineProviderAgentState")
+ if err != nil {
+ return err
+ }
+ *x = MachineProviderEvent_MachineProviderAgentState(value)
+ return nil
+}
+func (MachineProviderEvent_MachineProviderAgentState) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{6, 3}
+}
+
+// Result reported by analyze.
+type AnalyzeEvent_AnalyzeResult int32
+
+const (
+ // Default value. Should not be used in practice.
+ AnalyzeEvent_UNKNOWN AnalyzeEvent_AnalyzeResult = 0
+ // An error occurred (e.g. GN failed).
+ AnalyzeEvent_ERROR AnalyzeEvent_AnalyzeResult = 1
+ // No targets are affected by the patch.
+ AnalyzeEvent_NO_COMPILE_NECESSARY AnalyzeEvent_AnalyzeResult = 2
+ // All files in the patch matched ignore lists.
+ AnalyzeEvent_ALL_FILES_IGNORED AnalyzeEvent_AnalyzeResult = 3
+ // A file in the patch matched exclusion, all targets
+ // should be passed through.
+ AnalyzeEvent_MATCHED_EXCLUSION AnalyzeEvent_AnalyzeResult = 4
+ // Analyze successfully returned a subset of targets
+ // affected by the patch.
+ AnalyzeEvent_FOUND_DEPENDENCY AnalyzeEvent_AnalyzeResult = 5
+ // Analyze hit a special case and returned exactly same set of targets
+ // as input.
+ AnalyzeEvent_FOUND_DEPENDENCY_ALL AnalyzeEvent_AnalyzeResult = 6
+ // Analyze found invalid targets in input.
+ AnalyzeEvent_INVALID_TARGETS AnalyzeEvent_AnalyzeResult = 7
+)
+
+var AnalyzeEvent_AnalyzeResult_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "ERROR",
+ 2: "NO_COMPILE_NECESSARY",
+ 3: "ALL_FILES_IGNORED",
+ 4: "MATCHED_EXCLUSION",
+ 5: "FOUND_DEPENDENCY",
+ 6: "FOUND_DEPENDENCY_ALL",
+ 7: "INVALID_TARGETS",
+}
+var AnalyzeEvent_AnalyzeResult_value = map[string]int32{
+ "UNKNOWN": 0,
+ "ERROR": 1,
+ "NO_COMPILE_NECESSARY": 2,
+ "ALL_FILES_IGNORED": 3,
+ "MATCHED_EXCLUSION": 4,
+ "FOUND_DEPENDENCY": 5,
+ "FOUND_DEPENDENCY_ALL": 6,
+ "INVALID_TARGETS": 7,
+}
+
+func (x AnalyzeEvent_AnalyzeResult) Enum() *AnalyzeEvent_AnalyzeResult {
+ p := new(AnalyzeEvent_AnalyzeResult)
+ *p = x
+ return p
+}
+func (x AnalyzeEvent_AnalyzeResult) String() string {
+ return proto.EnumName(AnalyzeEvent_AnalyzeResult_name, int32(x))
+}
+func (x *AnalyzeEvent_AnalyzeResult) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(AnalyzeEvent_AnalyzeResult_value, data, "AnalyzeEvent_AnalyzeResult")
+ if err != nil {
+ return err
+ }
+ *x = AnalyzeEvent_AnalyzeResult(value)
+ return nil
+}
+func (AnalyzeEvent_AnalyzeResult) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{7, 0}
+}
+
+type SwarmingTaskEvent_State int32
+
+const (
+ // Should not really be used. Only a placeholder for exceptional cases.
+ SwarmingTaskEvent_UNKNOWN SwarmingTaskEvent_State = 0
+ // The task has completed returning an exit code indicating success or failure.
+ SwarmingTaskEvent_COMPLETED SwarmingTaskEvent_State = 1
+ // The task has been canceled.
+ SwarmingTaskEvent_CANCELED SwarmingTaskEvent_State = 2
+ // The bot this task was running on has died.
+ SwarmingTaskEvent_BOT_DIED SwarmingTaskEvent_State = 3
+ // The task has exceeded one of the timeouts.
+ SwarmingTaskEvent_TIMED_OUT SwarmingTaskEvent_State = 4
+ // The task has not been picked up by any bot before expiration timestamp.
+ SwarmingTaskEvent_EXPIRED SwarmingTaskEvent_State = 5
+)
+
+var SwarmingTaskEvent_State_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "COMPLETED",
+ 2: "CANCELED",
+ 3: "BOT_DIED",
+ 4: "TIMED_OUT",
+ 5: "EXPIRED",
+}
+var SwarmingTaskEvent_State_value = map[string]int32{
+ "UNKNOWN": 0,
+ "COMPLETED": 1,
+ "CANCELED": 2,
+ "BOT_DIED": 3,
+ "TIMED_OUT": 4,
+ "EXPIRED": 5,
+}
+
+func (x SwarmingTaskEvent_State) Enum() *SwarmingTaskEvent_State {
+ p := new(SwarmingTaskEvent_State)
+ *p = x
+ return p
+}
+func (x SwarmingTaskEvent_State) String() string {
+ return proto.EnumName(SwarmingTaskEvent_State_name, int32(x))
+}
+func (x *SwarmingTaskEvent_State) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(SwarmingTaskEvent_State_value, data, "SwarmingTaskEvent_State")
+ if err != nil {
+ return err
+ }
+ *x = SwarmingTaskEvent_State(value)
+ return nil
+}
+func (SwarmingTaskEvent_State) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} }
+
+// The type of operation.
+type IsolateClientEvent_Operation int32
+
+const (
+ IsolateClientEvent_UNSPECIFIED IsolateClientEvent_Operation = 0
+ IsolateClientEvent_ARCHIVE IsolateClientEvent_Operation = 1
+)
+
+var IsolateClientEvent_Operation_name = map[int32]string{
+ 0: "UNSPECIFIED",
+ 1: "ARCHIVE",
+}
+var IsolateClientEvent_Operation_value = map[string]int32{
+ "UNSPECIFIED": 0,
+ "ARCHIVE": 1,
+}
+
+func (x IsolateClientEvent_Operation) Enum() *IsolateClientEvent_Operation {
+ p := new(IsolateClientEvent_Operation)
+ *p = x
+ return p
+}
+func (x IsolateClientEvent_Operation) String() string {
+ return proto.EnumName(IsolateClientEvent_Operation_name, int32(x))
+}
+func (x *IsolateClientEvent_Operation) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(IsolateClientEvent_Operation_value, data, "IsolateClientEvent_Operation")
+ if err != nil {
+ return err
+ }
+ *x = IsolateClientEvent_Operation(value)
+ return nil
+}
+func (IsolateClientEvent_Operation) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{10, 0}
+}
+
+type ChromeInfraEvent_TimestampKind int32
+
+const (
+ ChromeInfraEvent_UNKNOWN ChromeInfraEvent_TimestampKind = 0
+ // Event with no time extension
+ ChromeInfraEvent_POINT ChromeInfraEvent_TimestampKind = 1
+ // Start/end of an event with a time extension.
+ ChromeInfraEvent_BEGIN ChromeInfraEvent_TimestampKind = 2
+ ChromeInfraEvent_END ChromeInfraEvent_TimestampKind = 3
+)
+
+var ChromeInfraEvent_TimestampKind_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "POINT",
+ 2: "BEGIN",
+ 3: "END",
+}
+var ChromeInfraEvent_TimestampKind_value = map[string]int32{
+ "UNKNOWN": 0,
+ "POINT": 1,
+ "BEGIN": 2,
+ "END": 3,
+}
+
+func (x ChromeInfraEvent_TimestampKind) Enum() *ChromeInfraEvent_TimestampKind {
+ p := new(ChromeInfraEvent_TimestampKind)
+ *p = x
+ return p
+}
+func (x ChromeInfraEvent_TimestampKind) String() string {
+ return proto.EnumName(ChromeInfraEvent_TimestampKind_name, int32(x))
+}
+func (x *ChromeInfraEvent_TimestampKind) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(ChromeInfraEvent_TimestampKind_value, data, "ChromeInfraEvent_TimestampKind")
+ if err != nil {
+ return err
+ }
+ *x = ChromeInfraEvent_TimestampKind(value)
+ return nil
+}
+func (ChromeInfraEvent_TimestampKind) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{11, 0}
+}
+
+// Event from commit queue. This was closely modelled after the JSON data that
+// is sent to chromium-cq-status.appspot.com. All tags and certain fields,
+// however, were excluded: owner, message, state, timestamp. Some fields that
+// have been renamed have a correspoding comment.
+//
+// Next tag: 16
+type CQEvent struct {
+ Action *CQEvent_Action `protobuf:"varint,1,opt,name=action,enum=eventlog.CQEvent_Action" json:"action,omitempty"`
+ Verifier *CQEvent_Verifier `protobuf:"varint,2,opt,name=verifier,enum=eventlog.CQEvent_Verifier" json:"verifier,omitempty"`
+ // Name of the CQ that sends this event.
+ CqName *string `protobuf:"bytes,3,opt,name=cq_name,json=cqName" json:"cq_name,omitempty"`
+ // Issue ID that is processed by CQ; at most 100 characters.
+ Issue *string `protobuf:"bytes,4,opt,name=issue" json:"issue,omitempty"`
+ // Patchset ID that is processed by CQ; at most 100 characters.
+ Patchset *string `protobuf:"bytes,5,opt,name=patchset" json:"patchset,omitempty"`
+ // Timestamp when the CQ attempt was started (user clicked on CQ bit).
+ AttemptStartUsec *int64 `protobuf:"varint,6,opt,name=attempt_start_usec,json=attemptStartUsec" json:"attempt_start_usec,omitempty"`
+ Status *CQEvent_Status `protobuf:"varint,7,opt,name=status,enum=eventlog.CQEvent_Status" json:"status,omitempty"`
+ // True when the verifier has finished processing CL.
+ Done *bool `protobuf:"varint,8,opt,name=done" json:"done,omitempty"`
+ FailureReason *CQEvent_FailureReason `protobuf:"bytes,9,opt,name=failure_reason,json=failureReason" json:"failure_reason,omitempty"`
+ // True if CQ is in dry-run mode.
+ DryRun *bool `protobuf:"varint,10,opt,name=dry_run,json=dryRun" json:"dry_run,omitempty"`
+ // Amount of retries remaining for an attempt globally.
+ GlobalRetryQuota *int32 `protobuf:"varint,11,opt,name=global_retry_quota,json=globalRetryQuota" json:"global_retry_quota,omitempty"`
+ TriggeredTryjobs []*CQEvent_TriggeredTryJob `protobuf:"bytes,12,rep,name=triggered_tryjobs,json=triggeredTryjobs" json:"triggered_tryjobs,omitempty"`
+ // List of paths to files modified in the patch relative to checkout root.
+ Files []string `protobuf:"bytes,13,rep,name=files" json:"files,omitempty"`
+ // Codereview hostname of where issue/patchset is located.
+ CodereviewHostname *string `protobuf:"bytes,14,opt,name=codereview_hostname,json=codereviewHostname" json:"codereview_hostname,omitempty"`
+ // CQ config revision used for this run.
+ ConfigRevision *string `protobuf:"bytes,15,opt,name=config_revision,json=configRevision" json:"config_revision,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *CQEvent) Reset() { *m = CQEvent{} }
+func (m *CQEvent) String() string { return proto.CompactTextString(m) }
+func (*CQEvent) ProtoMessage() {}
+func (*CQEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+
+func (m *CQEvent) GetAction() CQEvent_Action {
+ if m != nil && m.Action != nil {
+ return *m.Action
+ }
+ return CQEvent_UNKNOWN_ACTION
+}
+
+func (m *CQEvent) GetVerifier() CQEvent_Verifier {
+ if m != nil && m.Verifier != nil {
+ return *m.Verifier
+ }
+ return CQEvent_UNKNOWN_VERIFIER
+}
+
+func (m *CQEvent) GetCqName() string {
+ if m != nil && m.CqName != nil {
+ return *m.CqName
+ }
+ return ""
+}
+
+func (m *CQEvent) GetIssue() string {
+ if m != nil && m.Issue != nil {
+ return *m.Issue
+ }
+ return ""
+}
+
+func (m *CQEvent) GetPatchset() string {
+ if m != nil && m.Patchset != nil {
+ return *m.Patchset
+ }
+ return ""
+}
+
+func (m *CQEvent) GetAttemptStartUsec() int64 {
+ if m != nil && m.AttemptStartUsec != nil {
+ return *m.AttemptStartUsec
+ }
+ return 0
+}
+
+func (m *CQEvent) GetStatus() CQEvent_Status {
+ if m != nil && m.Status != nil {
+ return *m.Status
+ }
+ return CQEvent_UNKNOWN_STATUS
+}
+
+func (m *CQEvent) GetDone() bool {
+ if m != nil && m.Done != nil {
+ return *m.Done
+ }
+ return false
+}
+
+func (m *CQEvent) GetFailureReason() *CQEvent_FailureReason {
+ if m != nil {
+ return m.FailureReason
+ }
+ return nil
+}
+
+func (m *CQEvent) GetDryRun() bool {
+ if m != nil && m.DryRun != nil {
+ return *m.DryRun
+ }
+ return false
+}
+
+func (m *CQEvent) GetGlobalRetryQuota() int32 {
+ if m != nil && m.GlobalRetryQuota != nil {
+ return *m.GlobalRetryQuota
+ }
+ return 0
+}
+
+func (m *CQEvent) GetTriggeredTryjobs() []*CQEvent_TriggeredTryJob {
+ if m != nil {
+ return m.TriggeredTryjobs
+ }
+ return nil
+}
+
+func (m *CQEvent) GetFiles() []string {
+ if m != nil {
+ return m.Files
+ }
+ return nil
+}
+
+func (m *CQEvent) GetCodereviewHostname() string {
+ if m != nil && m.CodereviewHostname != nil {
+ return *m.CodereviewHostname
+ }
+ return ""
+}
+
+func (m *CQEvent) GetConfigRevision() string {
+ if m != nil && m.ConfigRevision != nil {
+ return *m.ConfigRevision
+ }
+ return ""
+}
+
+// Detailed reason on failure to commit.
+type CQEvent_FailureReason struct {
+ Verifier *CQEvent_Verifier `protobuf:"varint,1,opt,name=verifier,enum=eventlog.CQEvent_Verifier" json:"verifier,omitempty"`
+ FailType *CQEvent_FailureReason_FailType `protobuf:"varint,2,opt,name=fail_type,json=failType,enum=eventlog.CQEvent_FailureReason_FailType" json:"fail_type,omitempty"`
+ // Only used by try_job verifier.
+ FailedTryJobs []*CQEvent_FailureReason_FailedTryJob `protobuf:"bytes,3,rep,name=failed_try_jobs,json=failedTryJobs" json:"failed_try_jobs,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *CQEvent_FailureReason) Reset() { *m = CQEvent_FailureReason{} }
+func (m *CQEvent_FailureReason) String() string { return proto.CompactTextString(m) }
+func (*CQEvent_FailureReason) ProtoMessage() {}
+func (*CQEvent_FailureReason) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 0} }
+
+func (m *CQEvent_FailureReason) GetVerifier() CQEvent_Verifier {
+ if m != nil && m.Verifier != nil {
+ return *m.Verifier
+ }
+ return CQEvent_UNKNOWN_VERIFIER
+}
+
+func (m *CQEvent_FailureReason) GetFailType() CQEvent_FailureReason_FailType {
+ if m != nil && m.FailType != nil {
+ return *m.FailType
+ }
+ return CQEvent_FailureReason_UNKNOWN_FAIL_TYPE
+}
+
+func (m *CQEvent_FailureReason) GetFailedTryJobs() []*CQEvent_FailureReason_FailedTryJob {
+ if m != nil {
+ return m.FailedTryJobs
+ }
+ return nil
+}
+
+type CQEvent_FailureReason_FailedTryJob struct {
+ Master *string `protobuf:"bytes,1,opt,name=master" json:"master,omitempty"`
+ Builder *string `protobuf:"bytes,2,opt,name=builder" json:"builder,omitempty"`
+ BuildId *int64 `protobuf:"varint,3,opt,name=build_id,json=buildId" json:"build_id,omitempty"`
+ FailType *BuildEvent_FailType `protobuf:"varint,5,opt,name=fail_type,json=failType,enum=eventlog.BuildEvent_FailType" json:"fail_type,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *CQEvent_FailureReason_FailedTryJob) Reset() { *m = CQEvent_FailureReason_FailedTryJob{} }
+func (m *CQEvent_FailureReason_FailedTryJob) String() string { return proto.CompactTextString(m) }
+func (*CQEvent_FailureReason_FailedTryJob) ProtoMessage() {}
+func (*CQEvent_FailureReason_FailedTryJob) Descriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{0, 0, 0}
+}
+
+func (m *CQEvent_FailureReason_FailedTryJob) GetMaster() string {
+ if m != nil && m.Master != nil {
+ return *m.Master
+ }
+ return ""
+}
+
+func (m *CQEvent_FailureReason_FailedTryJob) GetBuilder() string {
+ if m != nil && m.Builder != nil {
+ return *m.Builder
+ }
+ return ""
+}
+
+func (m *CQEvent_FailureReason_FailedTryJob) GetBuildId() int64 {
+ if m != nil && m.BuildId != nil {
+ return *m.BuildId
+ }
+ return 0
+}
+
+func (m *CQEvent_FailureReason_FailedTryJob) GetFailType() BuildEvent_FailType {
+ if m != nil && m.FailType != nil {
+ return *m.FailType
+ }
+ return BuildEvent_FAIL_TYPE_UNKNOWN
+}
+
+// Tryjobs which were triggered. Used for VERIFIER_TRIGGER action.
+type CQEvent_TriggeredTryJob struct {
+ Master *string `protobuf:"bytes,1,opt,name=master" json:"master,omitempty"`
+ Builder *string `protobuf:"bytes,2,opt,name=builder" json:"builder,omitempty"`
+ Tests []string `protobuf:"bytes,3,rep,name=tests" json:"tests,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *CQEvent_TriggeredTryJob) Reset() { *m = CQEvent_TriggeredTryJob{} }
+func (m *CQEvent_TriggeredTryJob) String() string { return proto.CompactTextString(m) }
+func (*CQEvent_TriggeredTryJob) ProtoMessage() {}
+func (*CQEvent_TriggeredTryJob) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0, 1} }
+
+func (m *CQEvent_TriggeredTryJob) GetMaster() string {
+ if m != nil && m.Master != nil {
+ return *m.Master
+ }
+ return ""
+}
+
+func (m *CQEvent_TriggeredTryJob) GetBuilder() string {
+ if m != nil && m.Builder != nil {
+ return *m.Builder
+ }
+ return ""
+}
+
+func (m *CQEvent_TriggeredTryJob) GetTests() []string {
+ if m != nil {
+ return m.Tests
+ }
+ return nil
+}
+
+// Describe version of code used or checked-out.
+//
+// Next tag: 7
+type CodeVersion struct {
+ // A reference to the source repository. Do not include any hash / revision
+ // information.
+ SourceUrl *string `protobuf:"bytes,1,opt,name=source_url,json=sourceUrl" json:"source_url,omitempty"`
+ // Indicates if the current state of the code has local modification.
+ Dirty *bool `protobuf:"varint,2,opt,name=dirty" json:"dirty,omitempty"`
+ // Provide only one of these, depending on version control system used.
+ Version *string `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"`
+ GitHash *string `protobuf:"bytes,4,opt,name=git_hash,json=gitHash" json:"git_hash,omitempty"`
+ SvnRevision *int32 `protobuf:"varint,5,opt,name=svn_revision,json=svnRevision" json:"svn_revision,omitempty"`
+ // Name of the branch we're on.
+ // ex: 'master', 'trunk'
+ Branch *string `protobuf:"bytes,6,opt,name=branch" json:"branch,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *CodeVersion) Reset() { *m = CodeVersion{} }
+func (m *CodeVersion) String() string { return proto.CompactTextString(m) }
+func (*CodeVersion) ProtoMessage() {}
+func (*CodeVersion) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+
+func (m *CodeVersion) GetSourceUrl() string {
+ if m != nil && m.SourceUrl != nil {
+ return *m.SourceUrl
+ }
+ return ""
+}
+
+func (m *CodeVersion) GetDirty() bool {
+ if m != nil && m.Dirty != nil {
+ return *m.Dirty
+ }
+ return false
+}
+
+func (m *CodeVersion) GetVersion() string {
+ if m != nil && m.Version != nil {
+ return *m.Version
+ }
+ return ""
+}
+
+func (m *CodeVersion) GetGitHash() string {
+ if m != nil && m.GitHash != nil {
+ return *m.GitHash
+ }
+ return ""
+}
+
+func (m *CodeVersion) GetSvnRevision() int32 {
+ if m != nil && m.SvnRevision != nil {
+ return *m.SvnRevision
+ }
+ return 0
+}
+
+func (m *CodeVersion) GetBranch() string {
+ if m != nil && m.Branch != nil {
+ return *m.Branch
+ }
+ return ""
+}
+
+// Describes a maintenance event on a system.
+//
+// Next tag: 4
+type ServiceEvent struct {
+ // Type of maintenance event (mandatory)
+ Type *ServiceEvent_ServiceEventType `protobuf:"varint,1,opt,name=type,enum=eventlog.ServiceEvent_ServiceEventType,def=0" json:"type,omitempty"`
+ // Version of the code running at the time of the event when appropriate.
+ CodeVersion []*CodeVersion `protobuf:"bytes,2,rep,name=code_version,json=codeVersion" json:"code_version,omitempty"`
+ // Stack trace in case of a crash.
+ StackTrace *string `protobuf:"bytes,3,opt,name=stack_trace,json=stackTrace" json:"stack_trace,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *ServiceEvent) Reset() { *m = ServiceEvent{} }
+func (m *ServiceEvent) String() string { return proto.CompactTextString(m) }
+func (*ServiceEvent) ProtoMessage() {}
+func (*ServiceEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+
+const Default_ServiceEvent_Type ServiceEvent_ServiceEventType = ServiceEvent_UNKNOWN
+
+func (m *ServiceEvent) GetType() ServiceEvent_ServiceEventType {
+ if m != nil && m.Type != nil {
+ return *m.Type
+ }
+ return Default_ServiceEvent_Type
+}
+
+func (m *ServiceEvent) GetCodeVersion() []*CodeVersion {
+ if m != nil {
+ return m.CodeVersion
+ }
+ return nil
+}
+
+func (m *ServiceEvent) GetStackTrace() string {
+ if m != nil && m.StackTrace != nil {
+ return *m.StackTrace
+ }
+ return ""
+}
+
+// Build events. Use that to get e.g. timing info and failure / success rates
+//
+// Next tag: 25
+type BuildEvent struct {
+ // Which build entity is considered here
+ Type *BuildEvent_BuildEventType `protobuf:"varint,1,opt,name=type,enum=eventlog.BuildEvent_BuildEventType" json:"type,omitempty"`
+ // Hostname of the machine running the build
+ HostName *string `protobuf:"bytes,2,opt,name=host_name,json=hostName" json:"host_name,omitempty"`
+ // Name of the builder
+ // This should not contain the master name: Use
+ // ChromeInfraEvent.event_source to provide it.
+ BuildName *string `protobuf:"bytes,3,opt,name=build_name,json=buildName" json:"build_name,omitempty"`
+ // Build number (if type is BUILD or STEP)
+ BuildNumber *int32 `protobuf:"varint,4,opt,name=build_number,json=buildNumber" json:"build_number,omitempty"`
+ // This is used to dedup builds with identical build_number.
+ BuildSchedulingTimeMs *int64 `protobuf:"varint,5,opt,name=build_scheduling_time_ms,json=buildSchedulingTimeMs" json:"build_scheduling_time_ms,omitempty"`
+ // Name of the step (if type is STEP)
+ StepName *string `protobuf:"bytes,6,opt,name=step_name,json=stepName" json:"step_name,omitempty"`
+ // Text associated with a step.
+ StepText *string `protobuf:"bytes,19,opt,name=step_text,json=stepText" json:"step_text,omitempty"`
+ // Rank of the step in the build
+ StepNumber *int32 `protobuf:"varint,7,opt,name=step_number,json=stepNumber" json:"step_number,omitempty"`
+ // Result of a event when it finishes. Use only for BUILD and STEP.
+ Result *BuildEvent_BuildResult `protobuf:"varint,8,opt,name=result,enum=eventlog.BuildEvent_BuildResult,def=0" json:"result,omitempty"`
+ // A list of codes to give more detail about the failure.
+ // This is expected to be short (<20 char) strings like 'INVALID_TESTS_RESULT'
+ // All strings are truncated to 20 characters server-side.
+ ExtraResultCode []string `protobuf:"bytes,10,rep,name=extra_result_code,json=extraResultCode" json:"extra_result_code,omitempty"`
+ // Statistics for goma usage if goma is used. Use only in compile STEP.
+ GomaStats *GomaStats `protobuf:"bytes,9,opt,name=goma_stats,json=gomaStats" json:"goma_stats,omitempty"`
+ GomaError *BuildEvent_GomaErrorType `protobuf:"varint,17,opt,name=goma_error,json=gomaError,enum=eventlog.BuildEvent_GomaErrorType,def=0" json:"goma_error,omitempty"`
+ // Crash report id for goma compiler_proxy if it has crashed.
+ // The report can be seen in:
+ // https://crash.corp.google.com/browse?reportid=<report id>
+ GomaCrashReportId *string `protobuf:"bytes,18,opt,name=goma_crash_report_id,json=gomaCrashReportId" json:"goma_crash_report_id,omitempty"`
+ // Project the build is in (e.g. 'chromium', 'infra')
+ Project *string `protobuf:"bytes,11,opt,name=project" json:"project,omitempty"`
+ // Latest revision checked-out.
+ // This is the revision of the code under test, NOT of the infra code.
+ HeadRevision *CodeVersion `protobuf:"bytes,12,opt,name=head_revision,json=headRevision" json:"head_revision,omitempty"`
+ // Other revision(s) checked-out.
+ // Like head_revision, this is for the code under test.
+ // Providing several revisions is useful when batching. This is the
+ // "blame list" in Buildbot vocabulary.
+ Revision []*CodeVersion `protobuf:"bytes,13,rep,name=revision" json:"revision,omitempty"`
+ // Patch under test, if any. Used on tryservers.
+ // Ex: https://chromiumcodereview.appspot.com/1368583005/
+ PatchUrl *string `protobuf:"bytes,14,opt,name=patch_url,json=patchUrl" json:"patch_url,omitempty"`
+ // Group of builds that this build is part of as reported by the buildbucket.
+ // This should replace patch_url above as a more universal concept supporting
+ // both Rietveld, Gerrit and any other code review systems.
+ // Ex.: patch/rietveld/codereview.chromium.org/2179293005/1
+ Buildset *string `protobuf:"bytes,24,opt,name=buildset" json:"buildset,omitempty"`
+ Category *BuildEvent_Category `protobuf:"varint,20,opt,name=category,enum=eventlog.BuildEvent_Category" json:"category,omitempty"`
+ // Buildbucket build id, when triggered through buildbucket.
+ // ex: 9032782684794853744
+ BbucketId *int64 `protobuf:"varint,15,opt,name=bbucket_id,json=bbucketId" json:"bbucket_id,omitempty"`
+ // How the build was triggered on buildbucket.
+ // ex: 'git_cl_try'
+ BbucketUserAgent *string `protobuf:"bytes,16,opt,name=bbucket_user_agent,json=bbucketUserAgent" json:"bbucket_user_agent,omitempty"`
+ FailType *BuildEvent_FailType `protobuf:"varint,21,opt,name=fail_type,json=failType,enum=eventlog.BuildEvent_FailType" json:"fail_type,omitempty"`
+ // Fields to specify commit queue (CQ) project and subproject. These are only
+ // set when the category is CATEGORY_CQ or CATEGORY_CQ_EXPERIMENTAL.
+ CqProject *string `protobuf:"bytes,22,opt,name=cq_project,json=cqProject" json:"cq_project,omitempty"`
+ CqSubproject *string `protobuf:"bytes,23,opt,name=cq_subproject,json=cqSubproject" json:"cq_subproject,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *BuildEvent) Reset() { *m = BuildEvent{} }
+func (m *BuildEvent) String() string { return proto.CompactTextString(m) }
+func (*BuildEvent) ProtoMessage() {}
+func (*BuildEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
+
+const Default_BuildEvent_Result BuildEvent_BuildResult = BuildEvent_UNKNOWN
+const Default_BuildEvent_GomaError BuildEvent_GomaErrorType = BuildEvent_GOMA_ERROR_OK
+
+func (m *BuildEvent) GetType() BuildEvent_BuildEventType {
+ if m != nil && m.Type != nil {
+ return *m.Type
+ }
+ return BuildEvent_SCHEDULER
+}
+
+func (m *BuildEvent) GetHostName() string {
+ if m != nil && m.HostName != nil {
+ return *m.HostName
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetBuildName() string {
+ if m != nil && m.BuildName != nil {
+ return *m.BuildName
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetBuildNumber() int32 {
+ if m != nil && m.BuildNumber != nil {
+ return *m.BuildNumber
+ }
+ return 0
+}
+
+func (m *BuildEvent) GetBuildSchedulingTimeMs() int64 {
+ if m != nil && m.BuildSchedulingTimeMs != nil {
+ return *m.BuildSchedulingTimeMs
+ }
+ return 0
+}
+
+func (m *BuildEvent) GetStepName() string {
+ if m != nil && m.StepName != nil {
+ return *m.StepName
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetStepText() string {
+ if m != nil && m.StepText != nil {
+ return *m.StepText
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetStepNumber() int32 {
+ if m != nil && m.StepNumber != nil {
+ return *m.StepNumber
+ }
+ return 0
+}
+
+func (m *BuildEvent) GetResult() BuildEvent_BuildResult {
+ if m != nil && m.Result != nil {
+ return *m.Result
+ }
+ return Default_BuildEvent_Result
+}
+
+func (m *BuildEvent) GetExtraResultCode() []string {
+ if m != nil {
+ return m.ExtraResultCode
+ }
+ return nil
+}
+
+func (m *BuildEvent) GetGomaStats() *GomaStats {
+ if m != nil {
+ return m.GomaStats
+ }
+ return nil
+}
+
+func (m *BuildEvent) GetGomaError() BuildEvent_GomaErrorType {
+ if m != nil && m.GomaError != nil {
+ return *m.GomaError
+ }
+ return Default_BuildEvent_GomaError
+}
+
+func (m *BuildEvent) GetGomaCrashReportId() string {
+ if m != nil && m.GomaCrashReportId != nil {
+ return *m.GomaCrashReportId
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetProject() string {
+ if m != nil && m.Project != nil {
+ return *m.Project
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetHeadRevision() *CodeVersion {
+ if m != nil {
+ return m.HeadRevision
+ }
+ return nil
+}
+
+func (m *BuildEvent) GetRevision() []*CodeVersion {
+ if m != nil {
+ return m.Revision
+ }
+ return nil
+}
+
+func (m *BuildEvent) GetPatchUrl() string {
+ if m != nil && m.PatchUrl != nil {
+ return *m.PatchUrl
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetBuildset() string {
+ if m != nil && m.Buildset != nil {
+ return *m.Buildset
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetCategory() BuildEvent_Category {
+ if m != nil && m.Category != nil {
+ return *m.Category
+ }
+ return BuildEvent_CATEGORY_UNKNOWN
+}
+
+func (m *BuildEvent) GetBbucketId() int64 {
+ if m != nil && m.BbucketId != nil {
+ return *m.BbucketId
+ }
+ return 0
+}
+
+func (m *BuildEvent) GetBbucketUserAgent() string {
+ if m != nil && m.BbucketUserAgent != nil {
+ return *m.BbucketUserAgent
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetFailType() BuildEvent_FailType {
+ if m != nil && m.FailType != nil {
+ return *m.FailType
+ }
+ return BuildEvent_FAIL_TYPE_UNKNOWN
+}
+
+func (m *BuildEvent) GetCqProject() string {
+ if m != nil && m.CqProject != nil {
+ return *m.CqProject
+ }
+ return ""
+}
+
+func (m *BuildEvent) GetCqSubproject() string {
+ if m != nil && m.CqSubproject != nil {
+ return *m.CqSubproject
+ }
+ return ""
+}
+
+// Next tag: 4
+type InfraEventSource struct {
+ // This should not be an IP address.
+ HostName *string `protobuf:"bytes,1,opt,name=host_name,json=hostName" json:"host_name,omitempty"`
+ // Provide the name found in app.yaml, not the URL
+ AppengineName *string `protobuf:"bytes,2,opt,name=appengine_name,json=appengineName" json:"appengine_name,omitempty"`
+ // Name of service as found in infra(_internal).git/infra/services. For
+ // buildbot events this field contains '/buildbot/masters/' + master name.
+ // Ex: builder_alerts, /buildbot/masters/tryserver.chromium.linux.
+ ServiceName *string `protobuf:"bytes,3,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *InfraEventSource) Reset() { *m = InfraEventSource{} }
+func (m *InfraEventSource) String() string { return proto.CompactTextString(m) }
+func (*InfraEventSource) ProtoMessage() {}
+func (*InfraEventSource) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
+
+func (m *InfraEventSource) GetHostName() string {
+ if m != nil && m.HostName != nil {
+ return *m.HostName
+ }
+ return ""
+}
+
+func (m *InfraEventSource) GetAppengineName() string {
+ if m != nil && m.AppengineName != nil {
+ return *m.AppengineName
+ }
+ return ""
+}
+
+func (m *InfraEventSource) GetServiceName() string {
+ if m != nil && m.ServiceName != nil {
+ return *m.ServiceName
+ }
+ return ""
+}
+
+// Test results reported to test-results.appspot.com by the test launcher. Based
+// on original JSON format:
+// https://www.chromium.org/developers/the-json-test-results-format.
+//
+// Next tag: 9
+type TestResultsEvent struct {
+ // Required. Name of the master on which tests were run.
+ MasterName *string `protobuf:"bytes,1,opt,name=master_name,json=masterName" json:"master_name,omitempty"`
+ // Required. If this test run was produced on a bot, this should be the
+ // builder name of the bot, e.g., "Linux Tests".
+ BuilderName *string `protobuf:"bytes,2,opt,name=builder_name,json=builderName" json:"builder_name,omitempty"`
+ // Optional. If this test run was produced on a bot, this should be the build
+ // number of the run, e.g., 1234.
+ BuildNumber *int32 `protobuf:"varint,3,opt,name=build_number,json=buildNumber" json:"build_number,omitempty"`
+ // Required. Test type is derived from step name, by stripping anything but
+ // the first word (before the first space), but preserving '(with patch)'
+ // suffix if it was present in the original step name.
+ TestType *string `protobuf:"bytes,4,opt,name=test_type,json=testType" json:"test_type,omitempty"`
+ // Required. Whether the test run was interrupted and terminated early (either
+ // via the runner bailing out or the user hitting ctrl-C, etc.) If true, this
+ // indicates that not all of the tests in the suite were run and the results
+ // are at best incomplete and possibly totally invalid.
+ Interrupted *bool `protobuf:"varint,5,opt,name=interrupted" json:"interrupted,omitempty"`
+ // Required. Version of the JSON file format. Current version is 3.
+ Version *int32 `protobuf:"varint,6,opt,name=version" json:"version,omitempty"`
+ // Required. The start time of the test run expressed as a number of
+ // microseconds from the UNIX epoch.
+ UsecSinceEpoch *int64 `protobuf:"varint,7,opt,name=usec_since_epoch,json=usecSinceEpoch" json:"usec_since_epoch,omitempty"`
+ // Test results for individual tests.
+ Tests []*TestResultsEvent_TestResult `protobuf:"bytes,8,rep,name=tests" json:"tests,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *TestResultsEvent) Reset() { *m = TestResultsEvent{} }
+func (m *TestResultsEvent) String() string { return proto.CompactTextString(m) }
+func (*TestResultsEvent) ProtoMessage() {}
+func (*TestResultsEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
+
+func (m *TestResultsEvent) GetMasterName() string {
+ if m != nil && m.MasterName != nil {
+ return *m.MasterName
+ }
+ return ""
+}
+
+func (m *TestResultsEvent) GetBuilderName() string {
+ if m != nil && m.BuilderName != nil {
+ return *m.BuilderName
+ }
+ return ""
+}
+
+func (m *TestResultsEvent) GetBuildNumber() int32 {
+ if m != nil && m.BuildNumber != nil {
+ return *m.BuildNumber
+ }
+ return 0
+}
+
+func (m *TestResultsEvent) GetTestType() string {
+ if m != nil && m.TestType != nil {
+ return *m.TestType
+ }
+ return ""
+}
+
+func (m *TestResultsEvent) GetInterrupted() bool {
+ if m != nil && m.Interrupted != nil {
+ return *m.Interrupted
+ }
+ return false
+}
+
+func (m *TestResultsEvent) GetVersion() int32 {
+ if m != nil && m.Version != nil {
+ return *m.Version
+ }
+ return 0
+}
+
+func (m *TestResultsEvent) GetUsecSinceEpoch() int64 {
+ if m != nil && m.UsecSinceEpoch != nil {
+ return *m.UsecSinceEpoch
+ }
+ return 0
+}
+
+func (m *TestResultsEvent) GetTests() []*TestResultsEvent_TestResult {
+ if m != nil {
+ return m.Tests
+ }
+ return nil
+}
+
+// Test result for an individual test.
+//
+// Next tag: 5
+type TestResultsEvent_TestResult struct {
+ // Full name of the test. Created by combining names of each nesting level
+ // in JSON format, e.g. test suite name, test case and actual test name
+ // using a separator as specified in "path_delimiter" field.
+ TestName *string `protobuf:"bytes,1,opt,name=test_name,json=testName" json:"test_name,omitempty"`
+ // Ordered list of actual test results. May contain multiple results if the
+ // test was retried by the test launcher.
+ Actual []TestResultsEvent_TestResultType `protobuf:"varint,2,rep,name=actual,enum=eventlog.TestResultsEvent_TestResultType" json:"actual,omitempty"`
+ // Unordered set of expected results. May contain multiple results if the
+ // test may produce various results all of which are considered successful.
+ Expected []TestResultsEvent_TestResultType `protobuf:"varint,3,rep,name=expected,enum=eventlog.TestResultsEvent_TestResultType" json:"expected,omitempty"`
+ // URLs of the bugs associated with the test.
+ Bugs []string `protobuf:"bytes,4,rep,name=bugs" json:"bugs,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *TestResultsEvent_TestResult) Reset() { *m = TestResultsEvent_TestResult{} }
+func (m *TestResultsEvent_TestResult) String() string { return proto.CompactTextString(m) }
+func (*TestResultsEvent_TestResult) ProtoMessage() {}
+func (*TestResultsEvent_TestResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5, 0} }
+
+func (m *TestResultsEvent_TestResult) GetTestName() string {
+ if m != nil && m.TestName != nil {
+ return *m.TestName
+ }
+ return ""
+}
+
+func (m *TestResultsEvent_TestResult) GetActual() []TestResultsEvent_TestResultType {
+ if m != nil {
+ return m.Actual
+ }
+ return nil
+}
+
+func (m *TestResultsEvent_TestResult) GetExpected() []TestResultsEvent_TestResultType {
+ if m != nil {
+ return m.Expected
+ }
+ return nil
+}
+
+func (m *TestResultsEvent_TestResult) GetBugs() []string {
+ if m != nil {
+ return m.Bugs
+ }
+ return nil
+}
+
+// Machine Provider events.
+// States in an enum are from one particular perspective and so may be
+// duplicated in other enums. States are prefixed because scoping rules
+// require enum values to be unique within MachineProviderEvent.
+//
+// Next tag: 8
+type MachineProviderEvent struct {
+ // State of a GCE machine.
+ GceBackendState *MachineProviderEvent_GCEBackendMachineState `protobuf:"varint,1,opt,name=gce_backend_state,json=gceBackendState,enum=eventlog.MachineProviderEvent_GCEBackendMachineState" json:"gce_backend_state,omitempty"`
+ // Reason for proposing GCE machine deletion.
+ GceBackendDeletionReason *MachineProviderEvent_GCEBackendDeletionReason `protobuf:"varint,2,opt,name=gce_backend_deletion_reason,json=gceBackendDeletionReason,enum=eventlog.MachineProviderEvent_GCEBackendDeletionReason" json:"gce_backend_deletion_reason,omitempty"`
+ // State of a Machine Provider machine.
+ MachineProviderState *MachineProviderEvent_MachineProviderMachineState `protobuf:"varint,3,opt,name=machine_provider_state,json=machineProviderState,enum=eventlog.MachineProviderEvent_MachineProviderMachineState" json:"machine_provider_state,omitempty"`
+ // Name of the Pub/Sub subscription created for this machine.
+ PubsubSubscription *string `protobuf:"bytes,4,opt,name=pubsub_subscription,json=pubsubSubscription" json:"pubsub_subscription,omitempty"`
+ // UTC timestamp in seconds when this machine's lease expires.
+ LeaseExpirationTs *int64 `protobuf:"varint,5,opt,name=lease_expiration_ts,json=leaseExpirationTs" json:"lease_expiration_ts,omitempty"`
+ // State of a machine reported by the Machine Provider agent.
+ MachineState *MachineProviderEvent_MachineProviderAgentState `protobuf:"varint,6,opt,name=machine_state,json=machineState,enum=eventlog.MachineProviderEvent_MachineProviderAgentState" json:"machine_state,omitempty"`
+ // Address of the Swarming server.
+ SwarmingServer *string `protobuf:"bytes,7,opt,name=swarming_server,json=swarmingServer" json:"swarming_server,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *MachineProviderEvent) Reset() { *m = MachineProviderEvent{} }
+func (m *MachineProviderEvent) String() string { return proto.CompactTextString(m) }
+func (*MachineProviderEvent) ProtoMessage() {}
+func (*MachineProviderEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
+
+func (m *MachineProviderEvent) GetGceBackendState() MachineProviderEvent_GCEBackendMachineState {
+ if m != nil && m.GceBackendState != nil {
+ return *m.GceBackendState
+ }
+ return MachineProviderEvent_GCE_UNKNOWN
+}
+
+func (m *MachineProviderEvent) GetGceBackendDeletionReason() MachineProviderEvent_GCEBackendDeletionReason {
+ if m != nil && m.GceBackendDeletionReason != nil {
+ return *m.GceBackendDeletionReason
+ }
+ return MachineProviderEvent_RECLAMATION
+}
+
+func (m *MachineProviderEvent) GetMachineProviderState() MachineProviderEvent_MachineProviderMachineState {
+ if m != nil && m.MachineProviderState != nil {
+ return *m.MachineProviderState
+ }
+ return MachineProviderEvent_MP_UNKNOWN
+}
+
+func (m *MachineProviderEvent) GetPubsubSubscription() string {
+ if m != nil && m.PubsubSubscription != nil {
+ return *m.PubsubSubscription
+ }
+ return ""
+}
+
+func (m *MachineProviderEvent) GetLeaseExpirationTs() int64 {
+ if m != nil && m.LeaseExpirationTs != nil {
+ return *m.LeaseExpirationTs
+ }
+ return 0
+}
+
+func (m *MachineProviderEvent) GetMachineState() MachineProviderEvent_MachineProviderAgentState {
+ if m != nil && m.MachineState != nil {
+ return *m.MachineState
+ }
+ return MachineProviderEvent_AGENT_UNKNOWN
+}
+
+func (m *MachineProviderEvent) GetSwarmingServer() string {
+ if m != nil && m.SwarmingServer != nil {
+ return *m.SwarmingServer
+ }
+ return ""
+}
+
+// Analyze event: result of filtering compile and test targets for a build.
+//
+// Next tag: 11
+type AnalyzeEvent struct {
+ // Required. Name of the master on which tests were run.
+ MasterName *string `protobuf:"bytes,1,opt,name=master_name,json=masterName" json:"master_name,omitempty"`
+ // Required. If this test run was produced on a bot, this should be the
+ // builder name of the bot, e.g., "Linux Tests".
+ BuilderName *string `protobuf:"bytes,2,opt,name=builder_name,json=builderName" json:"builder_name,omitempty"`
+ // Optional. If this test run was produced on a bot, this should be the build
+ // number of the run, e.g., 1234. Stored as string to make it future-proof
+ // for CI systems where build IDs are not integers.
+ BuildId *string `protobuf:"bytes,3,opt,name=build_id,json=buildId" json:"build_id,omitempty"`
+ // Required. List of files affected by the patch.
+ AffectedFiles []string `protobuf:"bytes,4,rep,name=affected_files,json=affectedFiles" json:"affected_files,omitempty"`
+ // Required. Test targets supplied to analyze.
+ InputTestTargets []string `protobuf:"bytes,5,rep,name=input_test_targets,json=inputTestTargets" json:"input_test_targets,omitempty"`
+ // Required. Compile targets supplied to analyze.
+ InputCompileTargets []string `protobuf:"bytes,6,rep,name=input_compile_targets,json=inputCompileTargets" json:"input_compile_targets,omitempty"`
+ // Required. Result of running analyze.
+ Result *AnalyzeEvent_AnalyzeResult `protobuf:"varint,7,opt,name=result,enum=eventlog.AnalyzeEvent_AnalyzeResult,def=0" json:"result,omitempty"`
+ // Optional. Test targets returned by analyze.
+ OutputTestTargets []string `protobuf:"bytes,8,rep,name=output_test_targets,json=outputTestTargets" json:"output_test_targets,omitempty"`
+ // Optional. Compile targets returned by analyze.
+ OutputCompileTargets []string `protobuf:"bytes,9,rep,name=output_compile_targets,json=outputCompileTargets" json:"output_compile_targets,omitempty"`
+ // Optional. Targets that were determined to be invalid.
+ InvalidTargets []string `protobuf:"bytes,10,rep,name=invalid_targets,json=invalidTargets" json:"invalid_targets,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *AnalyzeEvent) Reset() { *m = AnalyzeEvent{} }
+func (m *AnalyzeEvent) String() string { return proto.CompactTextString(m) }
+func (*AnalyzeEvent) ProtoMessage() {}
+func (*AnalyzeEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
+
+const Default_AnalyzeEvent_Result AnalyzeEvent_AnalyzeResult = AnalyzeEvent_UNKNOWN
+
+func (m *AnalyzeEvent) GetMasterName() string {
+ if m != nil && m.MasterName != nil {
+ return *m.MasterName
+ }
+ return ""
+}
+
+func (m *AnalyzeEvent) GetBuilderName() string {
+ if m != nil && m.BuilderName != nil {
+ return *m.BuilderName
+ }
+ return ""
+}
+
+func (m *AnalyzeEvent) GetBuildId() string {
+ if m != nil && m.BuildId != nil {
+ return *m.BuildId
+ }
+ return ""
+}
+
+func (m *AnalyzeEvent) GetAffectedFiles() []string {
+ if m != nil {
+ return m.AffectedFiles
+ }
+ return nil
+}
+
+func (m *AnalyzeEvent) GetInputTestTargets() []string {
+ if m != nil {
+ return m.InputTestTargets
+ }
+ return nil
+}
+
+func (m *AnalyzeEvent) GetInputCompileTargets() []string {
+ if m != nil {
+ return m.InputCompileTargets
+ }
+ return nil
+}
+
+func (m *AnalyzeEvent) GetResult() AnalyzeEvent_AnalyzeResult {
+ if m != nil && m.Result != nil {
+ return *m.Result
+ }
+ return Default_AnalyzeEvent_Result
+}
+
+func (m *AnalyzeEvent) GetOutputTestTargets() []string {
+ if m != nil {
+ return m.OutputTestTargets
+ }
+ return nil
+}
+
+func (m *AnalyzeEvent) GetOutputCompileTargets() []string {
+ if m != nil {
+ return m.OutputCompileTargets
+ }
+ return nil
+}
+
+func (m *AnalyzeEvent) GetInvalidTargets() []string {
+ if m != nil {
+ return m.InvalidTargets
+ }
+ return nil
+}
+
+// Event corresponding to a completed swarming task.
+//
+// Next tag: 19.
+type SwarmingTaskEvent struct {
+ // Unique ID of this task.
+ Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+ // Request data.
+ Request *SwarmingTaskEvent_TaskRequest `protobuf:"bytes,2,opt,name=request" json:"request,omitempty"`
+ // State of the task.
+ State *SwarmingTaskEvent_State `protobuf:"varint,3,opt,name=state,enum=eventlog.SwarmingTaskEvent_State,def=0" json:"state,omitempty"`
+ // ID of the bot that ran this task.
+ BotId *string `protobuf:"bytes,4,opt,name=bot_id,json=botId" json:"bot_id,omitempty"`
+ // Bot version (as a hash) of the code running the task.
+ BotVersion *string `protobuf:"bytes,5,opt,name=bot_version,json=botVersion" json:"bot_version,omitempty"`
+ // Bot dimensions at the moment it claimed the task.
+ BotDimensions *SwarmingTaskEvent_Dimensions `protobuf:"bytes,6,opt,name=bot_dimensions,json=botDimensions" json:"bot_dimensions,omitempty"`
+ // All server versions seen as the task was updated.
+ ServerVersions []string `protobuf:"bytes,7,rep,name=server_versions,json=serverVersions" json:"server_versions,omitempty"`
+ // Indicates whether the task hit an internal (infrastructure) failure.
+ InternalFailure *bool `protobuf:"varint,8,opt,name=internal_failure,json=internalFailure,def=0" json:"internal_failure,omitempty"`
+ // Exit code of the task.
+ ExitCode *int32 `protobuf:"varint,9,opt,name=exit_code,json=exitCode" json:"exit_code,omitempty"`
+ // UTC timestamp in seconds when the task was started.
+ StartedTs *int64 `protobuf:"varint,10,opt,name=started_ts,json=startedTs" json:"started_ts,omitempty"`
+ // UTC timestamp in seconds when the bot completed this task.
+ CompletedTs *int64 `protobuf:"varint,11,opt,name=completed_ts,json=completedTs" json:"completed_ts,omitempty"`
+ // UTC timestamp in seconds when the task was abandoned.
+ AbandonedTs *int64 `protobuf:"varint,12,opt,name=abandoned_ts,json=abandonedTs" json:"abandoned_ts,omitempty"`
+ // Children tasks that were triggered by this task.
+ ChildrenTaskIds []string `protobuf:"bytes,13,rep,name=children_task_ids,json=childrenTaskIds" json:"children_task_ids,omitempty"`
+ // File outputs of the task.
+ OutputsRef *SwarmingTaskEvent_FilesRef `protobuf:"bytes,14,opt,name=outputs_ref,json=outputsRef" json:"outputs_ref,omitempty"`
+ // Effective cost of this task.
+ CostUsd *float32 `protobuf:"fixed32,15,opt,name=cost_usd,json=costUsd" json:"cost_usd,omitempty"`
+ // Cost saved for deduped task.
+ CostSavedUsd *float32 `protobuf:"fixed32,16,opt,name=cost_saved_usd,json=costSavedUsd" json:"cost_saved_usd,omitempty"`
+ // ID of the task the results were retrieved from.
+ DedupedFrom *string `protobuf:"bytes,17,opt,name=deduped_from,json=dedupedFrom" json:"deduped_from,omitempty"`
+ // Retry number of this task, starting from 1.
+ TryNumber *int64 `protobuf:"varint,18,opt,name=try_number,json=tryNumber" json:"try_number,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *SwarmingTaskEvent) Reset() { *m = SwarmingTaskEvent{} }
+func (m *SwarmingTaskEvent) String() string { return proto.CompactTextString(m) }
+func (*SwarmingTaskEvent) ProtoMessage() {}
+func (*SwarmingTaskEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
+
+const Default_SwarmingTaskEvent_State SwarmingTaskEvent_State = SwarmingTaskEvent_UNKNOWN
+const Default_SwarmingTaskEvent_InternalFailure bool = false
+
+func (m *SwarmingTaskEvent) GetId() string {
+ if m != nil && m.Id != nil {
+ return *m.Id
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent) GetRequest() *SwarmingTaskEvent_TaskRequest {
+ if m != nil {
+ return m.Request
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent) GetState() SwarmingTaskEvent_State {
+ if m != nil && m.State != nil {
+ return *m.State
+ }
+ return Default_SwarmingTaskEvent_State
+}
+
+func (m *SwarmingTaskEvent) GetBotId() string {
+ if m != nil && m.BotId != nil {
+ return *m.BotId
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent) GetBotVersion() string {
+ if m != nil && m.BotVersion != nil {
+ return *m.BotVersion
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent) GetBotDimensions() *SwarmingTaskEvent_Dimensions {
+ if m != nil {
+ return m.BotDimensions
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent) GetServerVersions() []string {
+ if m != nil {
+ return m.ServerVersions
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent) GetInternalFailure() bool {
+ if m != nil && m.InternalFailure != nil {
+ return *m.InternalFailure
+ }
+ return Default_SwarmingTaskEvent_InternalFailure
+}
+
+func (m *SwarmingTaskEvent) GetExitCode() int32 {
+ if m != nil && m.ExitCode != nil {
+ return *m.ExitCode
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent) GetStartedTs() int64 {
+ if m != nil && m.StartedTs != nil {
+ return *m.StartedTs
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent) GetCompletedTs() int64 {
+ if m != nil && m.CompletedTs != nil {
+ return *m.CompletedTs
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent) GetAbandonedTs() int64 {
+ if m != nil && m.AbandonedTs != nil {
+ return *m.AbandonedTs
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent) GetChildrenTaskIds() []string {
+ if m != nil {
+ return m.ChildrenTaskIds
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent) GetOutputsRef() *SwarmingTaskEvent_FilesRef {
+ if m != nil {
+ return m.OutputsRef
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent) GetCostUsd() float32 {
+ if m != nil && m.CostUsd != nil {
+ return *m.CostUsd
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent) GetCostSavedUsd() float32 {
+ if m != nil && m.CostSavedUsd != nil {
+ return *m.CostSavedUsd
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent) GetDedupedFrom() string {
+ if m != nil && m.DedupedFrom != nil {
+ return *m.DedupedFrom
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent) GetTryNumber() int64 {
+ if m != nil && m.TryNumber != nil {
+ return *m.TryNumber
+ }
+ return 0
+}
+
+// Subset of swarming dimensions safe to be included in logs.
+//
+// Next tag: 12.
+type SwarmingTaskEvent_Dimensions struct {
+ // Type of the CPU (e.g. x86-64).
+ Cpu []string `protobuf:"bytes,1,rep,name=cpu" json:"cpu,omitempty"`
+ // Number of CPU cores.
+ Cores []int64 `protobuf:"varint,2,rep,name=cores" json:"cores,omitempty"`
+ // Type of the GPU (e.g. none or 102b:0534).
+ Gpu []string `protobuf:"bytes,3,rep,name=gpu" json:"gpu,omitempty"`
+ // Operating system (e.g. Ubuntu-12.04).
+ Os []string `protobuf:"bytes,4,rep,name=os" json:"os,omitempty"`
+ // Logical pool to isolate different clients, e.g. Chrome.
+ Pool []string `protobuf:"bytes,5,rep,name=pool" json:"pool,omitempty"`
+ // Status of HiDPI (High Dots Per Inch).
+ Hidpi []string `protobuf:"bytes,6,rep,name=hidpi" json:"hidpi,omitempty"`
+ // GCE machine type, e.g. n1-standard-8.
+ MachineType []string `protobuf:"bytes,7,rep,name=machine_type,json=machineType" json:"machine_type,omitempty"`
+ // GCE machine zone, e.g. us-central1-a.
+ Zone []string `protobuf:"bytes,8,rep,name=zone" json:"zone,omitempty"`
+ // Mobile device type, e.g. bullhead.
+ DeviceType []string `protobuf:"bytes,9,rep,name=device_type,json=deviceType" json:"device_type,omitempty"`
+ // Mobile device operating system, e.g. M.
+ DeviceOs []string `protobuf:"bytes,10,rep,name=device_os,json=deviceOs" json:"device_os,omitempty"`
+ // Version of XCode IDE, e.g. 7.0.
+ XcodeVersion []string `protobuf:"bytes,11,rep,name=xcode_version,json=xcodeVersion" json:"xcode_version,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *SwarmingTaskEvent_Dimensions) Reset() { *m = SwarmingTaskEvent_Dimensions{} }
+func (m *SwarmingTaskEvent_Dimensions) String() string { return proto.CompactTextString(m) }
+func (*SwarmingTaskEvent_Dimensions) ProtoMessage() {}
+func (*SwarmingTaskEvent_Dimensions) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} }
+
+func (m *SwarmingTaskEvent_Dimensions) GetCpu() []string {
+ if m != nil {
+ return m.Cpu
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetCores() []int64 {
+ if m != nil {
+ return m.Cores
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetGpu() []string {
+ if m != nil {
+ return m.Gpu
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetOs() []string {
+ if m != nil {
+ return m.Os
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetPool() []string {
+ if m != nil {
+ return m.Pool
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetHidpi() []string {
+ if m != nil {
+ return m.Hidpi
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetMachineType() []string {
+ if m != nil {
+ return m.MachineType
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetZone() []string {
+ if m != nil {
+ return m.Zone
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetDeviceType() []string {
+ if m != nil {
+ return m.DeviceType
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetDeviceOs() []string {
+ if m != nil {
+ return m.DeviceOs
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Dimensions) GetXcodeVersion() []string {
+ if m != nil {
+ return m.XcodeVersion
+ }
+ return nil
+}
+
+// Subset of swarming tags safe to be included in logs.
+//
+// Next tag: 11.
+type SwarmingTaskEvent_Tags struct {
+ // Name, e.g. ppapi_unittests.
+ Name []string `protobuf:"bytes,1,rep,name=name" json:"name,omitempty"`
+ // Project, e.g. chromium.
+ Project []string `protobuf:"bytes,2,rep,name=project" json:"project,omitempty"`
+ // Patched project, e.g. chromium or v8.
+ PatchProject []string `protobuf:"bytes,3,rep,name=patch_project,json=patchProject" json:"patch_project,omitempty"`
+ // Purpose of the test, e.g. CQ, pre-commit.
+ Purpose []string `protobuf:"bytes,4,rep,name=purpose" json:"purpose,omitempty"`
+ // Name of the master this was triggered from.
+ Master []string `protobuf:"bytes,5,rep,name=master" json:"master,omitempty"`
+ // Name of the builder this was triggered from.
+ Buildername []string `protobuf:"bytes,6,rep,name=buildername" json:"buildername,omitempty"`
+ // Build ID (e.g. build number) this was triggered from.
+ BuildId []string `protobuf:"bytes,7,rep,name=build_id,json=buildId" json:"build_id,omitempty"`
+ // Name of the step this was triggered from.
+ Stepname []string `protobuf:"bytes,8,rep,name=stepname" json:"stepname,omitempty"`
+ // ID of the slave this was triggered from.
+ Slavename []string `protobuf:"bytes,9,rep,name=slavename" json:"slavename,omitempty"`
+ // Link to code review issue this was triggered for.
+ Codereview []string `protobuf:"bytes,10,rep,name=codereview" json:"codereview,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *SwarmingTaskEvent_Tags) Reset() { *m = SwarmingTaskEvent_Tags{} }
+func (m *SwarmingTaskEvent_Tags) String() string { return proto.CompactTextString(m) }
+func (*SwarmingTaskEvent_Tags) ProtoMessage() {}
+func (*SwarmingTaskEvent_Tags) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 1} }
+
+func (m *SwarmingTaskEvent_Tags) GetName() []string {
+ if m != nil {
+ return m.Name
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetProject() []string {
+ if m != nil {
+ return m.Project
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetPatchProject() []string {
+ if m != nil {
+ return m.PatchProject
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetPurpose() []string {
+ if m != nil {
+ return m.Purpose
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetMaster() []string {
+ if m != nil {
+ return m.Master
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetBuildername() []string {
+ if m != nil {
+ return m.Buildername
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetBuildId() []string {
+ if m != nil {
+ return m.BuildId
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetStepname() []string {
+ if m != nil {
+ return m.Stepname
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetSlavename() []string {
+ if m != nil {
+ return m.Slavename
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_Tags) GetCodereview() []string {
+ if m != nil {
+ return m.Codereview
+ }
+ return nil
+}
+
+// Data tree reference, a reference to a .isolated file.
+//
+// Next tag: 4.
+type SwarmingTaskEvent_FilesRef struct {
+ // Hash of the isolated archive.
+ Isolated *string `protobuf:"bytes,1,opt,name=isolated" json:"isolated,omitempty"`
+ // Hostname of the isolated server to use.
+ Isolatedserver *string `protobuf:"bytes,2,opt,name=isolatedserver" json:"isolatedserver,omitempty"`
+ // Namespace of the isolate server.
+ Namespace *string `protobuf:"bytes,3,opt,name=namespace" json:"namespace,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *SwarmingTaskEvent_FilesRef) Reset() { *m = SwarmingTaskEvent_FilesRef{} }
+func (m *SwarmingTaskEvent_FilesRef) String() string { return proto.CompactTextString(m) }
+func (*SwarmingTaskEvent_FilesRef) ProtoMessage() {}
+func (*SwarmingTaskEvent_FilesRef) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 2} }
+
+func (m *SwarmingTaskEvent_FilesRef) GetIsolated() string {
+ if m != nil && m.Isolated != nil {
+ return *m.Isolated
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent_FilesRef) GetIsolatedserver() string {
+ if m != nil && m.Isolatedserver != nil {
+ return *m.Isolatedserver
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent_FilesRef) GetNamespace() string {
+ if m != nil && m.Namespace != nil {
+ return *m.Namespace
+ }
+ return ""
+}
+
+// CIPD (Chrome Infrastructure Package Deployment) package reference.
+// See https://github.com/luci/luci-go/tree/master/cipd for more info.
+//
+// Next tag: 4.
+type SwarmingTaskEvent_CipdPackage struct {
+ // Package name template.
+ PackageName *string `protobuf:"bytes,1,opt,name=package_name,json=packageName" json:"package_name,omitempty"`
+ // Package version valid for all packages matched by package_name.
+ Version *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"`
+ // Relative path where to install the package.
+ Path *string `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *SwarmingTaskEvent_CipdPackage) Reset() { *m = SwarmingTaskEvent_CipdPackage{} }
+func (m *SwarmingTaskEvent_CipdPackage) String() string { return proto.CompactTextString(m) }
+func (*SwarmingTaskEvent_CipdPackage) ProtoMessage() {}
+func (*SwarmingTaskEvent_CipdPackage) Descriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{8, 3}
+}
+
+func (m *SwarmingTaskEvent_CipdPackage) GetPackageName() string {
+ if m != nil && m.PackageName != nil {
+ return *m.PackageName
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent_CipdPackage) GetVersion() string {
+ if m != nil && m.Version != nil {
+ return *m.Version
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent_CipdPackage) GetPath() string {
+ if m != nil && m.Path != nil {
+ return *m.Path
+ }
+ return ""
+}
+
+// Complete spec of CIPD input for a task.
+//
+// Next tag: 4.
+type SwarmingTaskEvent_CipdInput struct {
+ // URL of the CIPD server.
+ Server *string `protobuf:"bytes,1,opt,name=server" json:"server,omitempty"`
+ // Description of CIPD package for CIPD client itself.
+ ClientPackage *SwarmingTaskEvent_CipdPackage `protobuf:"bytes,2,opt,name=client_package,json=clientPackage" json:"client_package,omitempty"`
+ // The packages to install.
+ Packages []*SwarmingTaskEvent_CipdPackage `protobuf:"bytes,3,rep,name=packages" json:"packages,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *SwarmingTaskEvent_CipdInput) Reset() { *m = SwarmingTaskEvent_CipdInput{} }
+func (m *SwarmingTaskEvent_CipdInput) String() string { return proto.CompactTextString(m) }
+func (*SwarmingTaskEvent_CipdInput) ProtoMessage() {}
+func (*SwarmingTaskEvent_CipdInput) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 4} }
+
+func (m *SwarmingTaskEvent_CipdInput) GetServer() string {
+ if m != nil && m.Server != nil {
+ return *m.Server
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent_CipdInput) GetClientPackage() *SwarmingTaskEvent_CipdPackage {
+ if m != nil {
+ return m.ClientPackage
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_CipdInput) GetPackages() []*SwarmingTaskEvent_CipdPackage {
+ if m != nil {
+ return m.Packages
+ }
+ return nil
+}
+
+// Properties of a task. Part of task request.
+//
+// Next tag: 8.
+type SwarmingTaskEvent_TaskProperties struct {
+ // Isolated input.
+ InputsRef *SwarmingTaskEvent_FilesRef `protobuf:"bytes,1,opt,name=inputs_ref,json=inputsRef" json:"inputs_ref,omitempty"`
+ // CIPD package input.
+ CipdInput *SwarmingTaskEvent_CipdInput `protobuf:"bytes,2,opt,name=cipd_input,json=cipdInput" json:"cipd_input,omitempty"`
+ // Dimensions requested for the task.
+ Dimensions *SwarmingTaskEvent_Dimensions `protobuf:"bytes,3,opt,name=dimensions" json:"dimensions,omitempty"`
+ // Maximum duration the task can run.
+ ExecutionTimeoutS *int64 `protobuf:"varint,4,opt,name=execution_timeout_s,json=executionTimeoutS" json:"execution_timeout_s,omitempty"`
+ // Time between signaling the task to clean up and killing the process.
+ GracePeriodS *int64 `protobuf:"varint,5,opt,name=grace_period_s,json=gracePeriodS" json:"grace_period_s,omitempty"`
+ // Time until terminating the process when no new output is produced.
+ IoTimeoutS *int64 `protobuf:"varint,6,opt,name=io_timeout_s,json=ioTimeoutS" json:"io_timeout_s,omitempty"`
+ // Whether the task is idempotent (can be deduped).
+ Idempotent *bool `protobuf:"varint,7,opt,name=idempotent" json:"idempotent,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *SwarmingTaskEvent_TaskProperties) Reset() { *m = SwarmingTaskEvent_TaskProperties{} }
+func (m *SwarmingTaskEvent_TaskProperties) String() string { return proto.CompactTextString(m) }
+func (*SwarmingTaskEvent_TaskProperties) ProtoMessage() {}
+func (*SwarmingTaskEvent_TaskProperties) Descriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{8, 5}
+}
+
+func (m *SwarmingTaskEvent_TaskProperties) GetInputsRef() *SwarmingTaskEvent_FilesRef {
+ if m != nil {
+ return m.InputsRef
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_TaskProperties) GetCipdInput() *SwarmingTaskEvent_CipdInput {
+ if m != nil {
+ return m.CipdInput
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_TaskProperties) GetDimensions() *SwarmingTaskEvent_Dimensions {
+ if m != nil {
+ return m.Dimensions
+ }
+ return nil
+}
+
+func (m *SwarmingTaskEvent_TaskProperties) GetExecutionTimeoutS() int64 {
+ if m != nil && m.ExecutionTimeoutS != nil {
+ return *m.ExecutionTimeoutS
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent_TaskProperties) GetGracePeriodS() int64 {
+ if m != nil && m.GracePeriodS != nil {
+ return *m.GracePeriodS
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent_TaskProperties) GetIoTimeoutS() int64 {
+ if m != nil && m.IoTimeoutS != nil {
+ return *m.IoTimeoutS
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent_TaskProperties) GetIdempotent() bool {
+ if m != nil && m.Idempotent != nil {
+ return *m.Idempotent
+ }
+ return false
+}
+
+// User request for a task.
+//
+// Next tag: 8.
+type SwarmingTaskEvent_TaskRequest struct {
+ // Parent task ID (when applicable).
+ ParentTaskId *string `protobuf:"bytes,1,opt,name=parent_task_id,json=parentTaskId" json:"parent_task_id,omitempty"`
+ // Name for task (e.g. base_unittests/fecf5b7880/builder_name/300958).
+ Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
+ // UTC timestamp in seconds when the request was created.
+ CreatedTs *int64 `protobuf:"varint,3,opt,name=created_ts,json=createdTs" json:"created_ts,omitempty"`
+ // UTC timestamp in seconds when the request expires.
+ ExpirationTs *int64 `protobuf:"varint,4,opt,name=expiration_ts,json=expirationTs" json:"expiration_ts,omitempty"`
+ // Priority of the task (lower is higher priority).
+ Priority *int64 `protobuf:"varint,5,opt,name=priority" json:"priority,omitempty"`
+ // PubSub topic receiving task completion notifications.
+ PubsubTopic *string `protobuf:"bytes,6,opt,name=pubsub_topic,json=pubsubTopic" json:"pubsub_topic,omitempty"`
+ // Additional properties (matching layout on the swarming side).
+ Properties *SwarmingTaskEvent_TaskProperties `protobuf:"bytes,7,opt,name=properties" json:"properties,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *SwarmingTaskEvent_TaskRequest) Reset() { *m = SwarmingTaskEvent_TaskRequest{} }
+func (m *SwarmingTaskEvent_TaskRequest) String() string { return proto.CompactTextString(m) }
+func (*SwarmingTaskEvent_TaskRequest) ProtoMessage() {}
+func (*SwarmingTaskEvent_TaskRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{8, 6}
+}
+
+func (m *SwarmingTaskEvent_TaskRequest) GetParentTaskId() string {
+ if m != nil && m.ParentTaskId != nil {
+ return *m.ParentTaskId
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent_TaskRequest) GetName() string {
+ if m != nil && m.Name != nil {
+ return *m.Name
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent_TaskRequest) GetCreatedTs() int64 {
+ if m != nil && m.CreatedTs != nil {
+ return *m.CreatedTs
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent_TaskRequest) GetExpirationTs() int64 {
+ if m != nil && m.ExpirationTs != nil {
+ return *m.ExpirationTs
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent_TaskRequest) GetPriority() int64 {
+ if m != nil && m.Priority != nil {
+ return *m.Priority
+ }
+ return 0
+}
+
+func (m *SwarmingTaskEvent_TaskRequest) GetPubsubTopic() string {
+ if m != nil && m.PubsubTopic != nil {
+ return *m.PubsubTopic
+ }
+ return ""
+}
+
+func (m *SwarmingTaskEvent_TaskRequest) GetProperties() *SwarmingTaskEvent_TaskProperties {
+ if m != nil {
+ return m.Properties
+ }
+ return nil
+}
+
+// Details of the binary which generated this log.
+type Binary struct {
+ // The name of the binary e.g. "isolate".
+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+ // The git revision of the https://chromium.googlesource.com/infra/infra
+ // repo, at which the binary was built.
+ InfraRevision *string `protobuf:"bytes,2,opt,name=infra_revision,json=infraRevision" json:"infra_revision,omitempty"`
+ // The git revision of the https://github.com/luci/luci-go repo, at which
+ // the binary was built.
+ // The infra repo has a dependency on the luci-go repo, with the luci-go
+ // git revision stored in a configuration file in the infra repo. Thus it
+ // is possible to determine the luci_go_revision given the infra_revision.
+ // However, both are stored in this proto to simplify analysis.
+ LuciGoRevision *string `protobuf:"bytes,3,opt,name=luci_go_revision,json=luciGoRevision" json:"luci_go_revision,omitempty"`
+ // The version number of the binary.
+ VersionNumber *string `protobuf:"bytes,4,opt,name=version_number,json=versionNumber" json:"version_number,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Binary) Reset() { *m = Binary{} }
+func (m *Binary) String() string { return proto.CompactTextString(m) }
+func (*Binary) ProtoMessage() {}
+func (*Binary) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
+
+func (m *Binary) GetName() string {
+ if m != nil && m.Name != nil {
+ return *m.Name
+ }
+ return ""
+}
+
+func (m *Binary) GetInfraRevision() string {
+ if m != nil && m.InfraRevision != nil {
+ return *m.InfraRevision
+ }
+ return ""
+}
+
+func (m *Binary) GetLuciGoRevision() string {
+ if m != nil && m.LuciGoRevision != nil {
+ return *m.LuciGoRevision
+ }
+ return ""
+}
+
+func (m *Binary) GetVersionNumber() string {
+ if m != nil && m.VersionNumber != nil {
+ return *m.VersionNumber
+ }
+ return ""
+}
+
+// Describes a run of the isolate client.
+// Next tag: 10
+type IsolateClientEvent struct {
+ // Details of the isolate binary version which generated this log.
+ Binary *Binary `protobuf:"bytes,1,opt,name=binary" json:"binary,omitempty"`
+ // The type of operation. If set to ARCHIVE, archive_details is also set.
+ Operation *IsolateClientEvent_Operation `protobuf:"varint,2,opt,name=operation,enum=eventlog.IsolateClientEvent_Operation" json:"operation,omitempty"`
+ // Stats for an archive operation.
+ ArchiveDetails *IsolateClientEvent_ArchiveDetails `protobuf:"bytes,3,opt,name=archive_details,json=archiveDetails" json:"archive_details,omitempty"`
+ // The name of the buildbot master which caused this operation to run.
+ Master *string `protobuf:"bytes,4,opt,name=master" json:"master,omitempty"`
+ // The name of the builder which caused this operation to run.
+ Builder *string `protobuf:"bytes,5,opt,name=builder" json:"builder,omitempty"`
+ // The id of the build operation in which the isolate binary was run.
+ BuildId *string `protobuf:"bytes,6,opt,name=build_id,json=buildId" json:"build_id,omitempty"`
+ // The host on which the isolate binary was executed.
+ Slave *string `protobuf:"bytes,7,opt,name=slave" json:"slave,omitempty"`
+ // Start time of the operation in microseconds.
+ StartTsUsec *int64 `protobuf:"varint,8,opt,name=start_ts_usec,json=startTsUsec" json:"start_ts_usec,omitempty"`
+ // End time of the operation in microseconds.
+ EndTsUsec *int64 `protobuf:"varint,9,opt,name=end_ts_usec,json=endTsUsec" json:"end_ts_usec,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *IsolateClientEvent) Reset() { *m = IsolateClientEvent{} }
+func (m *IsolateClientEvent) String() string { return proto.CompactTextString(m) }
+func (*IsolateClientEvent) ProtoMessage() {}
+func (*IsolateClientEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
+
+func (m *IsolateClientEvent) GetBinary() *Binary {
+ if m != nil {
+ return m.Binary
+ }
+ return nil
+}
+
+func (m *IsolateClientEvent) GetOperation() IsolateClientEvent_Operation {
+ if m != nil && m.Operation != nil {
+ return *m.Operation
+ }
+ return IsolateClientEvent_UNSPECIFIED
+}
+
+func (m *IsolateClientEvent) GetArchiveDetails() *IsolateClientEvent_ArchiveDetails {
+ if m != nil {
+ return m.ArchiveDetails
+ }
+ return nil
+}
+
+func (m *IsolateClientEvent) GetMaster() string {
+ if m != nil && m.Master != nil {
+ return *m.Master
+ }
+ return ""
+}
+
+func (m *IsolateClientEvent) GetBuilder() string {
+ if m != nil && m.Builder != nil {
+ return *m.Builder
+ }
+ return ""
+}
+
+func (m *IsolateClientEvent) GetBuildId() string {
+ if m != nil && m.BuildId != nil {
+ return *m.BuildId
+ }
+ return ""
+}
+
+func (m *IsolateClientEvent) GetSlave() string {
+ if m != nil && m.Slave != nil {
+ return *m.Slave
+ }
+ return ""
+}
+
+func (m *IsolateClientEvent) GetStartTsUsec() int64 {
+ if m != nil && m.StartTsUsec != nil {
+ return *m.StartTsUsec
+ }
+ return 0
+}
+
+func (m *IsolateClientEvent) GetEndTsUsec() int64 {
+ if m != nil && m.EndTsUsec != nil {
+ return *m.EndTsUsec
+ }
+ return 0
+}
+
+// Stats for an archive operation. An archive operation uploads build
+// artifacts to the isolate server.
+type IsolateClientEvent_ArchiveDetails struct {
+ // The number of files to be isolated that were already present in the
+ // isolate cache.
+ HitCount *int64 `protobuf:"varint,1,opt,name=hit_count,json=hitCount" json:"hit_count,omitempty"`
+ // The number of bytes in files to be isolated that were already present in
+ // the isolate cache.
+ HitBytes *int64 `protobuf:"varint,2,opt,name=hit_bytes,json=hitBytes" json:"hit_bytes,omitempty"`
+ // The number of files to be isolated that were not already present in the
+ // isolate cache.
+ // This should equal upload_success_count + upload_fail_count.
+ MissCount *int64 `protobuf:"varint,3,opt,name=miss_count,json=missCount" json:"miss_count,omitempty"`
+ // The number of (uncompressed) bytes to be uploaded.
+ MissBytes *int64 `protobuf:"varint,4,opt,name=miss_bytes,json=missBytes" json:"miss_bytes,omitempty"`
+ // The number of files which were successfully uploaded to the isolate
+ // server.
+ UploadSuccessCount *int64 `protobuf:"varint,5,opt,name=upload_success_count,json=uploadSuccessCount" json:"upload_success_count,omitempty"`
+ // The number of files which were failed to be uploaded to the isolate
+ // server.
+ UploadFailCount *int64 `protobuf:"varint,6,opt,name=upload_fail_count,json=uploadFailCount" json:"upload_fail_count,omitempty"`
+ // The number of bytes which were successfully uploaded. This is the
+ // number of bytes after compression has been applied.
+ UploadBytes *int64 `protobuf:"varint,7,opt,name=upload_bytes,json=uploadBytes" json:"upload_bytes,omitempty"`
+ // The hash(es) of isolated data (i.e. the data that was uploaded), as
+ // stored in the produced isolated file. May contain more than one hash in
+ // the case of batch archive operations.
+ IsolateHash []string `protobuf:"bytes,8,rep,name=isolate_hash,json=isolateHash" json:"isolate_hash,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) Reset() { *m = IsolateClientEvent_ArchiveDetails{} }
+func (m *IsolateClientEvent_ArchiveDetails) String() string { return proto.CompactTextString(m) }
+func (*IsolateClientEvent_ArchiveDetails) ProtoMessage() {}
+func (*IsolateClientEvent_ArchiveDetails) Descriptor() ([]byte, []int) {
+ return fileDescriptor0, []int{10, 0}
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) GetHitCount() int64 {
+ if m != nil && m.HitCount != nil {
+ return *m.HitCount
+ }
+ return 0
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) GetHitBytes() int64 {
+ if m != nil && m.HitBytes != nil {
+ return *m.HitBytes
+ }
+ return 0
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) GetMissCount() int64 {
+ if m != nil && m.MissCount != nil {
+ return *m.MissCount
+ }
+ return 0
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) GetMissBytes() int64 {
+ if m != nil && m.MissBytes != nil {
+ return *m.MissBytes
+ }
+ return 0
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) GetUploadSuccessCount() int64 {
+ if m != nil && m.UploadSuccessCount != nil {
+ return *m.UploadSuccessCount
+ }
+ return 0
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) GetUploadFailCount() int64 {
+ if m != nil && m.UploadFailCount != nil {
+ return *m.UploadFailCount
+ }
+ return 0
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) GetUploadBytes() int64 {
+ if m != nil && m.UploadBytes != nil {
+ return *m.UploadBytes
+ }
+ return 0
+}
+
+func (m *IsolateClientEvent_ArchiveDetails) GetIsolateHash() []string {
+ if m != nil {
+ return m.IsolateHash
+ }
+ return nil
+}
+
+// Describes an event happening on the Chrome infrastructure go/chrome-infra
+// This is rather generic on purpose. New use cases should be added as a new
+// *_event field at the end.
+//
+// Next tag: 15
+type ChromeInfraEvent struct {
+ // Meaning of the timestamp provided in LogEvent.event_time_ms
+ // An event with a time extension (http request e.g.) should have two
+ // ChromeInfraEvent associated with it, marked BEGIN and END respectively.
+ TimestampKind *ChromeInfraEvent_TimestampKind `protobuf:"varint,1,opt,name=timestamp_kind,json=timestampKind,enum=eventlog.ChromeInfraEvent_TimestampKind,def=0" json:"timestamp_kind,omitempty"`
+ // // Dapper-style IDs, used to reconstruct traces.
+ // First event in the tree of events.
+ TraceId *string `protobuf:"bytes,2,opt,name=trace_id,json=traceId" json:"trace_id,omitempty"`
+ // Current event.
+ SpanId *string `protobuf:"bytes,3,opt,name=span_id,json=spanId" json:"span_id,omitempty"`
+ // (optional) event that triggered the current one.
+ ParentId *string `protobuf:"bytes,4,opt,name=parent_id,json=parentId" json:"parent_id,omitempty"`
+ // Can be a machine name, the name of a service, or something else.
+ EventSource *InfraEventSource `protobuf:"bytes,5,opt,name=event_source,json=eventSource" json:"event_source,omitempty"`
+ // Below this line: different kind of events. A single one should be provided.
+ // See the definition of each message type for a detailed description of
+ // their use.
+ ServiceEvent *ServiceEvent `protobuf:"bytes,6,opt,name=service_event,json=serviceEvent" json:"service_event,omitempty"`
+ BuildEvent *BuildEvent `protobuf:"bytes,8,opt,name=build_event,json=buildEvent" json:"build_event,omitempty"`
+ CqEvent *CQEvent `protobuf:"bytes,9,opt,name=cq_event,json=cqEvent" json:"cq_event,omitempty"`
+ // A group of test results reported to test-results app.
+ TestResults *TestResultsEvent `protobuf:"bytes,10,opt,name=test_results,json=testResults" json:"test_results,omitempty"`
+ MachineProviderEvent *MachineProviderEvent `protobuf:"bytes,11,opt,name=machine_provider_event,json=machineProviderEvent" json:"machine_provider_event,omitempty"`
+ AnalyzeEvent *AnalyzeEvent `protobuf:"bytes,12,opt,name=analyze_event,json=analyzeEvent" json:"analyze_event,omitempty"`
+ SwarmingTaskEvent *SwarmingTaskEvent `protobuf:"bytes,13,opt,name=swarming_task_event,json=swarmingTaskEvent" json:"swarming_task_event,omitempty"`
+ IsolateClientEvent *IsolateClientEvent `protobuf:"bytes,14,opt,name=isolate_client_event,json=isolateClientEvent" json:"isolate_client_event,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *ChromeInfraEvent) Reset() { *m = ChromeInfraEvent{} }
+func (m *ChromeInfraEvent) String() string { return proto.CompactTextString(m) }
+func (*ChromeInfraEvent) ProtoMessage() {}
+func (*ChromeInfraEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
+
+const Default_ChromeInfraEvent_TimestampKind ChromeInfraEvent_TimestampKind = ChromeInfraEvent_UNKNOWN
+
+func (m *ChromeInfraEvent) GetTimestampKind() ChromeInfraEvent_TimestampKind {
+ if m != nil && m.TimestampKind != nil {
+ return *m.TimestampKind
+ }
+ return Default_ChromeInfraEvent_TimestampKind
+}
+
+func (m *ChromeInfraEvent) GetTraceId() string {
+ if m != nil && m.TraceId != nil {
+ return *m.TraceId
+ }
+ return ""
+}
+
+func (m *ChromeInfraEvent) GetSpanId() string {
+ if m != nil && m.SpanId != nil {
+ return *m.SpanId
+ }
+ return ""
+}
+
+func (m *ChromeInfraEvent) GetParentId() string {
+ if m != nil && m.ParentId != nil {
+ return *m.ParentId
+ }
+ return ""
+}
+
+func (m *ChromeInfraEvent) GetEventSource() *InfraEventSource {
+ if m != nil {
+ return m.EventSource
+ }
+ return nil
+}
+
+func (m *ChromeInfraEvent) GetServiceEvent() *ServiceEvent {
+ if m != nil {
+ return m.ServiceEvent
+ }
+ return nil
+}
+
+func (m *ChromeInfraEvent) GetBuildEvent() *BuildEvent {
+ if m != nil {
+ return m.BuildEvent
+ }
+ return nil
+}
+
+func (m *ChromeInfraEvent) GetCqEvent() *CQEvent {
+ if m != nil {
+ return m.CqEvent
+ }
+ return nil
+}
+
+func (m *ChromeInfraEvent) GetTestResults() *TestResultsEvent {
+ if m != nil {
+ return m.TestResults
+ }
+ return nil
+}
+
+func (m *ChromeInfraEvent) GetMachineProviderEvent() *MachineProviderEvent {
+ if m != nil {
+ return m.MachineProviderEvent
+ }
+ return nil
+}
+
+func (m *ChromeInfraEvent) GetAnalyzeEvent() *AnalyzeEvent {
+ if m != nil {
+ return m.AnalyzeEvent
+ }
+ return nil
+}
+
+func (m *ChromeInfraEvent) GetSwarmingTaskEvent() *SwarmingTaskEvent {
+ if m != nil {
+ return m.SwarmingTaskEvent
+ }
+ return nil
+}
+
+func (m *ChromeInfraEvent) GetIsolateClientEvent() *IsolateClientEvent {
+ if m != nil {
+ return m.IsolateClientEvent
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterType((*CQEvent)(nil), "eventlog.CQEvent")
+ proto.RegisterType((*CQEvent_FailureReason)(nil), "eventlog.CQEvent.FailureReason")
+ proto.RegisterType((*CQEvent_FailureReason_FailedTryJob)(nil), "eventlog.CQEvent.FailureReason.FailedTryJob")
+ proto.RegisterType((*CQEvent_TriggeredTryJob)(nil), "eventlog.CQEvent.TriggeredTryJob")
+ proto.RegisterType((*CodeVersion)(nil), "eventlog.CodeVersion")
+ proto.RegisterType((*ServiceEvent)(nil), "eventlog.ServiceEvent")
+ proto.RegisterType((*BuildEvent)(nil), "eventlog.BuildEvent")
+ proto.RegisterType((*InfraEventSource)(nil), "eventlog.InfraEventSource")
+ proto.RegisterType((*TestResultsEvent)(nil), "eventlog.TestResultsEvent")
+ proto.RegisterType((*TestResultsEvent_TestResult)(nil), "eventlog.TestResultsEvent.TestResult")
+ proto.RegisterType((*MachineProviderEvent)(nil), "eventlog.MachineProviderEvent")
+ proto.RegisterType((*AnalyzeEvent)(nil), "eventlog.AnalyzeEvent")
+ proto.RegisterType((*SwarmingTaskEvent)(nil), "eventlog.SwarmingTaskEvent")
+ proto.RegisterType((*SwarmingTaskEvent_Dimensions)(nil), "eventlog.SwarmingTaskEvent.Dimensions")
+ proto.RegisterType((*SwarmingTaskEvent_Tags)(nil), "eventlog.SwarmingTaskEvent.Tags")
+ proto.RegisterType((*SwarmingTaskEvent_FilesRef)(nil), "eventlog.SwarmingTaskEvent.FilesRef")
+ proto.RegisterType((*SwarmingTaskEvent_CipdPackage)(nil), "eventlog.SwarmingTaskEvent.CipdPackage")
+ proto.RegisterType((*SwarmingTaskEvent_CipdInput)(nil), "eventlog.SwarmingTaskEvent.CipdInput")
+ proto.RegisterType((*SwarmingTaskEvent_TaskProperties)(nil), "eventlog.SwarmingTaskEvent.TaskProperties")
+ proto.RegisterType((*SwarmingTaskEvent_TaskRequest)(nil), "eventlog.SwarmingTaskEvent.TaskRequest")
+ proto.RegisterType((*Binary)(nil), "eventlog.Binary")
+ proto.RegisterType((*IsolateClientEvent)(nil), "eventlog.IsolateClientEvent")
+ proto.RegisterType((*IsolateClientEvent_ArchiveDetails)(nil), "eventlog.IsolateClientEvent.ArchiveDetails")
+ proto.RegisterType((*ChromeInfraEvent)(nil), "eventlog.ChromeInfraEvent")
+ proto.RegisterEnum("eventlog.CQEvent_Action", CQEvent_Action_name, CQEvent_Action_value)
+ proto.RegisterEnum("eventlog.CQEvent_Verifier", CQEvent_Verifier_name, CQEvent_Verifier_value)
+ proto.RegisterEnum("eventlog.CQEvent_Status", CQEvent_Status_name, CQEvent_Status_value)
+ proto.RegisterEnum("eventlog.CQEvent_FailureReason_FailType", CQEvent_FailureReason_FailType_name, CQEvent_FailureReason_FailType_value)
+ proto.RegisterEnum("eventlog.ServiceEvent_ServiceEventType", ServiceEvent_ServiceEventType_name, ServiceEvent_ServiceEventType_value)
+ proto.RegisterEnum("eventlog.BuildEvent_BuildEventType", BuildEvent_BuildEventType_name, BuildEvent_BuildEventType_value)
+ proto.RegisterEnum("eventlog.BuildEvent_BuildResult", BuildEvent_BuildResult_name, BuildEvent_BuildResult_value)
+ proto.RegisterEnum("eventlog.BuildEvent_GomaErrorType", BuildEvent_GomaErrorType_name, BuildEvent_GomaErrorType_value)
+ proto.RegisterEnum("eventlog.BuildEvent_Category", BuildEvent_Category_name, BuildEvent_Category_value)
+ proto.RegisterEnum("eventlog.BuildEvent_FailType", BuildEvent_FailType_name, BuildEvent_FailType_value)
+ proto.RegisterEnum("eventlog.TestResultsEvent_TestResultType", TestResultsEvent_TestResultType_name, TestResultsEvent_TestResultType_value)
+ proto.RegisterEnum("eventlog.MachineProviderEvent_GCEBackendMachineState", MachineProviderEvent_GCEBackendMachineState_name, MachineProviderEvent_GCEBackendMachineState_value)
+ proto.RegisterEnum("eventlog.MachineProviderEvent_GCEBackendDeletionReason", MachineProviderEvent_GCEBackendDeletionReason_name, MachineProviderEvent_GCEBackendDeletionReason_value)
+ proto.RegisterEnum("eventlog.MachineProviderEvent_MachineProviderMachineState", MachineProviderEvent_MachineProviderMachineState_name, MachineProviderEvent_MachineProviderMachineState_value)
+ proto.RegisterEnum("eventlog.MachineProviderEvent_MachineProviderAgentState", MachineProviderEvent_MachineProviderAgentState_name, MachineProviderEvent_MachineProviderAgentState_value)
+ proto.RegisterEnum("eventlog.AnalyzeEvent_AnalyzeResult", AnalyzeEvent_AnalyzeResult_name, AnalyzeEvent_AnalyzeResult_value)
+ proto.RegisterEnum("eventlog.SwarmingTaskEvent_State", SwarmingTaskEvent_State_name, SwarmingTaskEvent_State_value)
+ proto.RegisterEnum("eventlog.IsolateClientEvent_Operation", IsolateClientEvent_Operation_name, IsolateClientEvent_Operation_value)
+ proto.RegisterEnum("eventlog.ChromeInfraEvent_TimestampKind", ChromeInfraEvent_TimestampKind_name, ChromeInfraEvent_TimestampKind_value)
+}
+
+func init() {
+ proto.RegisterFile("github.com/luci/luci-go/common/eventlog/proto/chrome_infra_log.proto", fileDescriptor0)
+}
+
+var fileDescriptor0 = []byte{
+ // 4696 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x3a, 0x49, 0x73, 0x23, 0x59,
+ 0x5a, 0x23, 0xcb, 0x92, 0xa5, 0xa7, 0xc5, 0xe9, 0xb4, 0xab, 0x5a, 0xe3, 0x9a, 0xde, 0x34, 0xd3,
+ 0x33, 0x35, 0x4d, 0xe3, 0x6a, 0x2a, 0x7a, 0x98, 0xa6, 0x27, 0x20, 0x48, 0x4b, 0x69, 0x97, 0xba,
+ 0xb4, 0x55, 0x66, 0xaa, 0xba, 0x2b, 0x08, 0x48, 0xd2, 0x52, 0x5a, 0xce, 0x69, 0x49, 0xa9, 0xca,
+ 0x4c, 0x79, 0xca, 0xc3, 0x81, 0x03, 0x67, 0x0e, 0x13, 0x31, 0x01, 0x11, 0x1c, 0x39, 0x73, 0x22,
+ 0xe6, 0xc0, 0x95, 0x13, 0x04, 0x27, 0x38, 0x70, 0xe2, 0xca, 0x69, 0xfe, 0x02, 0x17, 0xbe, 0xe5,
+ 0xe5, 0x26, 0x57, 0x55, 0x57, 0x11, 0x5c, 0xec, 0x7c, 0xdf, 0xf2, 0x96, 0xef, 0x7d, 0xfb, 0x93,
+ 0xe8, 0xce, 0xbd, 0xe8, 0x6a, 0x73, 0x71, 0x32, 0xf5, 0x97, 0x0f, 0x16, 0x9b, 0xa9, 0x47, 0x7f,
+ 0x7e, 0x77, 0xee, 0x3f, 0x00, 0xc0, 0xd2, 0x5f, 0x3d, 0x70, 0xaf, 0xdd, 0x55, 0xb4, 0xf0, 0xe7,
+ 0x0f, 0xd6, 0x81, 0x1f, 0x01, 0xf4, 0x2a, 0xf0, 0x97, 0xae, 0xed, 0xad, 0x2e, 0x03, 0xc7, 0x06,
+ 0xf0, 0x09, 0x81, 0xd5, 0x4a, 0x4c, 0x76, 0xfc, 0x47, 0x6f, 0x37, 0xdf, 0xdc, 0x5f, 0x3a, 0x76,
+ 0x18, 0x39, 0x51, 0xc8, 0x33, 0xb5, 0x7f, 0xad, 0x8a, 0xbd, 0xce, 0x13, 0x1d, 0xa9, 0xd4, 0x4f,
+ 0x45, 0xd9, 0x99, 0x46, 0x9e, 0xbf, 0x6a, 0x15, 0x3e, 0x28, 0xdc, 0x6f, 0x3e, 0x6c, 0x9d, 0xc4,
+ 0xdc, 0x27, 0x92, 0xe4, 0x44, 0x23, 0xbc, 0x21, 0xe9, 0xd4, 0xdf, 0x17, 0x95, 0x6b, 0x37, 0xf0,
+ 0x2e, 0x3d, 0x37, 0x68, 0xed, 0x10, 0xcf, 0xf1, 0x6d, 0x9e, 0xa7, 0x92, 0xc2, 0x48, 0x68, 0xd5,
+ 0x77, 0xc4, 0xde, 0xf4, 0xb9, 0xbd, 0x72, 0x96, 0x6e, 0xab, 0x08, 0x6c, 0x55, 0xa3, 0x3c, 0x7d,
+ 0x3e, 0x84, 0x91, 0x7a, 0x24, 0x4a, 0x5e, 0x18, 0x6e, 0xdc, 0xd6, 0x2e, 0x81, 0x79, 0xa0, 0x1e,
+ 0x8b, 0xca, 0xda, 0x89, 0xa6, 0x57, 0xa1, 0x1b, 0xb5, 0x4a, 0x84, 0x48, 0xc6, 0xea, 0x27, 0x42,
+ 0x75, 0xa2, 0xc8, 0x5d, 0xae, 0x23, 0x3c, 0x57, 0x10, 0xd9, 0x9b, 0xd0, 0x9d, 0xb6, 0xca, 0x40,
+ 0x55, 0x34, 0x14, 0x89, 0x31, 0x11, 0x31, 0x01, 0xb8, 0xfa, 0x99, 0x28, 0xe3, 0xe9, 0x37, 0x61,
+ 0x6b, 0xef, 0x55, 0x47, 0x34, 0x09, 0x7f, 0xba, 0xd3, 0x2a, 0x18, 0x92, 0x56, 0x55, 0xc5, 0xee,
+ 0xcc, 0x5f, 0xb9, 0xad, 0x0a, 0xf0, 0x54, 0x0c, 0xfa, 0x56, 0xcf, 0x44, 0xf3, 0xd2, 0xf1, 0x16,
+ 0x9b, 0xc0, 0xb5, 0x03, 0xd7, 0x09, 0x41, 0x68, 0x55, 0xc0, 0xd6, 0x1e, 0xbe, 0x7f, 0x7b, 0xc6,
+ 0x33, 0xa6, 0x33, 0x88, 0xcc, 0x68, 0x5c, 0x66, 0x87, 0x28, 0x8a, 0x59, 0x70, 0x63, 0x07, 0x9b,
+ 0x55, 0x4b, 0xd0, 0xf4, 0x65, 0x18, 0x1a, 0x9b, 0x15, 0x1e, 0x6c, 0xbe, 0xf0, 0x2f, 0x9c, 0x05,
+ 0xcc, 0x1f, 0x01, 0xc5, 0xf3, 0x8d, 0x1f, 0x39, 0xad, 0x1a, 0xd0, 0x94, 0x0c, 0x85, 0x31, 0x06,
+ 0x22, 0x9e, 0x20, 0x5c, 0x1d, 0x8a, 0x83, 0x28, 0xf0, 0xe6, 0x73, 0x37, 0x70, 0x67, 0x36, 0x40,
+ 0x7f, 0xee, 0x5f, 0x84, 0xad, 0xfa, 0x07, 0x45, 0xd8, 0xd1, 0x87, 0xb7, 0x77, 0x64, 0xc5, 0xa4,
+ 0x56, 0x70, 0xf3, 0xa5, 0x7f, 0x61, 0x28, 0x51, 0x06, 0x80, 0xac, 0x78, 0x11, 0x97, 0xde, 0xc2,
+ 0x0d, 0x5b, 0x0d, 0x98, 0x03, 0x2e, 0x82, 0x06, 0xea, 0x03, 0x71, 0x38, 0xf5, 0x67, 0x40, 0x77,
+ 0xed, 0xb9, 0xbf, 0xb0, 0xaf, 0xfc, 0x30, 0xa2, 0x3b, 0x6c, 0xd2, 0x9d, 0xa8, 0x29, 0xea, 0x91,
+ 0xc4, 0xa8, 0x3f, 0x12, 0xfb, 0x53, 0x7f, 0x75, 0xe9, 0xcd, 0x6d, 0x44, 0x84, 0xa8, 0x5b, 0xfb,
+ 0x44, 0xdc, 0x64, 0xb0, 0x21, 0xa1, 0xc7, 0xff, 0x51, 0x16, 0x8d, 0x9c, 0x9c, 0x72, 0xba, 0x55,
+ 0x78, 0x0b, 0xdd, 0xd2, 0x45, 0x15, 0x25, 0x6c, 0x47, 0x37, 0x6b, 0x57, 0x2a, 0xe5, 0xfd, 0x6f,
+ 0xb9, 0x13, 0x1a, 0x59, 0x40, 0x6f, 0x54, 0x2e, 0xe5, 0x97, 0x6a, 0x89, 0x7d, 0xfc, 0x66, 0x69,
+ 0xda, 0x24, 0xce, 0x22, 0x89, 0xf3, 0x93, 0x37, 0x99, 0x2c, 0x91, 0x6c, 0xe3, 0x32, 0x33, 0x0a,
+ 0x8f, 0xff, 0xb6, 0x20, 0xea, 0x59, 0xbc, 0x7a, 0x57, 0x94, 0x97, 0x4e, 0x18, 0xc9, 0x33, 0x82,
+ 0x21, 0xf0, 0x48, 0x6d, 0x89, 0xbd, 0x8b, 0x8d, 0xb7, 0x98, 0x49, 0xc3, 0xaa, 0x1a, 0xf1, 0x50,
+ 0xfd, 0xae, 0xa8, 0xd0, 0xa7, 0xed, 0xcd, 0xc8, 0x78, 0x8a, 0x12, 0xd5, 0x9b, 0xa9, 0x5f, 0x64,
+ 0x8f, 0x5e, 0xa2, 0xa3, 0xbf, 0x9b, 0xee, 0xf6, 0x14, 0xa9, 0xd2, 0x0d, 0xe7, 0xcf, 0xdb, 0xfe,
+ 0xf7, 0xa2, 0xa8, 0xc4, 0x60, 0xf5, 0x8e, 0x38, 0x98, 0x0c, 0x1f, 0x0f, 0x47, 0x5f, 0x0d, 0xed,
+ 0x33, 0xad, 0xd7, 0xb7, 0xad, 0x67, 0x63, 0x5d, 0xf9, 0x0e, 0x6c, 0xea, 0x08, 0x87, 0x7a, 0xd7,
+ 0x1e, 0x1b, 0xba, 0x39, 0x39, 0x1d, 0xf4, 0x2c, 0xfb, 0x74, 0x64, 0x29, 0x05, 0xf5, 0x3d, 0x71,
+ 0xfc, 0x32, 0x8c, 0xdd, 0x1b, 0x9e, 0x19, 0x9a, 0x72, 0xa0, 0xee, 0x8b, 0x9a, 0xc4, 0x7f, 0x39,
+ 0x3a, 0x35, 0x95, 0x1d, 0x9c, 0xca, 0xd0, 0x2d, 0xe3, 0x99, 0xfd, 0x64, 0x32, 0xb2, 0x34, 0x5b,
+ 0xff, 0xba, 0xa3, 0xeb, 0x5d, 0xbd, 0xab, 0x14, 0xd5, 0xba, 0xa8, 0x0c, 0x81, 0xb3, 0x7f, 0x6e,
+ 0x0d, 0x94, 0x5d, 0x55, 0x11, 0xf5, 0x41, 0xcf, 0x34, 0x7b, 0xc3, 0x73, 0x86, 0x94, 0xd4, 0xa6,
+ 0x10, 0xc3, 0x91, 0x6d, 0xf6, 0xce, 0x87, 0x9d, 0xbe, 0xa6, 0x94, 0xc1, 0x39, 0xdc, 0x95, 0x53,
+ 0x4b, 0x98, 0x6d, 0xe8, 0x4f, 0x26, 0xba, 0x69, 0x29, 0x7b, 0xea, 0x81, 0x68, 0x0c, 0xb4, 0xe1,
+ 0x44, 0xeb, 0xdb, 0x1d, 0x6d, 0xd8, 0xd1, 0xfb, 0x4a, 0x05, 0x27, 0xec, 0x8c, 0x06, 0xb8, 0xbf,
+ 0x33, 0xad, 0x6f, 0xea, 0x4a, 0x55, 0x3d, 0x14, 0xfb, 0xa3, 0xb1, 0x3e, 0xb4, 0xbb, 0x3a, 0xfc,
+ 0xed, 0xea, 0xc3, 0xce, 0x33, 0x45, 0xa0, 0x04, 0x7a, 0xc3, 0xa7, 0x5a, 0xbf, 0xd7, 0x05, 0x78,
+ 0xbf, 0x07, 0xf4, 0xba, 0xa1, 0xd4, 0xd4, 0xf7, 0xc5, 0x3d, 0xb9, 0x98, 0xa1, 0x0f, 0x46, 0x96,
+ 0x0e, 0xff, 0xce, 0xd2, 0x23, 0x2b, 0xf5, 0xcc, 0x6e, 0xac, 0x91, 0x6d, 0x19, 0xbd, 0xf3, 0x73,
+ 0xdd, 0xe0, 0x33, 0xab, 0x88, 0x9b, 0x0c, 0xcd, 0xc9, 0x78, 0x3c, 0x32, 0x2c, 0x20, 0xe8, 0x3c,
+ 0xb1, 0xcf, 0x74, 0xcd, 0x9a, 0x18, 0xba, 0x72, 0x88, 0x9b, 0x90, 0x7c, 0x9d, 0x47, 0x7a, 0xe7,
+ 0xf1, 0x68, 0x62, 0x29, 0x0d, 0xdc, 0x7e, 0x0c, 0xa4, 0x2d, 0x2b, 0x4d, 0xdc, 0x7e, 0x2c, 0x68,
+ 0xcd, 0xea, 0x3c, 0x52, 0xf6, 0x33, 0x97, 0x22, 0xcf, 0x2d, 0x31, 0xca, 0xf1, 0x33, 0xb1, 0xbf,
+ 0x65, 0xe8, 0xff, 0x07, 0x75, 0x03, 0x47, 0x10, 0xb9, 0x61, 0xc4, 0xda, 0x0f, 0x8e, 0x80, 0x06,
+ 0xed, 0x7f, 0x2d, 0x8a, 0x32, 0xc7, 0x02, 0x70, 0x8e, 0xcd, 0x58, 0x57, 0xb4, 0x8e, 0xd5, 0x1b,
+ 0x0d, 0x41, 0x51, 0xe0, 0x0e, 0xe1, 0x74, 0xa6, 0xa5, 0x19, 0xa8, 0x1c, 0x35, 0x0c, 0x31, 0x30,
+ 0x1a, 0x8d, 0xe1, 0xe2, 0xe1, 0xa0, 0xb4, 0x3f, 0x79, 0x24, 0x8b, 0xee, 0xfc, 0x48, 0x28, 0x39,
+ 0x20, 0x5c, 0x37, 0xdf, 0x3d, 0x43, 0xf9, 0x7c, 0x70, 0xf7, 0xdf, 0x15, 0x77, 0x18, 0x62, 0xe8,
+ 0x5a, 0xf7, 0x19, 0x8a, 0x58, 0x0a, 0xa6, 0x8c, 0x1a, 0xc6, 0x28, 0x5e, 0x75, 0x0f, 0xf5, 0x24,
+ 0x06, 0xc0, 0xc2, 0x95, 0x74, 0x61, 0xeb, 0x91, 0x31, 0xb2, 0x2c, 0x9c, 0xb0, 0x8a, 0xd7, 0x2c,
+ 0x81, 0x86, 0xae, 0xdb, 0x9d, 0xfe, 0xc8, 0x04, 0xb0, 0x50, 0xef, 0x89, 0x77, 0x9e, 0xea, 0x46,
+ 0xef, 0xac, 0x07, 0x97, 0xd7, 0x99, 0xc0, 0x04, 0x03, 0x20, 0x78, 0x06, 0x0a, 0x6d, 0x82, 0x0e,
+ 0xc0, 0x81, 0x13, 0xa4, 0x6e, 0x18, 0x23, 0x03, 0xae, 0x1d, 0x6e, 0x2a, 0x81, 0xe1, 0x6e, 0xe1,
+ 0xf2, 0xe0, 0x5e, 0x12, 0x10, 0x2a, 0x80, 0x3d, 0x19, 0x77, 0x35, 0x4b, 0x87, 0x3b, 0xcc, 0x12,
+ 0x8f, 0x35, 0xd3, 0x84, 0x4b, 0xcc, 0xce, 0x49, 0x76, 0xa1, 0x28, 0x39, 0x32, 0xf3, 0x71, 0x6f,
+ 0x0c, 0x66, 0x94, 0x25, 0xe3, 0x73, 0xaa, 0x28, 0xbb, 0x04, 0x66, 0xf5, 0x06, 0x3a, 0xaa, 0xce,
+ 0x61, 0x1e, 0xca, 0x6a, 0xa8, 0x1c, 0xe5, 0xf8, 0xc1, 0xc8, 0x60, 0x99, 0x3b, 0xed, 0xbf, 0x14,
+ 0x95, 0xd8, 0x8b, 0x22, 0x57, 0x7c, 0x97, 0x31, 0x1d, 0xdc, 0x26, 0x6c, 0xc4, 0xd0, 0x9f, 0xf6,
+ 0xf4, 0xaf, 0x80, 0x8b, 0x8c, 0xb0, 0x80, 0x17, 0x8c, 0xd6, 0x66, 0xa3, 0x09, 0xee, 0xa0, 0xec,
+ 0x49, 0x7e, 0xb0, 0x25, 0x6b, 0x62, 0xc2, 0x7d, 0x82, 0x3b, 0x88, 0x75, 0x5f, 0xff, 0x7a, 0x0c,
+ 0x33, 0x0d, 0xf4, 0xa1, 0x85, 0x22, 0x44, 0x49, 0xc0, 0xcd, 0x82, 0x46, 0xc4, 0x83, 0x52, 0xfb,
+ 0x57, 0x05, 0x51, 0x36, 0xe3, 0x40, 0x9b, 0xe8, 0x92, 0x9c, 0xeb, 0x3b, 0x6a, 0x55, 0x94, 0x62,
+ 0x45, 0xaa, 0x88, 0xdd, 0x54, 0x8b, 0xb6, 0x55, 0xa0, 0x88, 0x37, 0x9e, 0xd3, 0x9f, 0x86, 0xa8,
+ 0xa6, 0x4a, 0x56, 0x52, 0x85, 0x28, 0x4b, 0x45, 0x2a, 0x23, 0x2a, 0x55, 0x83, 0xbd, 0xe4, 0x00,
+ 0x52, 0x01, 0x2a, 0xed, 0x7f, 0x2c, 0x88, 0x5a, 0x07, 0xc2, 0x19, 0x48, 0x06, 0xc3, 0x93, 0xfa,
+ 0xae, 0x10, 0xa1, 0xbf, 0x09, 0xa6, 0xae, 0xbd, 0x09, 0x16, 0xd2, 0x76, 0xaa, 0x0c, 0x99, 0x04,
+ 0x0b, 0x34, 0x92, 0x99, 0x17, 0x44, 0x37, 0x64, 0x3c, 0x15, 0x83, 0x07, 0x68, 0x54, 0xd7, 0xcc,
+ 0x2f, 0xb3, 0x9c, 0x78, 0x88, 0x3e, 0x1c, 0xf2, 0x36, 0xfb, 0xca, 0x09, 0xaf, 0x64, 0xa6, 0xb3,
+ 0x07, 0xe3, 0x47, 0x30, 0x54, 0x3f, 0x14, 0xf5, 0xf0, 0x7a, 0x95, 0x86, 0xcb, 0x12, 0x05, 0xfc,
+ 0x1a, 0xc0, 0xe2, 0x58, 0x89, 0x46, 0x7c, 0x11, 0x38, 0xab, 0xe9, 0x15, 0xa5, 0x39, 0x60, 0xc4,
+ 0x3c, 0x6a, 0xff, 0x6a, 0x47, 0xd4, 0x4d, 0x37, 0xb8, 0xf6, 0xa6, 0x2e, 0x27, 0x74, 0x5d, 0xb1,
+ 0x4b, 0xa1, 0x80, 0xc3, 0xe7, 0x8f, 0xd2, 0x50, 0x90, 0xa5, 0xca, 0x0d, 0xd0, 0xfb, 0x7f, 0xb1,
+ 0x27, 0xef, 0xc0, 0x20, 0x6e, 0xf5, 0x73, 0x51, 0xc7, 0xc8, 0x6e, 0xc7, 0x67, 0xd9, 0xa1, 0x30,
+ 0x78, 0x27, 0x13, 0x06, 0x53, 0x41, 0x19, 0xb5, 0x69, 0x46, 0x6a, 0xef, 0x8b, 0x1a, 0x64, 0x50,
+ 0xd3, 0x6f, 0x20, 0x84, 0x3a, 0xd3, 0x38, 0xd5, 0x13, 0x04, 0xb2, 0x10, 0xd2, 0xfe, 0x73, 0xa1,
+ 0x6c, 0xaf, 0x8e, 0xba, 0x21, 0xd7, 0x7f, 0xd5, 0xe5, 0xc3, 0x45, 0x4a, 0x5b, 0x2a, 0xa2, 0x22,
+ 0x74, 0x26, 0x86, 0x81, 0xea, 0x05, 0x1a, 0x6b, 0xa2, 0xfb, 0xd9, 0x45, 0xae, 0x8e, 0xa1, 0x99,
+ 0x8f, 0x40, 0xb9, 0x7e, 0x53, 0x17, 0x22, 0x0d, 0x7c, 0xea, 0x4f, 0x73, 0x12, 0xf9, 0xfe, 0x4b,
+ 0x83, 0x63, 0xfa, 0x49, 0x21, 0x92, 0x85, 0x70, 0x4f, 0x54, 0x31, 0xdd, 0xe1, 0x9c, 0x95, 0x5d,
+ 0x64, 0x05, 0x01, 0x94, 0xb5, 0x82, 0x76, 0x70, 0x48, 0xce, 0x64, 0xb4, 0x55, 0x82, 0x10, 0x1a,
+ 0xae, 0x54, 0xa2, 0x37, 0xcb, 0x0b, 0xf0, 0xb0, 0xbb, 0x7c, 0xa5, 0x4c, 0x40, 0x20, 0xd8, 0x57,
+ 0x8b, 0x49, 0xc2, 0xe9, 0x95, 0x3b, 0xdb, 0x2c, 0xbc, 0xd5, 0xdc, 0x8e, 0x3c, 0xc8, 0xfc, 0x97,
+ 0x21, 0x69, 0x40, 0xd1, 0xb8, 0x43, 0x78, 0x33, 0x41, 0x5b, 0x80, 0x1d, 0x84, 0xb8, 0x2f, 0x70,
+ 0xe0, 0x6b, 0x5e, 0x99, 0xd5, 0xa1, 0x82, 0x00, 0x5a, 0x38, 0x46, 0x46, 0xee, 0x8b, 0xa8, 0x75,
+ 0x98, 0x22, 0x2d, 0x18, 0xf3, 0xe5, 0x20, 0x27, 0x6f, 0x6a, 0x8f, 0x36, 0x25, 0x88, 0x97, 0xf7,
+ 0xa4, 0x89, 0x72, 0xe0, 0x86, 0x9b, 0x45, 0x44, 0x79, 0x6f, 0xf3, 0xe1, 0x07, 0xaf, 0x96, 0x96,
+ 0x41, 0x74, 0xa9, 0xe2, 0x48, 0x46, 0xf5, 0x63, 0x71, 0x00, 0x4b, 0x41, 0xe9, 0xc2, 0x63, 0x1b,
+ 0x95, 0x03, 0xd2, 0x5c, 0x0c, 0x24, 0xfb, 0x84, 0x60, 0x46, 0x54, 0x20, 0xf5, 0xa1, 0x10, 0x69,
+ 0x75, 0x22, 0x93, 0xe9, 0xc3, 0x74, 0xc9, 0x73, 0xc0, 0xa1, 0x97, 0x08, 0x8d, 0xea, 0x3c, 0xfe,
+ 0x54, 0xc7, 0x92, 0xc7, 0x0d, 0x02, 0x3f, 0x68, 0x1d, 0xd0, 0x36, 0xdb, 0x2f, 0xdd, 0x26, 0xb2,
+ 0xeb, 0x48, 0x45, 0x1a, 0xde, 0x38, 0x1f, 0x0d, 0x34, 0x76, 0xde, 0xf6, 0xe8, 0x31, 0xcf, 0x48,
+ 0x58, 0xc8, 0x70, 0x8f, 0x68, 0xc6, 0x69, 0x00, 0xc6, 0x08, 0xdb, 0x5e, 0xfb, 0x50, 0x52, 0x40,
+ 0xa6, 0xa5, 0x92, 0xf4, 0x0e, 0x10, 0xd7, 0x41, 0x94, 0x41, 0x18, 0xc8, 0xb9, 0xc0, 0xc8, 0xa1,
+ 0x92, 0xfa, 0xb9, 0x3b, 0x8d, 0x28, 0x37, 0x07, 0x4b, 0x96, 0x43, 0xc8, 0xc6, 0x1a, 0x57, 0xae,
+ 0x33, 0x4b, 0x4d, 0xb9, 0x4e, 0x67, 0x7a, 0x85, 0xe1, 0xd4, 0x91, 0x36, 0x31, 0xf1, 0xdf, 0x13,
+ 0x95, 0x84, 0xad, 0xf1, 0x3a, 0x7b, 0x4b, 0xc8, 0xf0, 0xb2, 0xa9, 0x28, 0x22, 0x0f, 0xd5, 0xcc,
+ 0x54, 0x49, 0xe8, 0xa0, 0x8e, 0x65, 0xd2, 0x88, 0x15, 0x54, 0x8b, 0x71, 0xf1, 0x58, 0xfd, 0x03,
+ 0x51, 0x99, 0x3a, 0x91, 0x3b, 0xf7, 0x83, 0x9b, 0xd6, 0xd1, 0x6b, 0x92, 0xc6, 0x8e, 0x24, 0x32,
+ 0x12, 0x72, 0x52, 0xfc, 0x8b, 0xcd, 0xf4, 0x1b, 0x97, 0x64, 0xb4, 0x4f, 0x8a, 0x5a, 0x95, 0x10,
+ 0x90, 0x0d, 0x94, 0x30, 0x31, 0x1a, 0xaa, 0xb2, 0xc0, 0x76, 0xe6, 0x30, 0x4f, 0x4b, 0xa1, 0xf5,
+ 0x15, 0x89, 0x81, 0xb2, 0x2c, 0xd0, 0x10, 0x9e, 0xcf, 0x5e, 0xef, 0xbc, 0x55, 0xf6, 0x8a, 0x1b,
+ 0x81, 0x82, 0x32, 0xbe, 0x88, 0xbb, 0x6c, 0x81, 0xd3, 0xe7, 0x63, 0x79, 0x15, 0xdf, 0x17, 0x0d,
+ 0x40, 0x87, 0x9b, 0x8b, 0x98, 0xe2, 0x1d, 0xa2, 0xa8, 0x4f, 0x9f, 0x9b, 0x09, 0xac, 0xfd, 0x99,
+ 0x68, 0xe6, 0x4d, 0x1f, 0xa3, 0x84, 0x09, 0xe9, 0x58, 0x77, 0xd2, 0xa7, 0x38, 0x08, 0x6e, 0xe5,
+ 0x74, 0xd2, 0xeb, 0x77, 0x63, 0x67, 0xa4, 0x83, 0x33, 0x6a, 0x2f, 0x44, 0x2d, 0x63, 0x02, 0x79,
+ 0xef, 0x05, 0x03, 0x73, 0xd2, 0xe9, 0xe8, 0x10, 0xe2, 0x29, 0x0b, 0xc2, 0xf0, 0x83, 0xe9, 0xde,
+ 0x0e, 0x86, 0x54, 0x4a, 0x8d, 0xed, 0x18, 0x54, 0x44, 0xfc, 0x57, 0x9a, 0x31, 0xe4, 0xd0, 0x85,
+ 0x9c, 0x10, 0xf2, 0xc7, 0x14, 0xb8, 0x60, 0x5d, 0xce, 0x09, 0xca, 0xb0, 0x5a, 0x23, 0xa7, 0xc9,
+ 0x38, 0x51, 0x4e, 0x97, 0x61, 0xd5, 0xbb, 0x42, 0xcd, 0x80, 0xe2, 0xdd, 0x14, 0xb6, 0xe0, 0xe4,
+ 0x20, 0x61, 0x7a, 0x4a, 0xc5, 0x33, 0xf0, 0xfe, 0xe8, 0x1c, 0x36, 0x65, 0x69, 0x7d, 0xa5, 0xd8,
+ 0xbe, 0x82, 0x34, 0x2e, 0xbe, 0x6a, 0x48, 0x0d, 0x3a, 0xe0, 0x72, 0xcf, 0x47, 0x10, 0xb7, 0xd3,
+ 0x13, 0x42, 0xe0, 0x4c, 0xa0, 0x9d, 0x27, 0xb0, 0xc8, 0xf7, 0x44, 0x2b, 0x03, 0xc8, 0x44, 0x7f,
+ 0x98, 0x70, 0x07, 0x8a, 0xdd, 0xc3, 0x04, 0x7b, 0x0e, 0x29, 0x78, 0xa7, 0x8f, 0x49, 0x01, 0xac,
+ 0xf4, 0xd7, 0x85, 0x7c, 0xf5, 0x91, 0x54, 0x1d, 0x99, 0xb5, 0x64, 0x8a, 0xcc, 0x60, 0x2e, 0x2c,
+ 0x0a, 0x79, 0x5a, 0x88, 0xf6, 0x63, 0x08, 0xf0, 0xb0, 0x10, 0x24, 0x12, 0x29, 0xd8, 0xc2, 0x62,
+ 0xa0, 0x98, 0x27, 0x95, 0xc9, 0x3d, 0x88, 0x3a, 0x37, 0x2d, 0xa7, 0xce, 0xa5, 0xf6, 0x8d, 0x50,
+ 0x7a, 0xd8, 0x73, 0x21, 0x5d, 0x30, 0x29, 0xce, 0xe7, 0x43, 0x40, 0x61, 0x2b, 0x04, 0x7c, 0x24,
+ 0x9a, 0xce, 0x7a, 0xed, 0xae, 0xe6, 0xde, 0xca, 0xcd, 0x06, 0x89, 0x46, 0x02, 0x8d, 0x43, 0x41,
+ 0xc8, 0x01, 0x2f, 0x1b, 0x2b, 0x6a, 0x12, 0x86, 0x24, 0xed, 0xdf, 0x96, 0x84, 0x62, 0x41, 0x92,
+ 0xcd, 0x0a, 0x15, 0x72, 0xdc, 0x02, 0x67, 0xcd, 0x99, 0x7a, 0x76, 0x75, 0xc1, 0xa0, 0x5c, 0x8c,
+ 0x89, 0x29, 0x78, 0xf5, 0x9a, 0x84, 0xbd, 0x34, 0x0c, 0x15, 0x6f, 0x87, 0x21, 0x38, 0x22, 0xe6,
+ 0xf7, 0x6c, 0x82, 0x9c, 0x98, 0x54, 0x10, 0x40, 0xd7, 0xf2, 0x81, 0xa8, 0x79, 0x2b, 0x58, 0x2f,
+ 0xd8, 0xac, 0x23, 0x77, 0x46, 0x61, 0xa9, 0x62, 0x64, 0x41, 0xd9, 0x84, 0xa7, 0x4c, 0x93, 0x27,
+ 0x09, 0xcf, 0x7d, 0xa1, 0x60, 0x5f, 0xc6, 0x0e, 0xbd, 0x15, 0x1c, 0x1d, 0x7c, 0x27, 0x24, 0x2f,
+ 0x7b, 0xe4, 0x2e, 0x9a, 0x08, 0x37, 0x11, 0xac, 0x23, 0x54, 0xfd, 0x59, 0x5c, 0x6f, 0x54, 0xc8,
+ 0xed, 0x7d, 0x94, 0x7a, 0x80, 0x6d, 0xa1, 0x64, 0x00, 0xb2, 0x2c, 0x39, 0xfe, 0x97, 0x82, 0x10,
+ 0x29, 0x34, 0x39, 0x4e, 0xf6, 0xc6, 0x10, 0x40, 0xe2, 0xd0, 0xa8, 0xdb, 0xb5, 0x71, 0x16, 0x94,
+ 0xd0, 0x34, 0x1f, 0xfe, 0xf8, 0x8d, 0x56, 0x22, 0xbf, 0x23, 0x19, 0x55, 0x5d, 0x54, 0xdc, 0x17,
+ 0x6b, 0xf0, 0x1d, 0xee, 0x8c, 0xca, 0xa3, 0xb7, 0x9a, 0x24, 0x61, 0xc5, 0xf6, 0xd2, 0xc5, 0x66,
+ 0x1e, 0x82, 0xc0, 0x31, 0x30, 0xd2, 0x77, 0xfb, 0xbf, 0x0b, 0xa2, 0x99, 0x67, 0xc8, 0xbb, 0x16,
+ 0x74, 0x40, 0x58, 0x13, 0x90, 0x2b, 0xa2, 0x22, 0x62, 0x07, 0xbf, 0xa8, 0xf6, 0x28, 0xa6, 0x09,
+ 0x10, 0xa7, 0xda, 0xb2, 0x2a, 0x28, 0xe1, 0x40, 0x56, 0xd3, 0x90, 0x03, 0x03, 0x79, 0x5f, 0xd7,
+ 0x1e, 0x43, 0xfa, 0x8b, 0x93, 0xf5, 0x47, 0x5f, 0x41, 0x91, 0x04, 0x5f, 0x96, 0xfe, 0xb5, 0x05,
+ 0x95, 0x11, 0x4c, 0xa1, 0x4d, 0xba, 0xbd, 0x11, 0x54, 0x43, 0xf0, 0xd9, 0x1b, 0x68, 0xe7, 0x3a,
+ 0xd4, 0x3e, 0x90, 0x62, 0xd3, 0xa7, 0x4d, 0x54, 0x75, 0x1c, 0x1b, 0xfa, 0xa9, 0x66, 0x42, 0x89,
+ 0x3c, 0xd4, 0xa1, 0xe8, 0x01, 0x63, 0x1a, 0x42, 0x21, 0x6f, 0x66, 0x80, 0x4d, 0xac, 0xda, 0x08,
+ 0xc8, 0xa5, 0x78, 0x06, 0xb5, 0xdf, 0xfe, 0xcf, 0xaa, 0x38, 0x1a, 0x38, 0xd3, 0x2b, 0xb0, 0x0f,
+ 0xf0, 0xd5, 0xd7, 0x1e, 0xe8, 0x2a, 0x2b, 0xbc, 0x23, 0x0e, 0xe6, 0xa0, 0x29, 0x17, 0x90, 0x2a,
+ 0xba, 0xab, 0x19, 0x25, 0x05, 0x71, 0xd6, 0xf6, 0x93, 0x54, 0xc6, 0x2f, 0x63, 0x3d, 0x39, 0xef,
+ 0xe8, 0xa7, 0xcc, 0x26, 0xd1, 0x98, 0x2b, 0xb8, 0xc6, 0x3e, 0xcc, 0x27, 0xe1, 0x04, 0x50, 0xaf,
+ 0xc5, 0xbd, 0xec, 0x12, 0x33, 0x77, 0xe1, 0x62, 0x41, 0x1b, 0xb7, 0xf3, 0xb8, 0x75, 0xf4, 0xd3,
+ 0x37, 0x5e, 0xac, 0x2b, 0xf9, 0x65, 0x9b, 0xaf, 0x95, 0x2e, 0x97, 0xc7, 0xa8, 0x6b, 0x71, 0x77,
+ 0xc9, 0x53, 0x61, 0xc0, 0xa2, 0xb9, 0xe4, 0xf9, 0x8a, 0xb4, 0xe4, 0x17, 0xdf, 0xb2, 0xe4, 0x16,
+ 0x30, 0x77, 0xc8, 0xa3, 0x65, 0x1e, 0xc9, 0x27, 0x7d, 0x20, 0x0e, 0xd7, 0x9b, 0x0b, 0x08, 0x7f,
+ 0x18, 0x02, 0xc3, 0x69, 0xe0, 0xad, 0xa9, 0xcb, 0xcb, 0x06, 0xae, 0x32, 0xca, 0xcc, 0x60, 0xd4,
+ 0x13, 0x71, 0xb8, 0x80, 0xcd, 0x82, 0xa5, 0xbe, 0x58, 0x7b, 0x81, 0x43, 0x62, 0x89, 0xe2, 0x4c,
+ 0xf4, 0x80, 0x50, 0x7a, 0x82, 0xb1, 0x42, 0xf5, 0x4f, 0x45, 0x23, 0x3e, 0x12, 0x9f, 0xa4, 0x4c,
+ 0x27, 0xf9, 0xfc, 0xed, 0x4e, 0x42, 0x69, 0x00, 0x9f, 0xa3, 0xbe, 0xcc, 0x9c, 0x0a, 0xbb, 0x88,
+ 0xe1, 0x2f, 0x9c, 0x60, 0x89, 0x59, 0x31, 0xba, 0x4a, 0x99, 0xae, 0x56, 0x8d, 0x66, 0x0c, 0x36,
+ 0x09, 0xda, 0xfe, 0xed, 0x8e, 0xb8, 0xfb, 0xf2, 0xeb, 0xc7, 0x48, 0x05, 0x18, 0x3b, 0x17, 0x9c,
+ 0x3b, 0x50, 0x43, 0x62, 0x6d, 0x58, 0xa0, 0x52, 0x11, 0x83, 0xde, 0xe8, 0x9c, 0x42, 0x22, 0x68,
+ 0xac, 0x39, 0x39, 0x35, 0x3b, 0x46, 0x6f, 0x8c, 0x1d, 0x0d, 0x28, 0xc9, 0x3b, 0x7a, 0xef, 0x29,
+ 0xb5, 0x2a, 0x20, 0xc0, 0x0d, 0x74, 0x4b, 0x83, 0xf2, 0x43, 0x93, 0x15, 0xbd, 0x3d, 0x36, 0x46,
+ 0x63, 0xaa, 0x1b, 0x77, 0x91, 0x71, 0x1b, 0x4b, 0x75, 0x2a, 0xd8, 0xde, 0xbb, 0xe2, 0xbb, 0xdb,
+ 0xa8, 0x38, 0xb9, 0xe8, 0x72, 0x1b, 0x6b, 0x1b, 0x2d, 0xab, 0xd5, 0xbd, 0x97, 0xb2, 0x62, 0x5e,
+ 0x41, 0x1d, 0xb3, 0x0a, 0x06, 0x3b, 0x30, 0x64, 0x53, 0x4f, 0xb7, 0x59, 0xc5, 0x03, 0xc1, 0xa8,
+ 0xaf, 0x81, 0xe9, 0x77, 0xb9, 0x9d, 0xd5, 0xd5, 0xfb, 0x3a, 0x1d, 0x26, 0xd9, 0x6e, 0x0d, 0x53,
+ 0x82, 0x04, 0x9c, 0x6e, 0xa6, 0x9e, 0x87, 0x27, 0x2b, 0x35, 0x50, 0x66, 0x04, 0x87, 0x41, 0xb3,
+ 0xfd, 0xb9, 0x68, 0xbd, 0x4a, 0xfb, 0x51, 0xda, 0xb4, 0xfc, 0x40, 0xa3, 0x8e, 0x10, 0x65, 0x3f,
+ 0x5d, 0x43, 0x03, 0xa3, 0x07, 0xf1, 0xb6, 0xff, 0x42, 0xdc, 0x7b, 0x8d, 0x12, 0xa3, 0x53, 0x19,
+ 0x8c, 0x33, 0x37, 0x55, 0x17, 0x95, 0xe4, 0x64, 0x05, 0xc4, 0xca, 0xbb, 0x39, 0xa5, 0xbb, 0x82,
+ 0x6a, 0x90, 0x4e, 0x8f, 0x97, 0x03, 0xd9, 0x10, 0x4b, 0x02, 0xf2, 0x8e, 0x9e, 0x41, 0x37, 0x02,
+ 0x3b, 0x99, 0x0c, 0xd3, 0xbb, 0x2d, 0xb5, 0xa7, 0x20, 0xcc, 0x57, 0xe9, 0x1d, 0x4e, 0x00, 0xde,
+ 0x0d, 0x8a, 0xc9, 0x9c, 0x9e, 0x8c, 0x47, 0xfd, 0x3e, 0xfa, 0x4c, 0xd2, 0x13, 0xad, 0xdf, 0x1f,
+ 0x75, 0x48, 0x6d, 0x28, 0x9f, 0x31, 0x21, 0x69, 0x1b, 0x60, 0x7b, 0xb2, 0x33, 0x1a, 0x9e, 0xf5,
+ 0xce, 0x27, 0xb8, 0x6a, 0xb1, 0xfd, 0x57, 0x25, 0x51, 0xd7, 0x56, 0xce, 0xe2, 0xe6, 0x97, 0xee,
+ 0xff, 0x5f, 0x00, 0xdf, 0xee, 0xfc, 0x56, 0xd3, 0xce, 0x2f, 0xa6, 0x1f, 0x97, 0x97, 0x14, 0x4e,
+ 0x6c, 0xee, 0xdb, 0x73, 0x30, 0x69, 0xc4, 0xd0, 0x33, 0xea, 0xdf, 0x43, 0x42, 0xee, 0xad, 0xd6,
+ 0x1b, 0x08, 0xf0, 0x14, 0xe5, 0x9d, 0x60, 0xee, 0x92, 0x59, 0x23, 0xa9, 0x42, 0x18, 0x8c, 0x39,
+ 0x16, 0xc3, 0xa1, 0x22, 0xbb, 0xc3, 0xd4, 0x53, 0x7f, 0xb9, 0x06, 0xfe, 0x84, 0xa1, 0x4c, 0x0c,
+ 0x87, 0x84, 0xec, 0x30, 0x2e, 0xe6, 0xd1, 0x93, 0xa2, 0x91, 0x1f, 0x58, 0x7e, 0x90, 0xba, 0x80,
+ 0xac, 0x3c, 0xe2, 0xc1, 0xab, 0x0a, 0x47, 0x70, 0x40, 0xfe, 0x26, 0xba, 0xb5, 0xd3, 0x0a, 0x2d,
+ 0x7c, 0xc0, 0xa8, 0xec, 0x56, 0x3f, 0x13, 0x77, 0x25, 0xfd, 0xf6, 0x5e, 0xab, 0xc4, 0x72, 0xc4,
+ 0xd8, 0xad, 0xcd, 0x82, 0x5f, 0xf1, 0x56, 0xd7, 0xce, 0xc2, 0x9b, 0x25, 0xe4, 0x5c, 0x9c, 0x36,
+ 0x25, 0x58, 0x12, 0xb6, 0x7f, 0x53, 0x00, 0xbd, 0xc8, 0xee, 0xf8, 0x56, 0x97, 0x82, 0x1b, 0x81,
+ 0x05, 0x4c, 0xa6, 0x87, 0xa3, 0x38, 0x11, 0xb5, 0x87, 0x3a, 0x26, 0xff, 0x1a, 0xa4, 0xb8, 0x3b,
+ 0x68, 0x82, 0xa0, 0x3a, 0xf6, 0x19, 0xc0, 0x4d, 0xbb, 0x77, 0x3e, 0x1c, 0x91, 0xa6, 0x20, 0x78,
+ 0x80, 0x49, 0xa7, 0xde, 0xc5, 0x26, 0x78, 0x7f, 0x22, 0x5b, 0x18, 0x90, 0x6e, 0x9f, 0x8d, 0x26,
+ 0xc3, 0x6e, 0xb6, 0x2b, 0x5d, 0xa2, 0x5e, 0xef, 0x16, 0xd4, 0x86, 0x49, 0xc1, 0x7d, 0x40, 0xe0,
+ 0x8d, 0xfb, 0xd5, 0x96, 0x66, 0x9c, 0xeb, 0x96, 0xa9, 0xec, 0xb5, 0xff, 0xf9, 0x50, 0x1c, 0x98,
+ 0xd2, 0x43, 0x5a, 0x4e, 0xf8, 0x0d, 0xab, 0x62, 0x53, 0xec, 0x80, 0x02, 0xb1, 0x06, 0xc2, 0x17,
+ 0x24, 0x42, 0x7b, 0x81, 0xfb, 0x7c, 0x03, 0xd2, 0x24, 0xa5, 0xab, 0xe5, 0x1a, 0x45, 0xdb, 0xdc,
+ 0x27, 0xf8, 0x65, 0x30, 0xb9, 0x11, 0xf3, 0xa9, 0x7f, 0x2c, 0x4a, 0xd9, 0x08, 0xf6, 0xe1, 0xeb,
+ 0x26, 0x20, 0x43, 0x4b, 0x6f, 0x9c, 0x19, 0x41, 0x0c, 0xe5, 0x0b, 0x9f, 0xaa, 0x48, 0xf9, 0xf2,
+ 0x07, 0x23, 0xd0, 0x6b, 0x30, 0x1b, 0x04, 0xc7, 0x59, 0x25, 0x3f, 0xfe, 0x09, 0x00, 0xc5, 0x2d,
+ 0xa6, 0x81, 0x68, 0x22, 0xc1, 0xcc, 0x5b, 0xba, 0x2b, 0x04, 0x84, 0x14, 0x7a, 0x6a, 0x0f, 0x7f,
+ 0xf8, 0xba, 0x2d, 0x74, 0x13, 0x6a, 0xa3, 0x01, 0xdc, 0xe9, 0x90, 0x22, 0x0d, 0x85, 0x92, 0x78,
+ 0x49, 0x7c, 0x28, 0x24, 0x8d, 0x60, 0xb0, 0x5c, 0x36, 0x54, 0x3f, 0x15, 0x0a, 0x65, 0xbe, 0xa0,
+ 0x14, 0xb6, 0x7c, 0xd0, 0xe3, 0xe7, 0xc1, 0x2f, 0x4a, 0x97, 0xce, 0x22, 0x84, 0x74, 0x23, 0x46,
+ 0xcb, 0xc7, 0x21, 0x4c, 0x46, 0xdd, 0x17, 0x9e, 0xec, 0x81, 0x54, 0x29, 0x3d, 0xae, 0x20, 0x80,
+ 0x9a, 0x1f, 0xd8, 0x5f, 0xc4, 0x47, 0x4a, 0x7c, 0x6e, 0x0a, 0xe9, 0x21, 0x10, 0x0a, 0x69, 0x09,
+ 0x81, 0xf8, 0xfa, 0x21, 0xb6, 0xe0, 0x96, 0x6b, 0x70, 0xb1, 0x4c, 0x50, 0x23, 0x82, 0x5a, 0x02,
+ 0x63, 0x12, 0xe7, 0xc2, 0x59, 0xe1, 0xdb, 0x24, 0x91, 0xd4, 0x99, 0x24, 0x81, 0x01, 0xc9, 0xc7,
+ 0xe2, 0x00, 0xfc, 0xde, 0x62, 0x16, 0xb8, 0x10, 0xcd, 0x41, 0x18, 0x20, 0xed, 0xf8, 0x7d, 0x6f,
+ 0x3f, 0x46, 0xa0, 0x90, 0x7a, 0x33, 0xb4, 0xe3, 0x1a, 0x9b, 0x4c, 0x08, 0xf9, 0xd0, 0x25, 0xf5,
+ 0x13, 0x6a, 0x59, 0x63, 0xbe, 0x2d, 0x54, 0xf2, 0x30, 0x86, 0x7b, 0x69, 0x08, 0xc9, 0x08, 0xdf,
+ 0xe8, 0xb2, 0xa6, 0x58, 0x33, 0x6d, 0x42, 0x6e, 0x0f, 0xec, 0x18, 0x7b, 0x38, 0x9e, 0x84, 0x33,
+ 0xf5, 0x07, 0xa2, 0x49, 0xa8, 0xd0, 0xb9, 0x86, 0x1d, 0x23, 0x81, 0x42, 0x04, 0x75, 0x84, 0x9a,
+ 0x08, 0x44, 0x2a, 0x38, 0xd6, 0xcc, 0x9d, 0x6d, 0xd6, 0xe8, 0xd7, 0x02, 0x7f, 0x49, 0x3d, 0x1e,
+ 0x70, 0x8b, 0x12, 0x76, 0x06, 0x20, 0x94, 0x1d, 0x3e, 0xd1, 0xc9, 0xaa, 0x46, 0x65, 0xd9, 0x01,
+ 0x84, 0x6b, 0x9a, 0xe3, 0xbf, 0xdb, 0x11, 0x22, 0x73, 0xc3, 0x8a, 0x28, 0x4e, 0xd7, 0x1b, 0x50,
+ 0x7f, 0x3c, 0x36, 0x7e, 0x62, 0xf3, 0x76, 0xea, 0x83, 0xdf, 0xa1, 0x3a, 0xa0, 0x68, 0xf0, 0x00,
+ 0xe9, 0xe6, 0x40, 0xc7, 0xaf, 0x1e, 0xf8, 0x89, 0x76, 0xe3, 0xc7, 0x7e, 0x15, 0xbe, 0x30, 0x6d,
+ 0x5f, 0xfb, 0xfe, 0x42, 0xba, 0x4f, 0xfa, 0xc6, 0xb9, 0xae, 0xbc, 0xd9, 0xda, 0x93, 0x2e, 0x92,
+ 0x07, 0x78, 0x88, 0x38, 0x3d, 0xa2, 0xca, 0x8a, 0x55, 0xaa, 0x26, 0x61, 0x94, 0xdc, 0xc3, 0x64,
+ 0xbf, 0xe4, 0x27, 0x66, 0x9a, 0x0c, 0xbf, 0x51, 0xf9, 0x67, 0x2e, 0xd5, 0x8a, 0xc4, 0xc5, 0x9e,
+ 0x4c, 0x30, 0xc8, 0x92, 0x4d, 0x49, 0x49, 0xe0, 0xc7, 0x9e, 0xab, 0xc2, 0x80, 0x51, 0x88, 0x3d,
+ 0x8f, 0x17, 0xb9, 0xbe, 0x6d, 0x8d, 0x08, 0xea, 0x2f, 0x32, 0x1d, 0xda, 0xe3, 0xbf, 0xdf, 0x81,
+ 0x84, 0xdf, 0x99, 0xd3, 0x61, 0x64, 0x60, 0xa2, 0xf5, 0xe9, 0xf1, 0x36, 0xd3, 0xda, 0xda, 0x21,
+ 0x70, 0xd2, 0xda, 0x82, 0xb9, 0xb9, 0xd7, 0x14, 0xe3, 0x59, 0x4c, 0x75, 0x02, 0xc6, 0x4d, 0x17,
+ 0x64, 0xdf, 0x04, 0x6b, 0x3f, 0x74, 0xa5, 0xd0, 0xe2, 0x61, 0xe6, 0x15, 0x8a, 0x65, 0x17, 0xbf,
+ 0x42, 0x41, 0x85, 0x29, 0xe3, 0x9d, 0x6c, 0x67, 0x16, 0x33, 0x21, 0x70, 0xb5, 0x1d, 0x02, 0x59,
+ 0x8a, 0x49, 0x08, 0x3c, 0x16, 0xd4, 0xdb, 0x24, 0x4e, 0x96, 0x62, 0x32, 0x86, 0xa4, 0xad, 0x1a,
+ 0x2e, 0x40, 0xa5, 0x08, 0xc9, 0x72, 0x4c, 0x01, 0xea, 0x7b, 0x42, 0xa4, 0x4f, 0xd7, 0x52, 0x8e,
+ 0x19, 0xc8, 0xf1, 0x42, 0x54, 0x62, 0xe5, 0xc6, 0x55, 0xbc, 0xd0, 0x5f, 0x38, 0x58, 0xf2, 0xc9,
+ 0x8a, 0x32, 0x1e, 0xab, 0x3f, 0x14, 0xcd, 0xf8, 0x5b, 0x66, 0xa9, 0x1c, 0xc4, 0xb7, 0xa0, 0xb8,
+ 0x1b, 0x5c, 0x37, 0x5c, 0xa7, 0x4d, 0xf1, 0x14, 0x70, 0xfc, 0x67, 0xa2, 0xd6, 0xf1, 0xd6, 0xb3,
+ 0x31, 0xe4, 0x55, 0xce, 0x9c, 0xf2, 0x82, 0x35, 0x7f, 0x66, 0x33, 0x87, 0x9a, 0x84, 0x0d, 0xe5,
+ 0x3d, 0xa5, 0xbd, 0xf9, 0xdc, 0x3b, 0x03, 0xaa, 0xa8, 0x13, 0x5d, 0xc9, 0x45, 0xe8, 0xfb, 0xf8,
+ 0x9f, 0x0a, 0x90, 0xeb, 0xc2, 0x02, 0x3d, 0x8c, 0xde, 0x78, 0x15, 0x72, 0xaf, 0xf2, 0x41, 0x50,
+ 0xee, 0x71, 0x08, 0xd6, 0xb9, 0xf0, 0xc0, 0xae, 0x6d, 0xb9, 0xd2, 0x9b, 0xc4, 0x86, 0xcc, 0xbe,
+ 0x8d, 0x06, 0xb3, 0xc7, 0xc7, 0xe8, 0xe0, 0x4f, 0x38, 0xe8, 0x33, 0x7e, 0x47, 0x7f, 0xe3, 0x99,
+ 0x12, 0xc6, 0xe3, 0xff, 0xd9, 0x81, 0xa2, 0x18, 0x68, 0x40, 0xc3, 0xd6, 0x6e, 0x10, 0x79, 0x60,
+ 0xa6, 0x1d, 0x21, 0x28, 0x0d, 0x61, 0x37, 0x55, 0x78, 0x0b, 0x37, 0x55, 0x65, 0x3e, 0xbc, 0xd4,
+ 0x2e, 0x28, 0x00, 0x2c, 0x68, 0x13, 0x44, 0x1e, 0xf4, 0xa3, 0x6f, 0xdb, 0x1e, 0xc9, 0xcf, 0xa8,
+ 0x4e, 0x13, 0x51, 0x9e, 0x09, 0x91, 0x09, 0x43, 0xc5, 0xb7, 0x0a, 0x43, 0x19, 0x4e, 0xcc, 0x7d,
+ 0xdc, 0x17, 0xee, 0x74, 0xc3, 0x55, 0x17, 0xc0, 0xc1, 0x9f, 0xda, 0x21, 0xc5, 0x45, 0x28, 0xbe,
+ 0x12, 0x94, 0xc5, 0x18, 0x13, 0x1d, 0xe9, 0x1c, 0x5f, 0x53, 0x6c, 0x90, 0x89, 0xe7, 0x43, 0xad,
+ 0x2c, 0xeb, 0xb4, 0x3a, 0x41, 0xc7, 0x04, 0x34, 0xc1, 0xb6, 0xea, 0x9e, 0x9f, 0x99, 0x8e, 0x7f,
+ 0x21, 0x23, 0x3c, 0x3f, 0x99, 0x07, 0xcc, 0x00, 0xb2, 0xe1, 0xe5, 0xda, 0x8f, 0xb0, 0x4b, 0xbb,
+ 0x47, 0xed, 0x9d, 0x0c, 0xe4, 0xf8, 0x6f, 0x76, 0x44, 0x2d, 0x13, 0xfd, 0x71, 0xdd, 0xb5, 0x13,
+ 0xa0, 0x8a, 0xc8, 0x60, 0x22, 0x55, 0xa8, 0xce, 0x50, 0x8e, 0x24, 0x89, 0x63, 0x61, 0xcd, 0x64,
+ 0xc7, 0x82, 0xdd, 0x5a, 0xa8, 0xb2, 0x65, 0x30, 0xe3, 0x1f, 0x31, 0x54, 0x25, 0xc4, 0x22, 0xcf,
+ 0x95, 0xaf, 0x3b, 0xf9, 0xe8, 0x75, 0x37, 0x5b, 0x72, 0xe2, 0x6f, 0x82, 0xe0, 0x64, 0x81, 0x17,
+ 0xdd, 0xc8, 0xf3, 0x26, 0x63, 0xb2, 0x19, 0xae, 0x77, 0x23, 0x7f, 0xed, 0x4d, 0xe5, 0xbb, 0x48,
+ 0x8d, 0x61, 0x16, 0x82, 0xd4, 0x2f, 0x85, 0x58, 0x27, 0x5a, 0x44, 0x87, 0xad, 0x3d, 0xfc, 0xf8,
+ 0xdb, 0xf2, 0x9e, 0x54, 0xef, 0x8c, 0x0c, 0x77, 0xfb, 0x4f, 0x44, 0x89, 0xab, 0x87, 0x5c, 0x52,
+ 0xc8, 0xaf, 0x8f, 0x63, 0xae, 0x96, 0xe8, 0xc5, 0x94, 0x7f, 0x83, 0x40, 0x85, 0x03, 0x8c, 0xf0,
+ 0xe7, 0x11, 0xdd, 0x1e, 0xe5, 0x80, 0xf8, 0x1a, 0x89, 0x85, 0x9a, 0x8d, 0x5d, 0x1a, 0x6a, 0xd9,
+ 0xc4, 0xf5, 0x4b, 0xa9, 0xfd, 0xeb, 0x82, 0x28, 0x9f, 0x7a, 0x2b, 0x27, 0xb8, 0xc9, 0xf8, 0xe8,
+ 0x54, 0x94, 0x90, 0xf8, 0xf3, 0x8f, 0xc3, 0x92, 0xe7, 0x02, 0xd9, 0x77, 0x24, 0x68, 0xf2, 0x9e,
+ 0x70, 0x5f, 0x28, 0xf8, 0xc3, 0x30, 0x7b, 0xee, 0xa7, 0x84, 0xec, 0x14, 0x9a, 0x08, 0x3f, 0xf7,
+ 0x13, 0x4a, 0x98, 0x50, 0x7a, 0x8f, 0xec, 0x73, 0x15, 0x4c, 0x28, 0xa1, 0x1c, 0x55, 0xdb, 0xff,
+ 0x55, 0x12, 0x6a, 0x8f, 0xdd, 0x5a, 0x87, 0x0c, 0x9d, 0x73, 0xcb, 0xfb, 0x90, 0xc6, 0xd1, 0x66,
+ 0xa5, 0x29, 0x2a, 0x99, 0x06, 0x3e, 0xc1, 0x0d, 0x89, 0x07, 0x9b, 0xab, 0xa2, 0x00, 0xe9, 0x3a,
+ 0x65, 0xaf, 0x25, 0x63, 0x2c, 0xb7, 0xa7, 0x3e, 0x19, 0xc5, 0xd4, 0x46, 0xca, 0x88, 0xbf, 0xd2,
+ 0x71, 0x02, 0x88, 0xa2, 0xd7, 0xae, 0x3d, 0x73, 0x23, 0xc8, 0xb4, 0x62, 0xc3, 0xfb, 0x9d, 0xd7,
+ 0xce, 0xa5, 0x31, 0x4f, 0x97, 0x59, 0x8c, 0xa6, 0x93, 0x1b, 0x67, 0xe2, 0xd3, 0xee, 0xab, 0x7e,
+ 0x25, 0x51, 0x7a, 0xf5, 0x8f, 0x72, 0xca, 0xf9, 0xd2, 0x0c, 0x52, 0x02, 0x0a, 0x35, 0xb2, 0x65,
+ 0xc1, 0x03, 0xb5, 0x2d, 0x1a, 0xfc, 0x73, 0x35, 0xf0, 0x5c, 0xf4, 0x8b, 0xb5, 0x0a, 0xe7, 0x6b,
+ 0x04, 0xb4, 0x42, 0xfa, 0xb1, 0xda, 0x7b, 0xa2, 0x86, 0x8d, 0xa9, 0x98, 0xa2, 0xca, 0x76, 0x02,
+ 0x20, 0xc6, 0x1f, 0xff, 0x03, 0xb8, 0xc3, 0xfc, 0x49, 0xa8, 0x47, 0x4d, 0x39, 0xe6, 0x06, 0x4c,
+ 0xb8, 0xc0, 0x66, 0x71, 0x85, 0x39, 0x26, 0x8c, 0x63, 0xe4, 0xc5, 0x4d, 0x44, 0xc9, 0x4e, 0x8c,
+ 0x3c, 0xc5, 0x31, 0xda, 0xe4, 0xd2, 0x0b, 0x43, 0xc9, 0x2a, 0x6d, 0x12, 0x21, 0xcc, 0x1b, 0xa3,
+ 0x99, 0x79, 0x37, 0x45, 0x33, 0xf7, 0xa7, 0xe2, 0x68, 0xb3, 0x5e, 0xf8, 0x0e, 0x78, 0x9f, 0xcd,
+ 0x74, 0xea, 0x26, 0xf3, 0xb0, 0x65, 0xaa, 0x8c, 0x33, 0x19, 0xc5, 0x13, 0x42, 0x32, 0x2a, 0x39,
+ 0xe8, 0xd1, 0x87, 0xc9, 0xd9, 0x29, 0xed, 0x33, 0x02, 0x13, 0x67, 0xa6, 0x05, 0x7b, 0x96, 0xb4,
+ 0xbc, 0x3c, 0x77, 0x8e, 0x6b, 0x0c, 0xe3, 0x0d, 0x00, 0x89, 0x8c, 0xb2, 0xfc, 0xaa, 0xce, 0x19,
+ 0x40, 0x4d, 0xc2, 0xf0, 0x65, 0xbd, 0xfd, 0x63, 0x51, 0x4d, 0x74, 0x88, 0xdb, 0x02, 0xe6, 0x58,
+ 0xef, 0xe0, 0x8f, 0x1c, 0xba, 0x5c, 0xe6, 0x6b, 0x46, 0xe7, 0x51, 0xef, 0xa9, 0xae, 0x14, 0xda,
+ 0xff, 0x56, 0x16, 0x4a, 0x87, 0x7e, 0x7a, 0x99, 0xbe, 0x02, 0xa8, 0x5f, 0x8b, 0x26, 0xba, 0x4f,
+ 0xb8, 0xa1, 0xe5, 0xda, 0xfe, 0xc6, 0x5b, 0xcd, 0x64, 0x3f, 0x32, 0xfb, 0xeb, 0xb2, 0x2d, 0x9e,
+ 0x13, 0x2b, 0x66, 0x78, 0x0c, 0xf4, 0x69, 0xd1, 0xd3, 0x88, 0xb2, 0x70, 0xd4, 0x1e, 0x7a, 0x21,
+ 0x47, 0xed, 0x91, 0x11, 0x9c, 0xc6, 0xa0, 0x3d, 0xef, 0x88, 0x3d, 0x48, 0x0b, 0x56, 0x69, 0xc9,
+ 0x5f, 0xc6, 0x21, 0x20, 0xe8, 0xb9, 0x8f, 0xbc, 0x6f, 0x52, 0x33, 0x55, 0x18, 0x00, 0xc8, 0x3f,
+ 0x14, 0x75, 0xda, 0x93, 0xcd, 0x3f, 0x51, 0xa0, 0x6b, 0xa8, 0x65, 0x7f, 0x3f, 0xb7, 0xfd, 0xb8,
+ 0x61, 0xd4, 0xdc, 0xcc, 0x4b, 0xc7, 0xcf, 0x40, 0x39, 0xe5, 0x2b, 0x05, 0x81, 0x65, 0x4d, 0x75,
+ 0xf7, 0xe5, 0x3f, 0x20, 0x30, 0xe2, 0x27, 0x0d, 0x16, 0xd3, 0x4f, 0x64, 0x12, 0x27, 0x59, 0x2b,
+ 0xc4, 0x7a, 0xf4, 0xb2, 0x87, 0x3c, 0x83, 0x5f, 0xcd, 0x99, 0xed, 0x13, 0xa8, 0x14, 0x9e, 0x4b,
+ 0x1e, 0x7e, 0xfc, 0x3d, 0xb8, 0xf5, 0x43, 0x3b, 0x28, 0x1e, 0x9e, 0x33, 0x35, 0x1c, 0x90, 0x1a,
+ 0x03, 0xdc, 0x2e, 0xe0, 0x8a, 0x29, 0x77, 0xc0, 0xed, 0xee, 0xbb, 0x51, 0x8b, 0x52, 0x08, 0xb8,
+ 0x8d, 0xdb, 0x2d, 0x58, 0x5e, 0xba, 0x46, 0x13, 0xbd, 0xf7, 0xfa, 0xc6, 0xe5, 0xad, 0x36, 0x2b,
+ 0x6f, 0x0a, 0xc4, 0xe6, 0x70, 0x93, 0x40, 0x4e, 0x56, 0xdf, 0x16, 0x5b, 0xb6, 0x05, 0x62, 0xd4,
+ 0x9d, 0x6c, 0x83, 0xe8, 0xb1, 0x38, 0x4c, 0x7a, 0x9c, 0x14, 0x4f, 0x79, 0x8a, 0x06, 0x4d, 0x71,
+ 0xef, 0x35, 0x91, 0xc9, 0x38, 0x08, 0x6f, 0x95, 0xf8, 0x43, 0x71, 0x14, 0x5b, 0x83, 0xcc, 0xe2,
+ 0x78, 0x36, 0x2e, 0xe3, 0xbe, 0xf7, 0x3a, 0xdf, 0x68, 0xa8, 0xde, 0x2d, 0x58, 0x1b, 0x4e, 0x96,
+ 0xd3, 0xe4, 0x5b, 0xed, 0x8f, 0xf1, 0xa8, 0x37, 0xc4, 0x1f, 0x69, 0xe0, 0x13, 0xa9, 0x7e, 0xde,
+ 0x1b, 0x42, 0x88, 0xdb, 0x13, 0x45, 0x7d, 0x08, 0xd1, 0xed, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff,
+ 0xd4, 0xd4, 0x6a, 0xc1, 0xf3, 0x2c, 0x00, 0x00,
+}
« no previous file with comments | « common/eventlog/internal/logservice/logservice.go ('k') | common/eventlog/proto/goma_stats.pb.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698