| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // source: chromite/api/toolchain.proto |
| |
| package api |
| |
| import ( |
| context "context" |
| fmt "fmt" |
| proto "github.com/golang/protobuf/proto" |
| chromiumos "go.chromium.org/chromiumos/infra/proto/go/chromiumos" |
| grpc "google.golang.org/grpc" |
| codes "google.golang.org/grpc/codes" |
| status "google.golang.org/grpc/status" |
| math "math" |
| ) |
| |
| // Reference imports to suppress errors if they are not otherwise used. |
| var _ = proto.Marshal |
| var _ = fmt.Errorf |
| var _ = math.Inf |
| |
| // This is a compile-time assertion to ensure that this generated file |
| // is compatible with the proto package it is being compiled against. |
| // A compilation error at this line likely means your copy of the |
| // proto package needs to be updated. |
| const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package |
| |
| // TODO(crbug.com/1020615): Drop this once this is live in production and all of |
| // the users have migrated to using BuilderConfig.Artifacts.ArtifactType |
| // Meanwhile, keep this in sync with chromiumos/builder_config.proto. |
| type AFDOArtifactType int32 |
| |
| const ( |
| // No AFDO artifact type specified. |
| AFDOArtifactType_NONE_TYPE AFDOArtifactType = 0 |
| // The type is orderfile. |
| AFDOArtifactType_ORDERFILE AFDOArtifactType = 1 |
| // The type is Chrome AFDO files generated by benchmarks. |
| AFDOArtifactType_BENCHMARK_AFDO AFDOArtifactType = 2 |
| // The type is kernel AFDO files. |
| AFDOArtifactType_KERNEL_AFDO AFDOArtifactType = 3 |
| // The type is Chrome AFDO used in release builders. |
| AFDOArtifactType_CHROME_AFDO AFDOArtifactType = 4 |
| ) |
| |
| var AFDOArtifactType_name = map[int32]string{ |
| 0: "NONE_TYPE", |
| 1: "ORDERFILE", |
| 2: "BENCHMARK_AFDO", |
| 3: "KERNEL_AFDO", |
| 4: "CHROME_AFDO", |
| } |
| |
| var AFDOArtifactType_value = map[string]int32{ |
| "NONE_TYPE": 0, |
| "ORDERFILE": 1, |
| "BENCHMARK_AFDO": 2, |
| "KERNEL_AFDO": 3, |
| "CHROME_AFDO": 4, |
| } |
| |
| func (x AFDOArtifactType) String() string { |
| return proto.EnumName(AFDOArtifactType_name, int32(x)) |
| } |
| |
| func (AFDOArtifactType) EnumDescriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{0} |
| } |
| |
| // Does this artifact require a build? |
| type PrepareForToolchainBuildResponse_BuildRelevance int32 |
| |
| const ( |
| PrepareForToolchainBuildResponse_UNSPECIFIED PrepareForToolchainBuildResponse_BuildRelevance = 0 |
| // Build is necessary to generate artifacts. |
| PrepareForToolchainBuildResponse_NEEDED PrepareForToolchainBuildResponse_BuildRelevance = 1 |
| // Defer to other artifacts. Used primarily for aggregation of artifact |
| // results. |
| PrepareForToolchainBuildResponse_UNKNOWN PrepareForToolchainBuildResponse_BuildRelevance = 2 |
| // Artifacts are already generated. The build is pointless. |
| PrepareForToolchainBuildResponse_POINTLESS PrepareForToolchainBuildResponse_BuildRelevance = 3 |
| ) |
| |
| var PrepareForToolchainBuildResponse_BuildRelevance_name = map[int32]string{ |
| 0: "UNSPECIFIED", |
| 1: "NEEDED", |
| 2: "UNKNOWN", |
| 3: "POINTLESS", |
| } |
| |
| var PrepareForToolchainBuildResponse_BuildRelevance_value = map[string]int32{ |
| "UNSPECIFIED": 0, |
| "NEEDED": 1, |
| "UNKNOWN": 2, |
| "POINTLESS": 3, |
| } |
| |
| func (x PrepareForToolchainBuildResponse_BuildRelevance) String() string { |
| return proto.EnumName(PrepareForToolchainBuildResponse_BuildRelevance_name, int32(x)) |
| } |
| |
| func (PrepareForToolchainBuildResponse_BuildRelevance) EnumDescriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{2, 0} |
| } |
| |
| // Information about a collection of artifacts. |
| type ArtifactInfo struct { |
| // The ArtifactType. |
| ArtifactType chromiumos.BuilderConfig_Artifacts_ArtifactTypes `protobuf:"varint,1,opt,name=artifact_type,json=artifactType,proto3,enum=chromiumos.BuilderConfig_Artifacts_ArtifactTypes" json:"artifact_type,omitempty"` |
| // Artifacts for this ArtifactType. |
| Artifacts []*Artifact `protobuf:"bytes,2,rep,name=artifacts,proto3" json:"artifacts,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *ArtifactInfo) Reset() { *m = ArtifactInfo{} } |
| func (m *ArtifactInfo) String() string { return proto.CompactTextString(m) } |
| func (*ArtifactInfo) ProtoMessage() {} |
| func (*ArtifactInfo) Descriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{0} |
| } |
| |
| func (m *ArtifactInfo) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_ArtifactInfo.Unmarshal(m, b) |
| } |
| func (m *ArtifactInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_ArtifactInfo.Marshal(b, m, deterministic) |
| } |
| func (m *ArtifactInfo) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_ArtifactInfo.Merge(m, src) |
| } |
| func (m *ArtifactInfo) XXX_Size() int { |
| return xxx_messageInfo_ArtifactInfo.Size(m) |
| } |
| func (m *ArtifactInfo) XXX_DiscardUnknown() { |
| xxx_messageInfo_ArtifactInfo.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_ArtifactInfo proto.InternalMessageInfo |
| |
| func (m *ArtifactInfo) GetArtifactType() chromiumos.BuilderConfig_Artifacts_ArtifactTypes { |
| if m != nil { |
| return m.ArtifactType |
| } |
| return chromiumos.BuilderConfig_Artifacts_ARTIFACT_TYPES_UNSPECIFIED |
| } |
| |
| func (m *ArtifactInfo) GetArtifacts() []*Artifact { |
| if m != nil { |
| return m.Artifacts |
| } |
| return nil |
| } |
| |
| // Prepare the build for artifact building. |
| type PrepareForToolchainBuildRequest struct { |
| // The artifact types that this build should make. |
| ArtifactTypes []chromiumos.BuilderConfig_Artifacts_ArtifactTypes `protobuf:"varint,1,rep,packed,name=artifact_types,json=artifactTypes,proto3,enum=chromiumos.BuilderConfig_Artifacts_ArtifactTypes" json:"artifact_types,omitempty"` |
| // Note: both chroot and sysroot may be unspecified, when the endpoint is |
| // called prior to their creation. |
| // The chroot where the sysroot lives. |
| Chroot *chromiumos.Chroot `protobuf:"bytes,2,opt,name=chroot,proto3" json:"chroot,omitempty"` |
| // The sysroot where the files live. |
| Sysroot *Sysroot `protobuf:"bytes,3,opt,name=sysroot,proto3" json:"sysroot,omitempty"` |
| // Information about artifacts available when preparing. |
| InputArtifacts []*chromiumos.BuilderConfig_Artifacts_InputArtifactInfo `protobuf:"bytes,4,rep,name=input_artifacts,json=inputArtifacts,proto3" json:"input_artifacts,omitempty"` |
| // Additional arguments used in PrepareForBuild. |
| AdditionalArgs *chromiumos.PrepareForBuildAdditionalArgs `protobuf:"bytes,5,opt,name=additional_args,json=additionalArgs,proto3" json:"additional_args,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *PrepareForToolchainBuildRequest) Reset() { *m = PrepareForToolchainBuildRequest{} } |
| func (m *PrepareForToolchainBuildRequest) String() string { return proto.CompactTextString(m) } |
| func (*PrepareForToolchainBuildRequest) ProtoMessage() {} |
| func (*PrepareForToolchainBuildRequest) Descriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{1} |
| } |
| |
| func (m *PrepareForToolchainBuildRequest) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_PrepareForToolchainBuildRequest.Unmarshal(m, b) |
| } |
| func (m *PrepareForToolchainBuildRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_PrepareForToolchainBuildRequest.Marshal(b, m, deterministic) |
| } |
| func (m *PrepareForToolchainBuildRequest) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_PrepareForToolchainBuildRequest.Merge(m, src) |
| } |
| func (m *PrepareForToolchainBuildRequest) XXX_Size() int { |
| return xxx_messageInfo_PrepareForToolchainBuildRequest.Size(m) |
| } |
| func (m *PrepareForToolchainBuildRequest) XXX_DiscardUnknown() { |
| xxx_messageInfo_PrepareForToolchainBuildRequest.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_PrepareForToolchainBuildRequest proto.InternalMessageInfo |
| |
| func (m *PrepareForToolchainBuildRequest) GetArtifactTypes() []chromiumos.BuilderConfig_Artifacts_ArtifactTypes { |
| if m != nil { |
| return m.ArtifactTypes |
| } |
| return nil |
| } |
| |
| func (m *PrepareForToolchainBuildRequest) GetChroot() *chromiumos.Chroot { |
| if m != nil { |
| return m.Chroot |
| } |
| return nil |
| } |
| |
| func (m *PrepareForToolchainBuildRequest) GetSysroot() *Sysroot { |
| if m != nil { |
| return m.Sysroot |
| } |
| return nil |
| } |
| |
| func (m *PrepareForToolchainBuildRequest) GetInputArtifacts() []*chromiumos.BuilderConfig_Artifacts_InputArtifactInfo { |
| if m != nil { |
| return m.InputArtifacts |
| } |
| return nil |
| } |
| |
| func (m *PrepareForToolchainBuildRequest) GetAdditionalArgs() *chromiumos.PrepareForBuildAdditionalArgs { |
| if m != nil { |
| return m.AdditionalArgs |
| } |
| return nil |
| } |
| |
| // TODO(crbug/1019868): Migrate to using chromiumos.PrepareForBuildResponse. |
| type PrepareForToolchainBuildResponse struct { |
| BuildRelevance PrepareForToolchainBuildResponse_BuildRelevance `protobuf:"varint,1,opt,name=build_relevance,json=buildRelevance,proto3,enum=chromite.api.PrepareForToolchainBuildResponse_BuildRelevance" json:"build_relevance,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *PrepareForToolchainBuildResponse) Reset() { *m = PrepareForToolchainBuildResponse{} } |
| func (m *PrepareForToolchainBuildResponse) String() string { return proto.CompactTextString(m) } |
| func (*PrepareForToolchainBuildResponse) ProtoMessage() {} |
| func (*PrepareForToolchainBuildResponse) Descriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{2} |
| } |
| |
| func (m *PrepareForToolchainBuildResponse) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_PrepareForToolchainBuildResponse.Unmarshal(m, b) |
| } |
| func (m *PrepareForToolchainBuildResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_PrepareForToolchainBuildResponse.Marshal(b, m, deterministic) |
| } |
| func (m *PrepareForToolchainBuildResponse) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_PrepareForToolchainBuildResponse.Merge(m, src) |
| } |
| func (m *PrepareForToolchainBuildResponse) XXX_Size() int { |
| return xxx_messageInfo_PrepareForToolchainBuildResponse.Size(m) |
| } |
| func (m *PrepareForToolchainBuildResponse) XXX_DiscardUnknown() { |
| xxx_messageInfo_PrepareForToolchainBuildResponse.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_PrepareForToolchainBuildResponse proto.InternalMessageInfo |
| |
| func (m *PrepareForToolchainBuildResponse) GetBuildRelevance() PrepareForToolchainBuildResponse_BuildRelevance { |
| if m != nil { |
| return m.BuildRelevance |
| } |
| return PrepareForToolchainBuildResponse_UNSPECIFIED |
| } |
| |
| type BundleToolchainRequest struct { |
| // The chroot where the sysroot lives. |
| Chroot *chromiumos.Chroot `protobuf:"bytes,1,opt,name=chroot,proto3" json:"chroot,omitempty"` |
| // The sysroot where the files live. |
| Sysroot *Sysroot `protobuf:"bytes,2,opt,name=sysroot,proto3" json:"sysroot,omitempty"` |
| // Absolute path to the directory in which artifacts should be dropped. |
| OutputDir string `protobuf:"bytes,3,opt,name=output_dir,json=outputDir,proto3" json:"output_dir,omitempty"` |
| // Which artifacts are wanted? |
| ArtifactTypes []chromiumos.BuilderConfig_Artifacts_ArtifactTypes `protobuf:"varint,4,rep,packed,name=artifact_types,json=artifactTypes,proto3,enum=chromiumos.BuilderConfig_Artifacts_ArtifactTypes" json:"artifact_types,omitempty"` |
| // Additional arguments that were used in PrepareForBuild. |
| AdditionalArgs *chromiumos.PrepareForBuildAdditionalArgs `protobuf:"bytes,5,opt,name=additional_args,json=additionalArgs,proto3" json:"additional_args,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *BundleToolchainRequest) Reset() { *m = BundleToolchainRequest{} } |
| func (m *BundleToolchainRequest) String() string { return proto.CompactTextString(m) } |
| func (*BundleToolchainRequest) ProtoMessage() {} |
| func (*BundleToolchainRequest) Descriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{3} |
| } |
| |
| func (m *BundleToolchainRequest) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_BundleToolchainRequest.Unmarshal(m, b) |
| } |
| func (m *BundleToolchainRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_BundleToolchainRequest.Marshal(b, m, deterministic) |
| } |
| func (m *BundleToolchainRequest) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_BundleToolchainRequest.Merge(m, src) |
| } |
| func (m *BundleToolchainRequest) XXX_Size() int { |
| return xxx_messageInfo_BundleToolchainRequest.Size(m) |
| } |
| func (m *BundleToolchainRequest) XXX_DiscardUnknown() { |
| xxx_messageInfo_BundleToolchainRequest.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_BundleToolchainRequest proto.InternalMessageInfo |
| |
| func (m *BundleToolchainRequest) GetChroot() *chromiumos.Chroot { |
| if m != nil { |
| return m.Chroot |
| } |
| return nil |
| } |
| |
| func (m *BundleToolchainRequest) GetSysroot() *Sysroot { |
| if m != nil { |
| return m.Sysroot |
| } |
| return nil |
| } |
| |
| func (m *BundleToolchainRequest) GetOutputDir() string { |
| if m != nil { |
| return m.OutputDir |
| } |
| return "" |
| } |
| |
| func (m *BundleToolchainRequest) GetArtifactTypes() []chromiumos.BuilderConfig_Artifacts_ArtifactTypes { |
| if m != nil { |
| return m.ArtifactTypes |
| } |
| return nil |
| } |
| |
| func (m *BundleToolchainRequest) GetAdditionalArgs() *chromiumos.PrepareForBuildAdditionalArgs { |
| if m != nil { |
| return m.AdditionalArgs |
| } |
| return nil |
| } |
| |
| // Response describing which bundles were dumped to the given output directory. |
| type BundleToolchainResponse struct { |
| // The artifacts that added to the output directory. |
| ArtifactsInfo []*ArtifactInfo `protobuf:"bytes,2,rep,name=artifacts_info,json=artifactsInfo,proto3" json:"artifacts_info,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *BundleToolchainResponse) Reset() { *m = BundleToolchainResponse{} } |
| func (m *BundleToolchainResponse) String() string { return proto.CompactTextString(m) } |
| func (*BundleToolchainResponse) ProtoMessage() {} |
| func (*BundleToolchainResponse) Descriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{4} |
| } |
| |
| func (m *BundleToolchainResponse) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_BundleToolchainResponse.Unmarshal(m, b) |
| } |
| func (m *BundleToolchainResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_BundleToolchainResponse.Marshal(b, m, deterministic) |
| } |
| func (m *BundleToolchainResponse) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_BundleToolchainResponse.Merge(m, src) |
| } |
| func (m *BundleToolchainResponse) XXX_Size() int { |
| return xxx_messageInfo_BundleToolchainResponse.Size(m) |
| } |
| func (m *BundleToolchainResponse) XXX_DiscardUnknown() { |
| xxx_messageInfo_BundleToolchainResponse.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_BundleToolchainResponse proto.InternalMessageInfo |
| |
| func (m *BundleToolchainResponse) GetArtifactsInfo() []*ArtifactInfo { |
| if m != nil { |
| return m.ArtifactsInfo |
| } |
| return nil |
| } |
| |
| type VerifyAFDOArtifactsRequest struct { |
| BuildTarget *chromiumos.BuildTarget `protobuf:"bytes,1,opt,name=build_target,json=buildTarget,proto3" json:"build_target,omitempty"` |
| // The type of AFDO artifact to test. |
| ArtifactType chromiumos.AFDOArtifactType `protobuf:"varint,2,opt,name=artifact_type,json=artifactType,proto3,enum=chromiumos.AFDOArtifactType" json:"artifact_type,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *VerifyAFDOArtifactsRequest) Reset() { *m = VerifyAFDOArtifactsRequest{} } |
| func (m *VerifyAFDOArtifactsRequest) String() string { return proto.CompactTextString(m) } |
| func (*VerifyAFDOArtifactsRequest) ProtoMessage() {} |
| func (*VerifyAFDOArtifactsRequest) Descriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{5} |
| } |
| |
| func (m *VerifyAFDOArtifactsRequest) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_VerifyAFDOArtifactsRequest.Unmarshal(m, b) |
| } |
| func (m *VerifyAFDOArtifactsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_VerifyAFDOArtifactsRequest.Marshal(b, m, deterministic) |
| } |
| func (m *VerifyAFDOArtifactsRequest) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_VerifyAFDOArtifactsRequest.Merge(m, src) |
| } |
| func (m *VerifyAFDOArtifactsRequest) XXX_Size() int { |
| return xxx_messageInfo_VerifyAFDOArtifactsRequest.Size(m) |
| } |
| func (m *VerifyAFDOArtifactsRequest) XXX_DiscardUnknown() { |
| xxx_messageInfo_VerifyAFDOArtifactsRequest.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_VerifyAFDOArtifactsRequest proto.InternalMessageInfo |
| |
| func (m *VerifyAFDOArtifactsRequest) GetBuildTarget() *chromiumos.BuildTarget { |
| if m != nil { |
| return m.BuildTarget |
| } |
| return nil |
| } |
| |
| func (m *VerifyAFDOArtifactsRequest) GetArtifactType() chromiumos.AFDOArtifactType { |
| if m != nil { |
| return m.ArtifactType |
| } |
| return chromiumos.AFDOArtifactType_NONE_TYPE |
| } |
| |
| type VerifyAFDOArtifactsResponse struct { |
| // Status of the service |
| Status bool `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` |
| XXX_NoUnkeyedLiteral struct{} `json:"-"` |
| XXX_unrecognized []byte `json:"-"` |
| XXX_sizecache int32 `json:"-"` |
| } |
| |
| func (m *VerifyAFDOArtifactsResponse) Reset() { *m = VerifyAFDOArtifactsResponse{} } |
| func (m *VerifyAFDOArtifactsResponse) String() string { return proto.CompactTextString(m) } |
| func (*VerifyAFDOArtifactsResponse) ProtoMessage() {} |
| func (*VerifyAFDOArtifactsResponse) Descriptor() ([]byte, []int) { |
| return fileDescriptor_7ff43bdb7436d394, []int{6} |
| } |
| |
| func (m *VerifyAFDOArtifactsResponse) XXX_Unmarshal(b []byte) error { |
| return xxx_messageInfo_VerifyAFDOArtifactsResponse.Unmarshal(m, b) |
| } |
| func (m *VerifyAFDOArtifactsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { |
| return xxx_messageInfo_VerifyAFDOArtifactsResponse.Marshal(b, m, deterministic) |
| } |
| func (m *VerifyAFDOArtifactsResponse) XXX_Merge(src proto.Message) { |
| xxx_messageInfo_VerifyAFDOArtifactsResponse.Merge(m, src) |
| } |
| func (m *VerifyAFDOArtifactsResponse) XXX_Size() int { |
| return xxx_messageInfo_VerifyAFDOArtifactsResponse.Size(m) |
| } |
| func (m *VerifyAFDOArtifactsResponse) XXX_DiscardUnknown() { |
| xxx_messageInfo_VerifyAFDOArtifactsResponse.DiscardUnknown(m) |
| } |
| |
| var xxx_messageInfo_VerifyAFDOArtifactsResponse proto.InternalMessageInfo |
| |
| func (m *VerifyAFDOArtifactsResponse) GetStatus() bool { |
| if m != nil { |
| return m.Status |
| } |
| return false |
| } |
| |
| func init() { |
| proto.RegisterEnum("chromite.api.AFDOArtifactType", AFDOArtifactType_name, AFDOArtifactType_value) |
| proto.RegisterEnum("chromite.api.PrepareForToolchainBuildResponse_BuildRelevance", PrepareForToolchainBuildResponse_BuildRelevance_name, PrepareForToolchainBuildResponse_BuildRelevance_value) |
| proto.RegisterType((*ArtifactInfo)(nil), "chromite.api.ArtifactInfo") |
| proto.RegisterType((*PrepareForToolchainBuildRequest)(nil), "chromite.api.PrepareForToolchainBuildRequest") |
| proto.RegisterType((*PrepareForToolchainBuildResponse)(nil), "chromite.api.PrepareForToolchainBuildResponse") |
| proto.RegisterType((*BundleToolchainRequest)(nil), "chromite.api.BundleToolchainRequest") |
| proto.RegisterType((*BundleToolchainResponse)(nil), "chromite.api.BundleToolchainResponse") |
| proto.RegisterType((*VerifyAFDOArtifactsRequest)(nil), "chromite.api.VerifyAFDOArtifactsRequest") |
| proto.RegisterType((*VerifyAFDOArtifactsResponse)(nil), "chromite.api.VerifyAFDOArtifactsResponse") |
| } |
| |
| func init() { proto.RegisterFile("chromite/api/toolchain.proto", fileDescriptor_7ff43bdb7436d394) } |
| |
| var fileDescriptor_7ff43bdb7436d394 = []byte{ |
| // 836 bytes of a gzipped FileDescriptorProto |
| 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xdd, 0x6e, 0x1b, 0x45, |
| 0x14, 0xee, 0xae, 0x83, 0x5b, 0x1f, 0x27, 0xf6, 0x32, 0x12, 0x89, 0x59, 0x5a, 0xd5, 0xb2, 0x40, |
| 0x4a, 0x2b, 0x61, 0x8b, 0x40, 0x11, 0x42, 0xe2, 0x62, 0x63, 0x6f, 0x54, 0x93, 0x74, 0x1d, 0x8d, |
| 0x9d, 0x14, 0xb8, 0x60, 0x35, 0xf6, 0xce, 0x3a, 0x23, 0x39, 0x3b, 0xcb, 0xcc, 0xb8, 0x22, 0x12, |
| 0x8f, 0xc0, 0x1b, 0xc0, 0xd3, 0xe4, 0x1d, 0x78, 0x8c, 0x8a, 0x57, 0x40, 0xfb, 0xbf, 0x9b, 0xa6, |
| 0xaa, 0x83, 0xa0, 0x77, 0x3e, 0x73, 0xfe, 0xbe, 0xf3, 0x9d, 0xcf, 0x47, 0x0b, 0x0f, 0x17, 0x17, |
| 0x82, 0x5f, 0x32, 0x45, 0x07, 0x24, 0x64, 0x03, 0xc5, 0xf9, 0x6a, 0x71, 0x41, 0x58, 0xd0, 0x0f, |
| 0x05, 0x57, 0x1c, 0x6d, 0x67, 0xde, 0x3e, 0x09, 0x99, 0x59, 0x8d, 0x25, 0x42, 0x31, 0x9f, 0x2c, |
| 0x94, 0x4c, 0x62, 0x6f, 0x78, 0xe7, 0x6b, 0xb6, 0xf2, 0x5c, 0x12, 0xb2, 0xd4, 0x6b, 0x56, 0xbc, |
| 0xf2, 0x4a, 0x0a, 0xce, 0x55, 0xea, 0x7b, 0x9c, 0xf8, 0xd6, 0x97, 0x5c, 0x26, 0x79, 0x54, 0xb8, |
| 0x0b, 0x1e, 0xf8, 0x6c, 0x99, 0x06, 0xec, 0x95, 0x02, 0x16, 0xfc, 0xf2, 0x92, 0xa7, 0xf8, 0x7a, |
| 0x7f, 0x6a, 0xb0, 0x6d, 0xa5, 0x38, 0xc6, 0x81, 0xcf, 0xd1, 0x39, 0xec, 0x64, 0xb8, 0x5c, 0x75, |
| 0x15, 0xd2, 0x8e, 0xd6, 0xd5, 0xf6, 0x5b, 0x07, 0x5f, 0xf4, 0x8b, 0x0a, 0xfd, 0xc3, 0xa4, 0xc5, |
| 0x30, 0xe9, 0x60, 0xe5, 0x63, 0x64, 0xbf, 0x66, 0x57, 0x21, 0x95, 0x78, 0x9b, 0x94, 0x4c, 0xf4, |
| 0x15, 0x34, 0xf2, 0x79, 0x3b, 0x7a, 0xb7, 0xb6, 0xdf, 0x3c, 0xd8, 0xed, 0x97, 0xc9, 0xc9, 0xb3, |
| 0x71, 0x11, 0xd8, 0xfb, 0xbd, 0x06, 0x8f, 0x4f, 0x05, 0x0d, 0x89, 0xa0, 0x47, 0x5c, 0xcc, 0x32, |
| 0x72, 0x63, 0x00, 0x98, 0xfe, 0xb2, 0xa6, 0x52, 0xa1, 0x1f, 0xa0, 0x55, 0x41, 0x2c, 0x3b, 0x5a, |
| 0xb7, 0xf6, 0xef, 0x20, 0xef, 0x94, 0x21, 0x4b, 0xf4, 0x14, 0xea, 0x51, 0x09, 0xae, 0x3a, 0x7a, |
| 0x57, 0xdb, 0x6f, 0x1e, 0xa0, 0x72, 0xc5, 0x61, 0xec, 0xc1, 0x69, 0x04, 0x1a, 0xc0, 0xfd, 0x74, |
| 0x27, 0x9d, 0x5a, 0x1c, 0xfc, 0x51, 0x75, 0xba, 0x69, 0xe2, 0xc4, 0x59, 0x14, 0xfa, 0x19, 0xda, |
| 0x2c, 0x08, 0xd7, 0xca, 0x2d, 0x68, 0xd9, 0x8a, 0x69, 0x79, 0xb6, 0x09, 0xee, 0x71, 0x94, 0x5a, |
| 0x5e, 0x1c, 0x6e, 0xb1, 0xf2, 0x93, 0x44, 0x18, 0xda, 0xc4, 0xf3, 0x98, 0x62, 0x3c, 0x20, 0x2b, |
| 0x97, 0x88, 0xa5, 0xec, 0x7c, 0x10, 0x03, 0x7b, 0x52, 0xae, 0x5f, 0x90, 0x1b, 0x77, 0xb2, 0xf2, |
| 0x0c, 0x4b, 0x2c, 0x25, 0x6e, 0x91, 0x8a, 0xdd, 0xfb, 0x4b, 0x83, 0xee, 0xdb, 0xd7, 0x21, 0x43, |
| 0x1e, 0x48, 0x8a, 0x7c, 0x68, 0x27, 0xda, 0x15, 0x74, 0x45, 0x5f, 0x91, 0x60, 0x91, 0x69, 0xe8, |
| 0xbb, 0x2a, 0x23, 0xef, 0x2a, 0xd4, 0x4f, 0xad, 0xb4, 0x08, 0x6e, 0xcd, 0x2b, 0x76, 0x6f, 0x0c, |
| 0xad, 0x6a, 0x04, 0x6a, 0x43, 0xf3, 0xcc, 0x99, 0x9e, 0xda, 0xc3, 0xf1, 0xd1, 0xd8, 0x1e, 0x19, |
| 0xf7, 0x10, 0x40, 0xdd, 0xb1, 0xed, 0x91, 0x3d, 0x32, 0x34, 0xd4, 0x84, 0xfb, 0x67, 0xce, 0xb1, |
| 0x33, 0x79, 0xe9, 0x18, 0x3a, 0xda, 0x81, 0xc6, 0xe9, 0x64, 0xec, 0xcc, 0x4e, 0xec, 0xe9, 0xd4, |
| 0xa8, 0xf5, 0xae, 0x75, 0xd8, 0x3d, 0x5c, 0x07, 0xde, 0x8a, 0xe6, 0x50, 0x32, 0x75, 0x15, 0x1a, |
| 0xd0, 0xee, 0xa2, 0x01, 0x7d, 0x23, 0x0d, 0x3c, 0x02, 0xe0, 0x6b, 0x15, 0x89, 0xc0, 0x63, 0x22, |
| 0xd6, 0x4d, 0x03, 0x37, 0x92, 0x97, 0x11, 0x13, 0xb7, 0x28, 0x7b, 0xeb, 0x3f, 0x52, 0xf6, 0xff, |
| 0x21, 0x8e, 0x39, 0xec, 0xbd, 0xc1, 0x61, 0x2a, 0x09, 0xab, 0x18, 0x44, 0xba, 0x2c, 0xf0, 0x79, |
| 0x7a, 0x01, 0xcc, 0xdb, 0x2f, 0x40, 0xac, 0xe7, 0x1c, 0xb1, 0x8c, 0xcc, 0xef, 0xb7, 0x1e, 0x68, |
| 0x86, 0xde, 0xfb, 0x43, 0x03, 0xf3, 0x9c, 0x0a, 0xe6, 0x5f, 0x59, 0x47, 0xa3, 0x49, 0x3e, 0x6c, |
| 0xb6, 0xac, 0x6f, 0x61, 0x3b, 0x91, 0x9e, 0x22, 0x62, 0x49, 0xb3, 0x95, 0xed, 0xbd, 0x41, 0xd7, |
| 0x2c, 0x76, 0xe3, 0xe6, 0xbc, 0x30, 0x90, 0x75, 0xf3, 0xf0, 0xe9, 0xb1, 0x68, 0x1f, 0x96, 0x93, |
| 0xcb, 0x4d, 0x23, 0x22, 0xab, 0x37, 0xae, 0xf7, 0x0c, 0x3e, 0xb9, 0x15, 0x5c, 0xca, 0xc2, 0x2e, |
| 0xd4, 0xa5, 0x22, 0x6a, 0x2d, 0x63, 0x5c, 0x0f, 0x70, 0x6a, 0x3d, 0xf5, 0xc1, 0xb8, 0x59, 0x38, |
| 0x12, 0xa8, 0x33, 0x71, 0x6c, 0x77, 0xf6, 0xe3, 0xa9, 0x6d, 0xdc, 0x8b, 0xcc, 0x09, 0x1e, 0xd9, |
| 0xf8, 0x68, 0x7c, 0x62, 0x1b, 0x1a, 0x42, 0xd0, 0x3a, 0xb4, 0x9d, 0xe1, 0xf3, 0x17, 0x16, 0x3e, |
| 0x76, 0xa3, 0x5c, 0x43, 0x8f, 0xc4, 0x7f, 0x6c, 0x63, 0xc7, 0x3e, 0x49, 0x1e, 0x6a, 0xd1, 0xc3, |
| 0xf0, 0x39, 0x9e, 0xbc, 0xb0, 0x93, 0x87, 0xad, 0x83, 0xbf, 0x6b, 0x60, 0xe4, 0xbb, 0x99, 0x52, |
| 0xf1, 0x8a, 0x2d, 0x28, 0xfa, 0x0d, 0x1e, 0x9d, 0x85, 0x1e, 0x51, 0xd4, 0x8e, 0xc9, 0x78, 0xc9, |
| 0xd4, 0x45, 0x05, 0x3d, 0xda, 0xaf, 0xee, 0xe8, 0xed, 0xec, 0x9b, 0x4f, 0x36, 0x88, 0x4c, 0xa8, |
| 0xe8, 0xd5, 0xaf, 0x5f, 0x9b, 0xba, 0xa1, 0xa1, 0x5f, 0xe1, 0xe3, 0xb3, 0x70, 0xc5, 0x89, 0x77, |
| 0x4e, 0x95, 0xa2, 0xde, 0x7b, 0xec, 0x1c, 0x42, 0xfb, 0x86, 0xbc, 0xd1, 0xe7, 0x9b, 0xde, 0xa7, |
| 0xa4, 0x69, 0xff, 0x6e, 0xe7, 0x2c, 0x3a, 0xf8, 0xc9, 0xff, 0xa3, 0x98, 0xf0, 0xd3, 0x6a, 0x89, |
| 0xdb, 0x4f, 0x90, 0xf9, 0xd9, 0x3b, 0xa2, 0x92, 0xfa, 0xe6, 0x87, 0xd7, 0xaf, 0xcd, 0x1d, 0x68, |
| 0xe4, 0x5f, 0x20, 0x86, 0x7e, 0xf8, 0xcd, 0x4f, 0x5f, 0x2f, 0x79, 0x2e, 0xe0, 0x3e, 0x17, 0xcb, |
| 0x41, 0xe9, 0x43, 0x80, 0x05, 0xbe, 0x20, 0x83, 0xf8, 0x3b, 0x60, 0xb0, 0xe4, 0x83, 0xf2, 0xf7, |
| 0xc5, 0xbc, 0x1e, 0x3f, 0x7f, 0xf9, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc9, 0xcd, 0x4c, 0xa4, |
| 0xde, 0x08, 0x00, 0x00, |
| } |
| |
| // Reference imports to suppress errors if they are not otherwise used. |
| var _ context.Context |
| var _ grpc.ClientConn |
| |
| // This is a compile-time assertion to ensure that this generated file |
| // is compatible with the grpc package it is being compiled against. |
| const _ = grpc.SupportPackageIsVersion4 |
| |
| // ToolchainServiceClient is the client API for ToolchainService service. |
| // |
| // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. |
| type ToolchainServiceClient interface { |
| // DEPRECATED for recipes: used only by legacy toolchain builders. |
| // See also crbug/1019868. |
| // Update Chrome ebuild with most recent unvetted orderfile |
| UpdateEbuildWithAFDOArtifacts(ctx context.Context, in *VerifyAFDOArtifactsRequest, opts ...grpc.CallOption) (*VerifyAFDOArtifactsResponse, error) |
| // DEPRECATED for recipes: used only by legacy toolchain builders. |
| // See also crbug/1019868. |
| // Copy the orderfile from unvetted GS bucket to vetted bucket. |
| UploadVettedAFDOArtifacts(ctx context.Context, in *VerifyAFDOArtifactsRequest, opts ...grpc.CallOption) (*VerifyAFDOArtifactsResponse, error) |
| // Prepare to build toolchain artifacts. This will be called twice: |
| // Once with chroot and sysroot = None, before the chroot is created, and |
| // again at the start of the 'install packages' step, if the build gets that |
| // far. |
| PrepareForBuild(ctx context.Context, in *PrepareForToolchainBuildRequest, opts ...grpc.CallOption) (*PrepareForToolchainBuildResponse, error) |
| // Bundle toolchain artifacts. |
| BundleArtifacts(ctx context.Context, in *BundleToolchainRequest, opts ...grpc.CallOption) (*BundleToolchainResponse, error) |
| } |
| |
| type toolchainServiceClient struct { |
| cc *grpc.ClientConn |
| } |
| |
| func NewToolchainServiceClient(cc *grpc.ClientConn) ToolchainServiceClient { |
| return &toolchainServiceClient{cc} |
| } |
| |
| func (c *toolchainServiceClient) UpdateEbuildWithAFDOArtifacts(ctx context.Context, in *VerifyAFDOArtifactsRequest, opts ...grpc.CallOption) (*VerifyAFDOArtifactsResponse, error) { |
| out := new(VerifyAFDOArtifactsResponse) |
| err := c.cc.Invoke(ctx, "/chromite.api.ToolchainService/UpdateEbuildWithAFDOArtifacts", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *toolchainServiceClient) UploadVettedAFDOArtifacts(ctx context.Context, in *VerifyAFDOArtifactsRequest, opts ...grpc.CallOption) (*VerifyAFDOArtifactsResponse, error) { |
| out := new(VerifyAFDOArtifactsResponse) |
| err := c.cc.Invoke(ctx, "/chromite.api.ToolchainService/UploadVettedAFDOArtifacts", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *toolchainServiceClient) PrepareForBuild(ctx context.Context, in *PrepareForToolchainBuildRequest, opts ...grpc.CallOption) (*PrepareForToolchainBuildResponse, error) { |
| out := new(PrepareForToolchainBuildResponse) |
| err := c.cc.Invoke(ctx, "/chromite.api.ToolchainService/PrepareForBuild", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *toolchainServiceClient) BundleArtifacts(ctx context.Context, in *BundleToolchainRequest, opts ...grpc.CallOption) (*BundleToolchainResponse, error) { |
| out := new(BundleToolchainResponse) |
| err := c.cc.Invoke(ctx, "/chromite.api.ToolchainService/BundleArtifacts", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| // ToolchainServiceServer is the server API for ToolchainService service. |
| type ToolchainServiceServer interface { |
| // DEPRECATED for recipes: used only by legacy toolchain builders. |
| // See also crbug/1019868. |
| // Update Chrome ebuild with most recent unvetted orderfile |
| UpdateEbuildWithAFDOArtifacts(context.Context, *VerifyAFDOArtifactsRequest) (*VerifyAFDOArtifactsResponse, error) |
| // DEPRECATED for recipes: used only by legacy toolchain builders. |
| // See also crbug/1019868. |
| // Copy the orderfile from unvetted GS bucket to vetted bucket. |
| UploadVettedAFDOArtifacts(context.Context, *VerifyAFDOArtifactsRequest) (*VerifyAFDOArtifactsResponse, error) |
| // Prepare to build toolchain artifacts. This will be called twice: |
| // Once with chroot and sysroot = None, before the chroot is created, and |
| // again at the start of the 'install packages' step, if the build gets that |
| // far. |
| PrepareForBuild(context.Context, *PrepareForToolchainBuildRequest) (*PrepareForToolchainBuildResponse, error) |
| // Bundle toolchain artifacts. |
| BundleArtifacts(context.Context, *BundleToolchainRequest) (*BundleToolchainResponse, error) |
| } |
| |
| // UnimplementedToolchainServiceServer can be embedded to have forward compatible implementations. |
| type UnimplementedToolchainServiceServer struct { |
| } |
| |
| func (*UnimplementedToolchainServiceServer) UpdateEbuildWithAFDOArtifacts(ctx context.Context, req *VerifyAFDOArtifactsRequest) (*VerifyAFDOArtifactsResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method UpdateEbuildWithAFDOArtifacts not implemented") |
| } |
| func (*UnimplementedToolchainServiceServer) UploadVettedAFDOArtifacts(ctx context.Context, req *VerifyAFDOArtifactsRequest) (*VerifyAFDOArtifactsResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method UploadVettedAFDOArtifacts not implemented") |
| } |
| func (*UnimplementedToolchainServiceServer) PrepareForBuild(ctx context.Context, req *PrepareForToolchainBuildRequest) (*PrepareForToolchainBuildResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method PrepareForBuild not implemented") |
| } |
| func (*UnimplementedToolchainServiceServer) BundleArtifacts(ctx context.Context, req *BundleToolchainRequest) (*BundleToolchainResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method BundleArtifacts not implemented") |
| } |
| |
| func RegisterToolchainServiceServer(s *grpc.Server, srv ToolchainServiceServer) { |
| s.RegisterService(&_ToolchainService_serviceDesc, srv) |
| } |
| |
| func _ToolchainService_UpdateEbuildWithAFDOArtifacts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(VerifyAFDOArtifactsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(ToolchainServiceServer).UpdateEbuildWithAFDOArtifacts(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/chromite.api.ToolchainService/UpdateEbuildWithAFDOArtifacts", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(ToolchainServiceServer).UpdateEbuildWithAFDOArtifacts(ctx, req.(*VerifyAFDOArtifactsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _ToolchainService_UploadVettedAFDOArtifacts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(VerifyAFDOArtifactsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(ToolchainServiceServer).UploadVettedAFDOArtifacts(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/chromite.api.ToolchainService/UploadVettedAFDOArtifacts", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(ToolchainServiceServer).UploadVettedAFDOArtifacts(ctx, req.(*VerifyAFDOArtifactsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _ToolchainService_PrepareForBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(PrepareForToolchainBuildRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(ToolchainServiceServer).PrepareForBuild(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/chromite.api.ToolchainService/PrepareForBuild", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(ToolchainServiceServer).PrepareForBuild(ctx, req.(*PrepareForToolchainBuildRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _ToolchainService_BundleArtifacts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(BundleToolchainRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(ToolchainServiceServer).BundleArtifacts(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/chromite.api.ToolchainService/BundleArtifacts", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(ToolchainServiceServer).BundleArtifacts(ctx, req.(*BundleToolchainRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| var _ToolchainService_serviceDesc = grpc.ServiceDesc{ |
| ServiceName: "chromite.api.ToolchainService", |
| HandlerType: (*ToolchainServiceServer)(nil), |
| Methods: []grpc.MethodDesc{ |
| { |
| MethodName: "UpdateEbuildWithAFDOArtifacts", |
| Handler: _ToolchainService_UpdateEbuildWithAFDOArtifacts_Handler, |
| }, |
| { |
| MethodName: "UploadVettedAFDOArtifacts", |
| Handler: _ToolchainService_UploadVettedAFDOArtifacts_Handler, |
| }, |
| { |
| MethodName: "PrepareForBuild", |
| Handler: _ToolchainService_PrepareForBuild_Handler, |
| }, |
| { |
| MethodName: "BundleArtifacts", |
| Handler: _ToolchainService_BundleArtifacts_Handler, |
| }, |
| }, |
| Streams: []grpc.StreamDesc{}, |
| Metadata: "chromite/api/toolchain.proto", |
| } |