blob: 7b907d70391ad914c25d54723246851723acee0a [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: chromite/api/binhost.proto
package api
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
chromiumos "go.chromium.org/chromiumos/infra/proto/go/chromiumos"
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
// Portage environment variable that points to a remote binhost.
type BinhostKey int32
const (
// No binhost key was specified.
BinhostKey_UNSPECIFIED BinhostKey = 0
// Contains prebuilts generated by the postsubmit builder.
BinhostKey_POSTSUBMIT_BINHOST BinhostKey = 1
// Contains prebuilts generated by the PFQ.
BinhostKey_LATEST_RELEASE_CHROME_BINHOST BinhostKey = 2
// Contains prebuilts generated by pre-flight builders.
BinhostKey_PREFLIGHT_BINHOST BinhostKey = 3
)
var BinhostKey_name = map[int32]string{
0: "UNSPECIFIED",
1: "POSTSUBMIT_BINHOST",
2: "LATEST_RELEASE_CHROME_BINHOST",
3: "PREFLIGHT_BINHOST",
}
var BinhostKey_value = map[string]int32{
"UNSPECIFIED": 0,
"POSTSUBMIT_BINHOST": 1,
"LATEST_RELEASE_CHROME_BINHOST": 2,
"PREFLIGHT_BINHOST": 3,
}
func (x BinhostKey) String() string {
return proto.EnumName(BinhostKey_name, int32(x))
}
func (BinhostKey) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{0}
}
// Overlay types for push_overlays.
type OverlayType int32
const (
// Not specified.
OverlayType_OVERLAYTYPE_UNSPECIFIED OverlayType = 0
// Both public and private.
OverlayType_OVERLAYTYPE_BOTH OverlayType = 1
// Only public overlays.
OverlayType_OVERLAYTYPE_PUBLIC OverlayType = 2
// Only private overlays.
OverlayType_OVERLAYTYPE_PRIVATE OverlayType = 3
// No overlays will be used.
OverlayType_OVERLAYTYPE_NONE OverlayType = 4
)
var OverlayType_name = map[int32]string{
0: "OVERLAYTYPE_UNSPECIFIED",
1: "OVERLAYTYPE_BOTH",
2: "OVERLAYTYPE_PUBLIC",
3: "OVERLAYTYPE_PRIVATE",
4: "OVERLAYTYPE_NONE",
}
var OverlayType_value = map[string]int32{
"OVERLAYTYPE_UNSPECIFIED": 0,
"OVERLAYTYPE_BOTH": 1,
"OVERLAYTYPE_PUBLIC": 2,
"OVERLAYTYPE_PRIVATE": 3,
"OVERLAYTYPE_NONE": 4,
}
func (x OverlayType) String() string {
return proto.EnumName(OverlayType_name, int32(x))
}
func (OverlayType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{1}
}
// Describes where prebuilts will be uploaded so package index and other
// Portage metadata can be updated appropriately.
type PrepareBinhostUploadsRequest struct {
// Build target to prepare prebuilts for.
BuildTarget *chromiumos.BuildTarget `protobuf:"bytes,1,opt,name=build_target,json=buildTarget,proto3" json:"build_target,omitempty"`
// Full URI where we wish to store prebuilts. Note that this service
// call does NOT upload them, it only updates metadata.
// Example: gs://chromeos-prebuilt/board/amd64-generic/packages/
Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PrepareBinhostUploadsRequest) Reset() { *m = PrepareBinhostUploadsRequest{} }
func (m *PrepareBinhostUploadsRequest) String() string { return proto.CompactTextString(m) }
func (*PrepareBinhostUploadsRequest) ProtoMessage() {}
func (*PrepareBinhostUploadsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{0}
}
func (m *PrepareBinhostUploadsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareBinhostUploadsRequest.Unmarshal(m, b)
}
func (m *PrepareBinhostUploadsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PrepareBinhostUploadsRequest.Marshal(b, m, deterministic)
}
func (m *PrepareBinhostUploadsRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_PrepareBinhostUploadsRequest.Merge(m, src)
}
func (m *PrepareBinhostUploadsRequest) XXX_Size() int {
return xxx_messageInfo_PrepareBinhostUploadsRequest.Size(m)
}
func (m *PrepareBinhostUploadsRequest) XXX_DiscardUnknown() {
xxx_messageInfo_PrepareBinhostUploadsRequest.DiscardUnknown(m)
}
var xxx_messageInfo_PrepareBinhostUploadsRequest proto.InternalMessageInfo
func (m *PrepareBinhostUploadsRequest) GetBuildTarget() *chromiumos.BuildTarget {
if m != nil {
return m.BuildTarget
}
return nil
}
func (m *PrepareBinhostUploadsRequest) GetUri() string {
if m != nil {
return m.Uri
}
return ""
}
// Return all files to upload.
type PrepareBinhostUploadsResponse struct {
// Absolute chroot path to the local directory containing files to upload.
UploadsDir string `protobuf:"bytes,1,opt,name=uploads_dir,json=uploadsDir,proto3" json:"uploads_dir,omitempty"`
// All targets to be uploaded to the binhost.
UploadTargets []*PrepareBinhostUploadsResponse_UploadTarget `protobuf:"bytes,2,rep,name=upload_targets,json=uploadTargets,proto3" json:"upload_targets,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PrepareBinhostUploadsResponse) Reset() { *m = PrepareBinhostUploadsResponse{} }
func (m *PrepareBinhostUploadsResponse) String() string { return proto.CompactTextString(m) }
func (*PrepareBinhostUploadsResponse) ProtoMessage() {}
func (*PrepareBinhostUploadsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{1}
}
func (m *PrepareBinhostUploadsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareBinhostUploadsResponse.Unmarshal(m, b)
}
func (m *PrepareBinhostUploadsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PrepareBinhostUploadsResponse.Marshal(b, m, deterministic)
}
func (m *PrepareBinhostUploadsResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_PrepareBinhostUploadsResponse.Merge(m, src)
}
func (m *PrepareBinhostUploadsResponse) XXX_Size() int {
return xxx_messageInfo_PrepareBinhostUploadsResponse.Size(m)
}
func (m *PrepareBinhostUploadsResponse) XXX_DiscardUnknown() {
xxx_messageInfo_PrepareBinhostUploadsResponse.DiscardUnknown(m)
}
var xxx_messageInfo_PrepareBinhostUploadsResponse proto.InternalMessageInfo
func (m *PrepareBinhostUploadsResponse) GetUploadsDir() string {
if m != nil {
return m.UploadsDir
}
return ""
}
func (m *PrepareBinhostUploadsResponse) GetUploadTargets() []*PrepareBinhostUploadsResponse_UploadTarget {
if m != nil {
return m.UploadTargets
}
return nil
}
// An upload target is a file in the uploads_dir.
type PrepareBinhostUploadsResponse_UploadTarget struct {
// Paths relative to uploads_dir.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PrepareBinhostUploadsResponse_UploadTarget) Reset() {
*m = PrepareBinhostUploadsResponse_UploadTarget{}
}
func (m *PrepareBinhostUploadsResponse_UploadTarget) String() string {
return proto.CompactTextString(m)
}
func (*PrepareBinhostUploadsResponse_UploadTarget) ProtoMessage() {}
func (*PrepareBinhostUploadsResponse_UploadTarget) Descriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{1, 0}
}
func (m *PrepareBinhostUploadsResponse_UploadTarget) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrepareBinhostUploadsResponse_UploadTarget.Unmarshal(m, b)
}
func (m *PrepareBinhostUploadsResponse_UploadTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PrepareBinhostUploadsResponse_UploadTarget.Marshal(b, m, deterministic)
}
func (m *PrepareBinhostUploadsResponse_UploadTarget) XXX_Merge(src proto.Message) {
xxx_messageInfo_PrepareBinhostUploadsResponse_UploadTarget.Merge(m, src)
}
func (m *PrepareBinhostUploadsResponse_UploadTarget) XXX_Size() int {
return xxx_messageInfo_PrepareBinhostUploadsResponse_UploadTarget.Size(m)
}
func (m *PrepareBinhostUploadsResponse_UploadTarget) XXX_DiscardUnknown() {
xxx_messageInfo_PrepareBinhostUploadsResponse_UploadTarget.DiscardUnknown(m)
}
var xxx_messageInfo_PrepareBinhostUploadsResponse_UploadTarget proto.InternalMessageInfo
func (m *PrepareBinhostUploadsResponse_UploadTarget) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
// Set a binhost URL for the given build target.
type SetBinhostRequest struct {
// Build target to update binhost for.
BuildTarget *chromiumos.BuildTarget `protobuf:"bytes,1,opt,name=build_target,json=buildTarget,proto3" json:"build_target,omitempty"`
// Whether or not the binhost is private.
Private bool `protobuf:"varint,2,opt,name=private,proto3" json:"private,omitempty"`
// Binhost key to set or update.
Key BinhostKey `protobuf:"varint,3,opt,name=key,proto3,enum=chromite.api.BinhostKey" json:"key,omitempty"`
// URI storing all the binaries.
Uri string `protobuf:"bytes,4,opt,name=uri,proto3" json:"uri,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SetBinhostRequest) Reset() { *m = SetBinhostRequest{} }
func (m *SetBinhostRequest) String() string { return proto.CompactTextString(m) }
func (*SetBinhostRequest) ProtoMessage() {}
func (*SetBinhostRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{2}
}
func (m *SetBinhostRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetBinhostRequest.Unmarshal(m, b)
}
func (m *SetBinhostRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SetBinhostRequest.Marshal(b, m, deterministic)
}
func (m *SetBinhostRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_SetBinhostRequest.Merge(m, src)
}
func (m *SetBinhostRequest) XXX_Size() int {
return xxx_messageInfo_SetBinhostRequest.Size(m)
}
func (m *SetBinhostRequest) XXX_DiscardUnknown() {
xxx_messageInfo_SetBinhostRequest.DiscardUnknown(m)
}
var xxx_messageInfo_SetBinhostRequest proto.InternalMessageInfo
func (m *SetBinhostRequest) GetBuildTarget() *chromiumos.BuildTarget {
if m != nil {
return m.BuildTarget
}
return nil
}
func (m *SetBinhostRequest) GetPrivate() bool {
if m != nil {
return m.Private
}
return false
}
func (m *SetBinhostRequest) GetKey() BinhostKey {
if m != nil {
return m.Key
}
return BinhostKey_UNSPECIFIED
}
func (m *SetBinhostRequest) GetUri() string {
if m != nil {
return m.Uri
}
return ""
}
// Response for SetBinhost service call.
type SetBinhostResponse struct {
// Absolute path to the updated binhost conf file.
OutputFile string `protobuf:"bytes,1,opt,name=output_file,json=outputFile,proto3" json:"output_file,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SetBinhostResponse) Reset() { *m = SetBinhostResponse{} }
func (m *SetBinhostResponse) String() string { return proto.CompactTextString(m) }
func (*SetBinhostResponse) ProtoMessage() {}
func (*SetBinhostResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{3}
}
func (m *SetBinhostResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetBinhostResponse.Unmarshal(m, b)
}
func (m *SetBinhostResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SetBinhostResponse.Marshal(b, m, deterministic)
}
func (m *SetBinhostResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_SetBinhostResponse.Merge(m, src)
}
func (m *SetBinhostResponse) XXX_Size() int {
return xxx_messageInfo_SetBinhostResponse.Size(m)
}
func (m *SetBinhostResponse) XXX_DiscardUnknown() {
xxx_messageInfo_SetBinhostResponse.DiscardUnknown(m)
}
var xxx_messageInfo_SetBinhostResponse proto.InternalMessageInfo
func (m *SetBinhostResponse) GetOutputFile() string {
if m != nil {
return m.OutputFile
}
return ""
}
// Regenerate the build cache.
type RegenBuildCacheRequest struct {
// The type of overlays to push: "public", "private", or "both".
OverlayType OverlayType `protobuf:"varint,1,opt,name=overlay_type,json=overlayType,proto3,enum=chromite.api.OverlayType" json:"overlay_type,omitempty"`
// The build target used to create the sysroot.
Sysroot *Sysroot `protobuf:"bytes,2,opt,name=sysroot,proto3" json:"sysroot,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RegenBuildCacheRequest) Reset() { *m = RegenBuildCacheRequest{} }
func (m *RegenBuildCacheRequest) String() string { return proto.CompactTextString(m) }
func (*RegenBuildCacheRequest) ProtoMessage() {}
func (*RegenBuildCacheRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{4}
}
func (m *RegenBuildCacheRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RegenBuildCacheRequest.Unmarshal(m, b)
}
func (m *RegenBuildCacheRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RegenBuildCacheRequest.Marshal(b, m, deterministic)
}
func (m *RegenBuildCacheRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_RegenBuildCacheRequest.Merge(m, src)
}
func (m *RegenBuildCacheRequest) XXX_Size() int {
return xxx_messageInfo_RegenBuildCacheRequest.Size(m)
}
func (m *RegenBuildCacheRequest) XXX_DiscardUnknown() {
xxx_messageInfo_RegenBuildCacheRequest.DiscardUnknown(m)
}
var xxx_messageInfo_RegenBuildCacheRequest proto.InternalMessageInfo
func (m *RegenBuildCacheRequest) GetOverlayType() OverlayType {
if m != nil {
return m.OverlayType
}
return OverlayType_OVERLAYTYPE_UNSPECIFIED
}
func (m *RegenBuildCacheRequest) GetSysroot() *Sysroot {
if m != nil {
return m.Sysroot
}
return nil
}
type RegenBuildCacheResponse struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RegenBuildCacheResponse) Reset() { *m = RegenBuildCacheResponse{} }
func (m *RegenBuildCacheResponse) String() string { return proto.CompactTextString(m) }
func (*RegenBuildCacheResponse) ProtoMessage() {}
func (*RegenBuildCacheResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_d632782a0b1177ef, []int{5}
}
func (m *RegenBuildCacheResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RegenBuildCacheResponse.Unmarshal(m, b)
}
func (m *RegenBuildCacheResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RegenBuildCacheResponse.Marshal(b, m, deterministic)
}
func (m *RegenBuildCacheResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_RegenBuildCacheResponse.Merge(m, src)
}
func (m *RegenBuildCacheResponse) XXX_Size() int {
return xxx_messageInfo_RegenBuildCacheResponse.Size(m)
}
func (m *RegenBuildCacheResponse) XXX_DiscardUnknown() {
xxx_messageInfo_RegenBuildCacheResponse.DiscardUnknown(m)
}
var xxx_messageInfo_RegenBuildCacheResponse proto.InternalMessageInfo
func init() {
proto.RegisterEnum("chromite.api.BinhostKey", BinhostKey_name, BinhostKey_value)
proto.RegisterEnum("chromite.api.OverlayType", OverlayType_name, OverlayType_value)
proto.RegisterType((*PrepareBinhostUploadsRequest)(nil), "chromite.api.PrepareBinhostUploadsRequest")
proto.RegisterType((*PrepareBinhostUploadsResponse)(nil), "chromite.api.PrepareBinhostUploadsResponse")
proto.RegisterType((*PrepareBinhostUploadsResponse_UploadTarget)(nil), "chromite.api.PrepareBinhostUploadsResponse.UploadTarget")
proto.RegisterType((*SetBinhostRequest)(nil), "chromite.api.SetBinhostRequest")
proto.RegisterType((*SetBinhostResponse)(nil), "chromite.api.SetBinhostResponse")
proto.RegisterType((*RegenBuildCacheRequest)(nil), "chromite.api.RegenBuildCacheRequest")
proto.RegisterType((*RegenBuildCacheResponse)(nil), "chromite.api.RegenBuildCacheResponse")
}
func init() { proto.RegisterFile("chromite/api/binhost.proto", fileDescriptor_d632782a0b1177ef) }
var fileDescriptor_d632782a0b1177ef = []byte{
// 678 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xdd, 0x6e, 0xda, 0x4a,
0x10, 0x3e, 0x86, 0x28, 0x39, 0x19, 0x73, 0x88, 0xb3, 0xa7, 0x09, 0xc4, 0x4d, 0x14, 0x8a, 0x5a,
0x09, 0x51, 0xc9, 0x96, 0xa8, 0x5a, 0x45, 0x55, 0x6f, 0x80, 0x38, 0xc5, 0x2a, 0xc1, 0xc8, 0x36,
0x91, 0xd2, 0x1b, 0xcb, 0x21, 0x1b, 0x58, 0x15, 0x58, 0x77, 0x6d, 0x47, 0xe2, 0x09, 0xf2, 0x28,
0x7d, 0x8f, 0x48, 0xbd, 0xeb, 0xab, 0xe4, 0x1d, 0x2a, 0xbc, 0x26, 0xb6, 0x69, 0xd2, 0x1f, 0xa9,
0x77, 0x3b, 0xf3, 0x7d, 0x3b, 0xf3, 0xcd, 0xb7, 0x3f, 0x20, 0x0f, 0xc7, 0x8c, 0x4e, 0x49, 0x80,
0x55, 0xd7, 0x23, 0xea, 0x05, 0x99, 0x8d, 0xa9, 0x1f, 0x28, 0x1e, 0xa3, 0x01, 0x45, 0x85, 0x25,
0xa6, 0xb8, 0x1e, 0x91, 0xf7, 0xb3, 0xcc, 0x90, 0x4c, 0x2e, 0x1d, 0xd7, 0x23, 0x9c, 0x2b, 0x67,
0xeb, 0xf8, 0x73, 0x9f, 0x51, 0x1a, 0xd7, 0x91, 0x4b, 0x1c, 0x0b, 0xa7, 0xd4, 0x57, 0x87, 0x74,
0x3a, 0xa5, 0x33, 0x0e, 0x54, 0x27, 0xb0, 0xdf, 0x67, 0xd8, 0x73, 0x19, 0x6e, 0xf1, 0xc6, 0x03,
0x6f, 0x42, 0xdd, 0x4b, 0xdf, 0xc4, 0x9f, 0x43, 0xec, 0x07, 0xe8, 0x2d, 0x14, 0x78, 0x9f, 0xc0,
0x65, 0x23, 0x1c, 0x94, 0x85, 0x8a, 0x50, 0x13, 0x1b, 0x25, 0x25, 0xa9, 0xa7, 0xb4, 0x16, 0xb8,
0x1d, 0xc1, 0xa6, 0x78, 0x91, 0x04, 0x48, 0x82, 0x7c, 0xc8, 0x48, 0x39, 0x57, 0x11, 0x6a, 0x9b,
0xe6, 0x62, 0x59, 0xfd, 0x2a, 0xc0, 0xc1, 0x23, 0xed, 0x7c, 0x8f, 0xce, 0x7c, 0x8c, 0x0e, 0x41,
0x0c, 0x79, 0xca, 0xb9, 0x24, 0x2c, 0x6a, 0xb7, 0x69, 0x42, 0x9c, 0x3a, 0x26, 0x0c, 0x39, 0x50,
0xe4, 0x51, 0xac, 0xc8, 0x2f, 0xe7, 0x2a, 0xf9, 0x9a, 0xd8, 0x38, 0x52, 0xd2, 0x56, 0x29, 0x3f,
0xed, 0xa2, 0xf0, 0x38, 0xd6, 0xfc, 0x5f, 0x98, 0x8a, 0x7c, 0xb9, 0x0a, 0x85, 0x34, 0x8c, 0x10,
0xac, 0x79, 0x6e, 0x30, 0x8e, 0xa5, 0x44, 0xeb, 0xea, 0x17, 0x01, 0xb6, 0x2d, 0x1c, 0xc4, 0xd5,
0xff, 0x86, 0x57, 0x65, 0xd8, 0xf0, 0x18, 0xb9, 0x76, 0x03, 0x1c, 0xf9, 0xf5, 0xaf, 0xb9, 0x0c,
0x51, 0x1d, 0xf2, 0x9f, 0xf0, 0xbc, 0x9c, 0xaf, 0x08, 0xb5, 0x62, 0xa3, 0x9c, 0x9d, 0x32, 0x16,
0xf0, 0x01, 0xcf, 0xcd, 0x05, 0x69, 0xe9, 0xf8, 0x5a, 0xe2, 0xf8, 0x6b, 0x40, 0x69, 0xa1, 0x89,
0xcb, 0x34, 0x0c, 0xbc, 0x30, 0x70, 0xae, 0xc8, 0x04, 0x2f, 0x5d, 0xe6, 0xa9, 0x13, 0x32, 0xc1,
0xd5, 0x1b, 0x01, 0x76, 0x4d, 0x3c, 0xc2, 0xb3, 0x48, 0x70, 0xdb, 0x1d, 0x8e, 0xf1, 0x72, 0xca,
0x77, 0x50, 0xa0, 0xd7, 0x98, 0x4d, 0xdc, 0xb9, 0x13, 0xcc, 0x3d, 0xbe, 0xb9, 0xd8, 0xd8, 0xcb,
0x0a, 0x33, 0x38, 0xc3, 0x9e, 0x7b, 0xd8, 0x14, 0x69, 0x12, 0x20, 0x15, 0x36, 0xe2, 0x9b, 0x19,
0xcd, 0x29, 0x36, 0x76, 0xb2, 0x1b, 0x2d, 0x0e, 0x9a, 0x4b, 0x56, 0x75, 0x0f, 0x4a, 0x3f, 0x08,
0xe1, 0x53, 0xd4, 0x29, 0x40, 0x62, 0x00, 0xda, 0x02, 0x71, 0xd0, 0xb3, 0xfa, 0x5a, 0x5b, 0x3f,
0xd1, 0xb5, 0x63, 0xe9, 0x1f, 0xb4, 0x0b, 0xa8, 0x6f, 0x58, 0xb6, 0x35, 0x68, 0x9d, 0xea, 0xb6,
0xd3, 0xd2, 0x7b, 0x1d, 0xc3, 0xb2, 0x25, 0x01, 0x3d, 0x83, 0x83, 0x6e, 0xd3, 0xd6, 0x2c, 0xdb,
0x31, 0xb5, 0xae, 0xd6, 0xb4, 0x34, 0xa7, 0xdd, 0x31, 0x8d, 0x53, 0xed, 0x9e, 0x92, 0x43, 0x3b,
0xb0, 0xdd, 0x37, 0xb5, 0x93, 0xae, 0xfe, 0xbe, 0x93, 0xec, 0xcc, 0xd7, 0x6f, 0x04, 0x10, 0x53,
0x93, 0xa1, 0xa7, 0x50, 0x32, 0xce, 0x34, 0xb3, 0xdb, 0x3c, 0xb7, 0xcf, 0xfb, 0x9a, 0x93, 0x6d,
0xff, 0x04, 0xa4, 0x34, 0xd8, 0x32, 0xec, 0x8e, 0x24, 0x2c, 0x44, 0xa5, 0xb3, 0xfd, 0x41, 0xab,
0xab, 0xb7, 0xa5, 0x1c, 0x2a, 0xc1, 0xff, 0x99, 0xbc, 0xa9, 0x9f, 0x35, 0x6d, 0x4d, 0xca, 0xaf,
0x96, 0xe9, 0x19, 0x3d, 0x4d, 0x5a, 0x6b, 0x7c, 0xcb, 0x41, 0x31, 0x9e, 0xdd, 0xc2, 0xec, 0x9a,
0x0c, 0x31, 0xf2, 0x60, 0xe7, 0xc1, 0x4b, 0x8f, 0xea, 0xbf, 0xf5, 0x32, 0xa2, 0xc3, 0x95, 0x5f,
0xfe, 0xc1, 0x2b, 0x42, 0x06, 0x40, 0x72, 0xb7, 0xd0, 0xe1, 0xca, 0x41, 0xae, 0x3e, 0x0f, 0xb9,
0xf2, 0x38, 0x21, 0x2e, 0x78, 0x05, 0x5b, 0x2b, 0x67, 0x8d, 0x9e, 0x67, 0x37, 0x3d, 0x7c, 0x27,
0xe5, 0x17, 0xbf, 0x60, 0xf1, 0xfa, 0xd5, 0xf5, 0xdb, 0x3b, 0x39, 0x27, 0x09, 0xf2, 0xd6, 0xed,
0x9d, 0x2c, 0xc2, 0x46, 0xfc, 0xd5, 0x4a, 0xb9, 0xd6, 0xd1, 0xc7, 0x37, 0x23, 0x7a, 0xff, 0x4e,
0x15, 0xca, 0x46, 0x6a, 0xea, 0xc3, 0x24, 0xb3, 0x2b, 0xe6, 0xaa, 0xd1, 0x7f, 0xa9, 0x8e, 0xa8,
0x9a, 0xfe, 0x66, 0x2f, 0xd6, 0xa3, 0xf4, 0xab, 0xef, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x64,
0x59, 0xa1, 0xc5, 0x05, 0x00, 0x00,
}