aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <juerg.billeter@codethink.co.uk>2020-05-04 13:07:55 +0200
committerGitHub <noreply@github.com>2020-05-04 13:07:55 +0200
commit7802003e00901b4e740fe0ebec1243c221e02ae2 (patch)
tree7030d52e02e8ed7e64fdfd46ec5ef16e2a807cff
parent9ae473ea579681c023b19bd2f39f2f11ef4bc6a8 (diff)
downloadbazelbuild-remote-apis-7802003e00901b4e740fe0ebec1243c221e02ae2.tar.gz
Field-based node properties (#128)
This reduces the size of directory trees compared to string-based node properties by allowing node properties to be defined as regular protobuf fields in the new message type `NodeProperties`. The existing string-based node properties are also moved into the new message type to avoid having to define the same two fields (`repeated NodeProperty` and the new `NodeProperties`) in various places in the proto (and derivative protos). This also allows client/server code to handle all node properties with a single message object.
-rw-r--r--build/bazel/remote/execution/v2/BUILD1
-rw-r--r--build/bazel/remote/execution/v2/nodeproperties.md53
-rwxr-xr-xbuild/bazel/remote/execution/v2/remote_execution.pb.go586
-rw-r--r--build/bazel/remote/execution/v2/remote_execution.proto48
4 files changed, 362 insertions, 326 deletions
diff --git a/build/bazel/remote/execution/v2/BUILD b/build/bazel/remote/execution/v2/BUILD
index 9e60b32..5ea7ea5 100644
--- a/build/bazel/remote/execution/v2/BUILD
+++ b/build/bazel/remote/execution/v2/BUILD
@@ -12,6 +12,7 @@ proto_library(
"//build/bazel/semver:semver_proto",
"@com_google_protobuf//:duration_proto",
"@com_google_protobuf//:timestamp_proto",
+ "@com_google_protobuf//:wrappers_proto",
"@googleapis//:google_api_annotations_proto",
"@googleapis//:google_api_http_proto",
"@googleapis//:google_longrunning_operations_proto",
diff --git a/build/bazel/remote/execution/v2/nodeproperties.md b/build/bazel/remote/execution/v2/nodeproperties.md
deleted file mode 100644
index 2bfb0ee..0000000
--- a/build/bazel/remote/execution/v2/nodeproperties.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# Node Property Lexicon
-
-This lexicon defines standard property names and values that servers MAY
-support in the `NodeProperty` message.
-
-The following standard property `name`s are defined:
-
-* `UnixMode`: This describes the access rights of the file represented by the
- node. The value of this must be a string representation of the access mode
- bits rendered as a 4-digit octal. Multiple values are not allowed.
-
- Example:
- ```json
- // (Directory proto)
- {
- "files": [
- {
- "name": "foo",
- "digest": {...},
- "node_properties": [
- {
- "name": "UnixMode",
- "value": "4755"
- }
- ]
- }
- ]
- }
- ```
-
-* `MTime`: This describes the last data-modification time of a file represented
- by a node. The value of this must be a string encoding this time in the
- Timestamp format documented at https://www.ietf.org/rfc/rfc3339.txt. Multiple
- values are not allowed.
-
- Example:
- ```json
- // (Directory proto)
- {
- "files": [
- {
- "name": "foo",
- "digest": {...},
- "node_properties": [
- {
- "name": "MTime",
- "value": "2017-01-15T01:30:15.01Z"
- }
- ]
- }
- ]
- }
- ```
diff --git a/build/bazel/remote/execution/v2/remote_execution.pb.go b/build/bazel/remote/execution/v2/remote_execution.pb.go
index 9a50cab..354ac73 100755
--- a/build/bazel/remote/execution/v2/remote_execution.pb.go
+++ b/build/bazel/remote/execution/v2/remote_execution.pb.go
@@ -10,6 +10,7 @@ import (
proto "github.com/golang/protobuf/proto"
duration "github.com/golang/protobuf/ptypes/duration"
timestamp "github.com/golang/protobuf/ptypes/timestamp"
+ wrappers "github.com/golang/protobuf/ptypes/wrappers"
_ "google.golang.org/genproto/googleapis/api/annotations"
longrunning "google.golang.org/genproto/googleapis/longrunning"
status "google.golang.org/genproto/googleapis/rpc/status"
@@ -61,7 +62,7 @@ func (x ExecutionStage_Value) String() string {
}
func (ExecutionStage_Value) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{20, 0}
+ return fileDescriptor_c43847ba40caac95, []int{21, 0}
}
type DigestFunction_Value int32
@@ -101,7 +102,7 @@ func (x DigestFunction_Value) String() string {
}
func (DigestFunction_Value) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{35, 0}
+ return fileDescriptor_c43847ba40caac95, []int{36, 0}
}
type SymlinkAbsolutePathStrategy_Value int32
@@ -129,7 +130,7 @@ func (x SymlinkAbsolutePathStrategy_Value) String() string {
}
func (SymlinkAbsolutePathStrategy_Value) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{38, 0}
+ return fileDescriptor_c43847ba40caac95, []int{39, 0}
}
type Action struct {
@@ -427,7 +428,7 @@ type Directory struct {
Files []*FileNode `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
Directories []*DirectoryNode `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
Symlinks []*SymlinkNode `protobuf:"bytes,3,rep,name=symlinks,proto3" json:"symlinks,omitempty"`
- NodeProperties []*NodeProperty `protobuf:"bytes,4,rep,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
+ NodeProperties *NodeProperties `protobuf:"bytes,5,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -479,7 +480,7 @@ func (m *Directory) GetSymlinks() []*SymlinkNode {
return nil
}
-func (m *Directory) GetNodeProperties() []*NodeProperty {
+func (m *Directory) GetNodeProperties() *NodeProperties {
if m != nil {
return m.NodeProperties
}
@@ -533,11 +534,66 @@ func (m *NodeProperty) GetValue() string {
return ""
}
+type NodeProperties struct {
+ Properties []*NodeProperty `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
+ Mtime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=mtime,proto3" json:"mtime,omitempty"`
+ UnixMode *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=unix_mode,json=unixMode,proto3" json:"unix_mode,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *NodeProperties) Reset() { *m = NodeProperties{} }
+func (m *NodeProperties) String() string { return proto.CompactTextString(m) }
+func (*NodeProperties) ProtoMessage() {}
+func (*NodeProperties) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c43847ba40caac95, []int{5}
+}
+
+func (m *NodeProperties) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_NodeProperties.Unmarshal(m, b)
+}
+func (m *NodeProperties) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_NodeProperties.Marshal(b, m, deterministic)
+}
+func (m *NodeProperties) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NodeProperties.Merge(m, src)
+}
+func (m *NodeProperties) XXX_Size() int {
+ return xxx_messageInfo_NodeProperties.Size(m)
+}
+func (m *NodeProperties) XXX_DiscardUnknown() {
+ xxx_messageInfo_NodeProperties.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_NodeProperties proto.InternalMessageInfo
+
+func (m *NodeProperties) GetProperties() []*NodeProperty {
+ if m != nil {
+ return m.Properties
+ }
+ return nil
+}
+
+func (m *NodeProperties) GetMtime() *timestamp.Timestamp {
+ if m != nil {
+ return m.Mtime
+ }
+ return nil
+}
+
+func (m *NodeProperties) GetUnixMode() *wrappers.UInt32Value {
+ if m != nil {
+ return m.UnixMode
+ }
+ return nil
+}
+
type FileNode struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
IsExecutable bool `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
- NodeProperties []*NodeProperty `protobuf:"bytes,5,rep,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
+ NodeProperties *NodeProperties `protobuf:"bytes,6,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -547,7 +603,7 @@ func (m *FileNode) Reset() { *m = FileNode{} }
func (m *FileNode) String() string { return proto.CompactTextString(m) }
func (*FileNode) ProtoMessage() {}
func (*FileNode) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{5}
+ return fileDescriptor_c43847ba40caac95, []int{6}
}
func (m *FileNode) XXX_Unmarshal(b []byte) error {
@@ -589,7 +645,7 @@ func (m *FileNode) GetIsExecutable() bool {
return false
}
-func (m *FileNode) GetNodeProperties() []*NodeProperty {
+func (m *FileNode) GetNodeProperties() *NodeProperties {
if m != nil {
return m.NodeProperties
}
@@ -608,7 +664,7 @@ func (m *DirectoryNode) Reset() { *m = DirectoryNode{} }
func (m *DirectoryNode) String() string { return proto.CompactTextString(m) }
func (*DirectoryNode) ProtoMessage() {}
func (*DirectoryNode) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{6}
+ return fileDescriptor_c43847ba40caac95, []int{7}
}
func (m *DirectoryNode) XXX_Unmarshal(b []byte) error {
@@ -646,7 +702,7 @@ func (m *DirectoryNode) GetDigest() *Digest {
type SymlinkNode struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Target string `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
- NodeProperties []*NodeProperty `protobuf:"bytes,3,rep,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
+ NodeProperties *NodeProperties `protobuf:"bytes,4,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -656,7 +712,7 @@ func (m *SymlinkNode) Reset() { *m = SymlinkNode{} }
func (m *SymlinkNode) String() string { return proto.CompactTextString(m) }
func (*SymlinkNode) ProtoMessage() {}
func (*SymlinkNode) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{7}
+ return fileDescriptor_c43847ba40caac95, []int{8}
}
func (m *SymlinkNode) XXX_Unmarshal(b []byte) error {
@@ -691,7 +747,7 @@ func (m *SymlinkNode) GetTarget() string {
return ""
}
-func (m *SymlinkNode) GetNodeProperties() []*NodeProperty {
+func (m *SymlinkNode) GetNodeProperties() *NodeProperties {
if m != nil {
return m.NodeProperties
}
@@ -710,7 +766,7 @@ func (m *Digest) Reset() { *m = Digest{} }
func (m *Digest) String() string { return proto.CompactTextString(m) }
func (*Digest) ProtoMessage() {}
func (*Digest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{8}
+ return fileDescriptor_c43847ba40caac95, []int{9}
}
func (m *Digest) XXX_Unmarshal(b []byte) error {
@@ -765,7 +821,7 @@ func (m *ExecutedActionMetadata) Reset() { *m = ExecutedActionMetadata{}
func (m *ExecutedActionMetadata) String() string { return proto.CompactTextString(m) }
func (*ExecutedActionMetadata) ProtoMessage() {}
func (*ExecutedActionMetadata) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{9}
+ return fileDescriptor_c43847ba40caac95, []int{10}
}
func (m *ExecutedActionMetadata) XXX_Unmarshal(b []byte) error {
@@ -877,7 +933,7 @@ func (m *ActionResult) Reset() { *m = ActionResult{} }
func (m *ActionResult) String() string { return proto.CompactTextString(m) }
func (*ActionResult) ProtoMessage() {}
func (*ActionResult) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{10}
+ return fileDescriptor_c43847ba40caac95, []int{11}
}
func (m *ActionResult) XXX_Unmarshal(b []byte) error {
@@ -980,7 +1036,7 @@ type OutputFile struct {
Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
IsExecutable bool `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
Contents []byte `protobuf:"bytes,5,opt,name=contents,proto3" json:"contents,omitempty"`
- NodeProperties []*NodeProperty `protobuf:"bytes,6,rep,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
+ NodeProperties *NodeProperties `protobuf:"bytes,7,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -990,7 +1046,7 @@ func (m *OutputFile) Reset() { *m = OutputFile{} }
func (m *OutputFile) String() string { return proto.CompactTextString(m) }
func (*OutputFile) ProtoMessage() {}
func (*OutputFile) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{11}
+ return fileDescriptor_c43847ba40caac95, []int{12}
}
func (m *OutputFile) XXX_Unmarshal(b []byte) error {
@@ -1039,7 +1095,7 @@ func (m *OutputFile) GetContents() []byte {
return nil
}
-func (m *OutputFile) GetNodeProperties() []*NodeProperty {
+func (m *OutputFile) GetNodeProperties() *NodeProperties {
if m != nil {
return m.NodeProperties
}
@@ -1058,7 +1114,7 @@ func (m *Tree) Reset() { *m = Tree{} }
func (m *Tree) String() string { return proto.CompactTextString(m) }
func (*Tree) ProtoMessage() {}
func (*Tree) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{12}
+ return fileDescriptor_c43847ba40caac95, []int{13}
}
func (m *Tree) XXX_Unmarshal(b []byte) error {
@@ -1105,7 +1161,7 @@ func (m *OutputDirectory) Reset() { *m = OutputDirectory{} }
func (m *OutputDirectory) String() string { return proto.CompactTextString(m) }
func (*OutputDirectory) ProtoMessage() {}
func (*OutputDirectory) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{13}
+ return fileDescriptor_c43847ba40caac95, []int{14}
}
func (m *OutputDirectory) XXX_Unmarshal(b []byte) error {
@@ -1143,7 +1199,7 @@ func (m *OutputDirectory) GetTreeDigest() *Digest {
type OutputSymlink struct {
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
Target string `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
- NodeProperties []*NodeProperty `protobuf:"bytes,3,rep,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
+ NodeProperties *NodeProperties `protobuf:"bytes,4,opt,name=node_properties,json=nodeProperties,proto3" json:"node_properties,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1153,7 +1209,7 @@ func (m *OutputSymlink) Reset() { *m = OutputSymlink{} }
func (m *OutputSymlink) String() string { return proto.CompactTextString(m) }
func (*OutputSymlink) ProtoMessage() {}
func (*OutputSymlink) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{14}
+ return fileDescriptor_c43847ba40caac95, []int{15}
}
func (m *OutputSymlink) XXX_Unmarshal(b []byte) error {
@@ -1188,7 +1244,7 @@ func (m *OutputSymlink) GetTarget() string {
return ""
}
-func (m *OutputSymlink) GetNodeProperties() []*NodeProperty {
+func (m *OutputSymlink) GetNodeProperties() *NodeProperties {
if m != nil {
return m.NodeProperties
}
@@ -1206,7 +1262,7 @@ func (m *ExecutionPolicy) Reset() { *m = ExecutionPolicy{} }
func (m *ExecutionPolicy) String() string { return proto.CompactTextString(m) }
func (*ExecutionPolicy) ProtoMessage() {}
func (*ExecutionPolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{15}
+ return fileDescriptor_c43847ba40caac95, []int{16}
}
func (m *ExecutionPolicy) XXX_Unmarshal(b []byte) error {
@@ -1245,7 +1301,7 @@ func (m *ResultsCachePolicy) Reset() { *m = ResultsCachePolicy{} }
func (m *ResultsCachePolicy) String() string { return proto.CompactTextString(m) }
func (*ResultsCachePolicy) ProtoMessage() {}
func (*ResultsCachePolicy) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{16}
+ return fileDescriptor_c43847ba40caac95, []int{17}
}
func (m *ResultsCachePolicy) XXX_Unmarshal(b []byte) error {
@@ -1288,7 +1344,7 @@ func (m *ExecuteRequest) Reset() { *m = ExecuteRequest{} }
func (m *ExecuteRequest) String() string { return proto.CompactTextString(m) }
func (*ExecuteRequest) ProtoMessage() {}
func (*ExecuteRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{17}
+ return fileDescriptor_c43847ba40caac95, []int{18}
}
func (m *ExecuteRequest) XXX_Unmarshal(b []byte) error {
@@ -1356,7 +1412,7 @@ func (m *LogFile) Reset() { *m = LogFile{} }
func (m *LogFile) String() string { return proto.CompactTextString(m) }
func (*LogFile) ProtoMessage() {}
func (*LogFile) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{18}
+ return fileDescriptor_c43847ba40caac95, []int{19}
}
func (m *LogFile) XXX_Unmarshal(b []byte) error {
@@ -1406,7 +1462,7 @@ func (m *ExecuteResponse) Reset() { *m = ExecuteResponse{} }
func (m *ExecuteResponse) String() string { return proto.CompactTextString(m) }
func (*ExecuteResponse) ProtoMessage() {}
func (*ExecuteResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{19}
+ return fileDescriptor_c43847ba40caac95, []int{20}
}
func (m *ExecuteResponse) XXX_Unmarshal(b []byte) error {
@@ -1472,7 +1528,7 @@ func (m *ExecutionStage) Reset() { *m = ExecutionStage{} }
func (m *ExecutionStage) String() string { return proto.CompactTextString(m) }
func (*ExecutionStage) ProtoMessage() {}
func (*ExecutionStage) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{20}
+ return fileDescriptor_c43847ba40caac95, []int{21}
}
func (m *ExecutionStage) XXX_Unmarshal(b []byte) error {
@@ -1507,7 +1563,7 @@ func (m *ExecuteOperationMetadata) Reset() { *m = ExecuteOperationMetada
func (m *ExecuteOperationMetadata) String() string { return proto.CompactTextString(m) }
func (*ExecuteOperationMetadata) ProtoMessage() {}
func (*ExecuteOperationMetadata) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{21}
+ return fileDescriptor_c43847ba40caac95, []int{22}
}
func (m *ExecuteOperationMetadata) XXX_Unmarshal(b []byte) error {
@@ -1567,7 +1623,7 @@ func (m *WaitExecutionRequest) Reset() { *m = WaitExecutionRequest{} }
func (m *WaitExecutionRequest) String() string { return proto.CompactTextString(m) }
func (*WaitExecutionRequest) ProtoMessage() {}
func (*WaitExecutionRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{22}
+ return fileDescriptor_c43847ba40caac95, []int{23}
}
func (m *WaitExecutionRequest) XXX_Unmarshal(b []byte) error {
@@ -1610,7 +1666,7 @@ func (m *GetActionResultRequest) Reset() { *m = GetActionResultRequest{}
func (m *GetActionResultRequest) String() string { return proto.CompactTextString(m) }
func (*GetActionResultRequest) ProtoMessage() {}
func (*GetActionResultRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{23}
+ return fileDescriptor_c43847ba40caac95, []int{24}
}
func (m *GetActionResultRequest) XXX_Unmarshal(b []byte) error {
@@ -1680,7 +1736,7 @@ func (m *UpdateActionResultRequest) Reset() { *m = UpdateActionResultReq
func (m *UpdateActionResultRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateActionResultRequest) ProtoMessage() {}
func (*UpdateActionResultRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{24}
+ return fileDescriptor_c43847ba40caac95, []int{25}
}
func (m *UpdateActionResultRequest) XXX_Unmarshal(b []byte) error {
@@ -1741,7 +1797,7 @@ func (m *FindMissingBlobsRequest) Reset() { *m = FindMissingBlobsRequest
func (m *FindMissingBlobsRequest) String() string { return proto.CompactTextString(m) }
func (*FindMissingBlobsRequest) ProtoMessage() {}
func (*FindMissingBlobsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{25}
+ return fileDescriptor_c43847ba40caac95, []int{26}
}
func (m *FindMissingBlobsRequest) XXX_Unmarshal(b []byte) error {
@@ -1787,7 +1843,7 @@ func (m *FindMissingBlobsResponse) Reset() { *m = FindMissingBlobsRespon
func (m *FindMissingBlobsResponse) String() string { return proto.CompactTextString(m) }
func (*FindMissingBlobsResponse) ProtoMessage() {}
func (*FindMissingBlobsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{26}
+ return fileDescriptor_c43847ba40caac95, []int{27}
}
func (m *FindMissingBlobsResponse) XXX_Unmarshal(b []byte) error {
@@ -1827,7 +1883,7 @@ func (m *BatchUpdateBlobsRequest) Reset() { *m = BatchUpdateBlobsRequest
func (m *BatchUpdateBlobsRequest) String() string { return proto.CompactTextString(m) }
func (*BatchUpdateBlobsRequest) ProtoMessage() {}
func (*BatchUpdateBlobsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{27}
+ return fileDescriptor_c43847ba40caac95, []int{28}
}
func (m *BatchUpdateBlobsRequest) XXX_Unmarshal(b []byte) error {
@@ -1874,7 +1930,7 @@ func (m *BatchUpdateBlobsRequest_Request) Reset() { *m = BatchUpdateBlob
func (m *BatchUpdateBlobsRequest_Request) String() string { return proto.CompactTextString(m) }
func (*BatchUpdateBlobsRequest_Request) ProtoMessage() {}
func (*BatchUpdateBlobsRequest_Request) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{27, 0}
+ return fileDescriptor_c43847ba40caac95, []int{28, 0}
}
func (m *BatchUpdateBlobsRequest_Request) XXX_Unmarshal(b []byte) error {
@@ -1920,7 +1976,7 @@ func (m *BatchUpdateBlobsResponse) Reset() { *m = BatchUpdateBlobsRespon
func (m *BatchUpdateBlobsResponse) String() string { return proto.CompactTextString(m) }
func (*BatchUpdateBlobsResponse) ProtoMessage() {}
func (*BatchUpdateBlobsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{28}
+ return fileDescriptor_c43847ba40caac95, []int{29}
}
func (m *BatchUpdateBlobsResponse) XXX_Unmarshal(b []byte) error {
@@ -1960,7 +2016,7 @@ func (m *BatchUpdateBlobsResponse_Response) Reset() { *m = BatchUpdateBl
func (m *BatchUpdateBlobsResponse_Response) String() string { return proto.CompactTextString(m) }
func (*BatchUpdateBlobsResponse_Response) ProtoMessage() {}
func (*BatchUpdateBlobsResponse_Response) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{28, 0}
+ return fileDescriptor_c43847ba40caac95, []int{29, 0}
}
func (m *BatchUpdateBlobsResponse_Response) XXX_Unmarshal(b []byte) error {
@@ -2007,7 +2063,7 @@ func (m *BatchReadBlobsRequest) Reset() { *m = BatchReadBlobsRequest{} }
func (m *BatchReadBlobsRequest) String() string { return proto.CompactTextString(m) }
func (*BatchReadBlobsRequest) ProtoMessage() {}
func (*BatchReadBlobsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{29}
+ return fileDescriptor_c43847ba40caac95, []int{30}
}
func (m *BatchReadBlobsRequest) XXX_Unmarshal(b []byte) error {
@@ -2053,7 +2109,7 @@ func (m *BatchReadBlobsResponse) Reset() { *m = BatchReadBlobsResponse{}
func (m *BatchReadBlobsResponse) String() string { return proto.CompactTextString(m) }
func (*BatchReadBlobsResponse) ProtoMessage() {}
func (*BatchReadBlobsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{30}
+ return fileDescriptor_c43847ba40caac95, []int{31}
}
func (m *BatchReadBlobsResponse) XXX_Unmarshal(b []byte) error {
@@ -2094,7 +2150,7 @@ func (m *BatchReadBlobsResponse_Response) Reset() { *m = BatchReadBlobsR
func (m *BatchReadBlobsResponse_Response) String() string { return proto.CompactTextString(m) }
func (*BatchReadBlobsResponse_Response) ProtoMessage() {}
func (*BatchReadBlobsResponse_Response) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{30, 0}
+ return fileDescriptor_c43847ba40caac95, []int{31, 0}
}
func (m *BatchReadBlobsResponse_Response) XXX_Unmarshal(b []byte) error {
@@ -2150,7 +2206,7 @@ func (m *GetTreeRequest) Reset() { *m = GetTreeRequest{} }
func (m *GetTreeRequest) String() string { return proto.CompactTextString(m) }
func (*GetTreeRequest) ProtoMessage() {}
func (*GetTreeRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{31}
+ return fileDescriptor_c43847ba40caac95, []int{32}
}
func (m *GetTreeRequest) XXX_Unmarshal(b []byte) error {
@@ -2211,7 +2267,7 @@ func (m *GetTreeResponse) Reset() { *m = GetTreeResponse{} }
func (m *GetTreeResponse) String() string { return proto.CompactTextString(m) }
func (*GetTreeResponse) ProtoMessage() {}
func (*GetTreeResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{32}
+ return fileDescriptor_c43847ba40caac95, []int{33}
}
func (m *GetTreeResponse) XXX_Unmarshal(b []byte) error {
@@ -2257,7 +2313,7 @@ func (m *GetCapabilitiesRequest) Reset() { *m = GetCapabilitiesRequest{}
func (m *GetCapabilitiesRequest) String() string { return proto.CompactTextString(m) }
func (*GetCapabilitiesRequest) ProtoMessage() {}
func (*GetCapabilitiesRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{33}
+ return fileDescriptor_c43847ba40caac95, []int{34}
}
func (m *GetCapabilitiesRequest) XXX_Unmarshal(b []byte) error {
@@ -2300,7 +2356,7 @@ func (m *ServerCapabilities) Reset() { *m = ServerCapabilities{} }
func (m *ServerCapabilities) String() string { return proto.CompactTextString(m) }
func (*ServerCapabilities) ProtoMessage() {}
func (*ServerCapabilities) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{34}
+ return fileDescriptor_c43847ba40caac95, []int{35}
}
func (m *ServerCapabilities) XXX_Unmarshal(b []byte) error {
@@ -2366,7 +2422,7 @@ func (m *DigestFunction) Reset() { *m = DigestFunction{} }
func (m *DigestFunction) String() string { return proto.CompactTextString(m) }
func (*DigestFunction) ProtoMessage() {}
func (*DigestFunction) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{35}
+ return fileDescriptor_c43847ba40caac95, []int{36}
}
func (m *DigestFunction) XXX_Unmarshal(b []byte) error {
@@ -2398,7 +2454,7 @@ func (m *ActionCacheUpdateCapabilities) Reset() { *m = ActionCacheUpdate
func (m *ActionCacheUpdateCapabilities) String() string { return proto.CompactTextString(m) }
func (*ActionCacheUpdateCapabilities) ProtoMessage() {}
func (*ActionCacheUpdateCapabilities) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{36}
+ return fileDescriptor_c43847ba40caac95, []int{37}
}
func (m *ActionCacheUpdateCapabilities) XXX_Unmarshal(b []byte) error {
@@ -2437,7 +2493,7 @@ func (m *PriorityCapabilities) Reset() { *m = PriorityCapabilities{} }
func (m *PriorityCapabilities) String() string { return proto.CompactTextString(m) }
func (*PriorityCapabilities) ProtoMessage() {}
func (*PriorityCapabilities) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{37}
+ return fileDescriptor_c43847ba40caac95, []int{38}
}
func (m *PriorityCapabilities) XXX_Unmarshal(b []byte) error {
@@ -2477,7 +2533,7 @@ func (m *PriorityCapabilities_PriorityRange) Reset() { *m = PriorityCapa
func (m *PriorityCapabilities_PriorityRange) String() string { return proto.CompactTextString(m) }
func (*PriorityCapabilities_PriorityRange) ProtoMessage() {}
func (*PriorityCapabilities_PriorityRange) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{37, 0}
+ return fileDescriptor_c43847ba40caac95, []int{38, 0}
}
func (m *PriorityCapabilities_PriorityRange) XXX_Unmarshal(b []byte) error {
@@ -2522,7 +2578,7 @@ func (m *SymlinkAbsolutePathStrategy) Reset() { *m = SymlinkAbsolutePath
func (m *SymlinkAbsolutePathStrategy) String() string { return proto.CompactTextString(m) }
func (*SymlinkAbsolutePathStrategy) ProtoMessage() {}
func (*SymlinkAbsolutePathStrategy) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{38}
+ return fileDescriptor_c43847ba40caac95, []int{39}
}
func (m *SymlinkAbsolutePathStrategy) XXX_Unmarshal(b []byte) error {
@@ -2558,7 +2614,7 @@ func (m *CacheCapabilities) Reset() { *m = CacheCapabilities{} }
func (m *CacheCapabilities) String() string { return proto.CompactTextString(m) }
func (*CacheCapabilities) ProtoMessage() {}
func (*CacheCapabilities) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{39}
+ return fileDescriptor_c43847ba40caac95, []int{40}
}
func (m *CacheCapabilities) XXX_Unmarshal(b []byte) error {
@@ -2628,7 +2684,7 @@ func (m *ExecutionCapabilities) Reset() { *m = ExecutionCapabilities{} }
func (m *ExecutionCapabilities) String() string { return proto.CompactTextString(m) }
func (*ExecutionCapabilities) ProtoMessage() {}
func (*ExecutionCapabilities) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{40}
+ return fileDescriptor_c43847ba40caac95, []int{41}
}
func (m *ExecutionCapabilities) XXX_Unmarshal(b []byte) error {
@@ -2689,7 +2745,7 @@ func (m *ToolDetails) Reset() { *m = ToolDetails{} }
func (m *ToolDetails) String() string { return proto.CompactTextString(m) }
func (*ToolDetails) ProtoMessage() {}
func (*ToolDetails) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{41}
+ return fileDescriptor_c43847ba40caac95, []int{42}
}
func (m *ToolDetails) XXX_Unmarshal(b []byte) error {
@@ -2738,7 +2794,7 @@ func (m *RequestMetadata) Reset() { *m = RequestMetadata{} }
func (m *RequestMetadata) String() string { return proto.CompactTextString(m) }
func (*RequestMetadata) ProtoMessage() {}
func (*RequestMetadata) Descriptor() ([]byte, []int) {
- return fileDescriptor_c43847ba40caac95, []int{42}
+ return fileDescriptor_c43847ba40caac95, []int{43}
}
func (m *RequestMetadata) XXX_Unmarshal(b []byte) error {
@@ -2798,6 +2854,7 @@ func init() {
proto.RegisterType((*Platform_Property)(nil), "build.bazel.remote.execution.v2.Platform.Property")
proto.RegisterType((*Directory)(nil), "build.bazel.remote.execution.v2.Directory")
proto.RegisterType((*NodeProperty)(nil), "build.bazel.remote.execution.v2.NodeProperty")
+ proto.RegisterType((*NodeProperties)(nil), "build.bazel.remote.execution.v2.NodeProperties")
proto.RegisterType((*FileNode)(nil), "build.bazel.remote.execution.v2.FileNode")
proto.RegisterType((*DirectoryNode)(nil), "build.bazel.remote.execution.v2.DirectoryNode")
proto.RegisterType((*SymlinkNode)(nil), "build.bazel.remote.execution.v2.SymlinkNode")
@@ -2848,213 +2905,218 @@ func init() {
}
var fileDescriptor_c43847ba40caac95 = []byte{
- // 3288 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4d, 0x6c, 0x1b, 0xd7,
- 0xf1, 0xff, 0x2f, 0x49, 0x51, 0xe4, 0x90, 0x12, 0xe9, 0x17, 0x59, 0xa6, 0xe9, 0x38, 0xb6, 0x37,
- 0x48, 0xfe, 0xfe, 0xcb, 0x31, 0x69, 0xd3, 0xb1, 0xe3, 0xbf, 0xda, 0x24, 0xd5, 0x07, 0x1d, 0xdb,
- 0x91, 0x25, 0x76, 0x29, 0xcb, 0x4e, 0x9b, 0x7a, 0xb3, 0xe4, 0x3e, 0x51, 0x5b, 0x93, 0xfb, 0xe8,
- 0xdd, 0xa5, 0x6c, 0x39, 0x30, 0x5a, 0x14, 0x48, 0x03, 0xb4, 0x40, 0xda, 0x20, 0x3d, 0xb5, 0xb7,
- 0x1e, 0x8b, 0x1e, 0x7b, 0xe9, 0x17, 0x50, 0xf4, 0xd4, 0xa2, 0xb7, 0x16, 0x6d, 0x8f, 0x05, 0x8a,
- 0x5e, 0x0a, 0xf4, 0xda, 0x4b, 0xd1, 0x43, 0xf1, 0x3e, 0xf6, 0x8b, 0x5c, 0x79, 0x49, 0x59, 0x09,
- 0x7a, 0xe2, 0xee, 0xbc, 0x99, 0xdf, 0x9b, 0x37, 0x6f, 0xde, 0xcc, 0xbc, 0x59, 0xc2, 0x95, 0xd6,
- 0xc0, 0xe8, 0xea, 0xd5, 0x96, 0xf6, 0x18, 0x77, 0xab, 0x16, 0xee, 0x11, 0x07, 0x57, 0xf1, 0x23,
- 0xdc, 0x1e, 0x38, 0x06, 0x31, 0xab, 0xbb, 0x35, 0x41, 0x53, 0x3d, 0x5a, 0xa5, 0x6f, 0x11, 0x87,
- 0xa0, 0x53, 0x4c, 0xae, 0xc2, 0xe4, 0x2a, 0x9c, 0xa7, 0xe2, 0xf3, 0xec, 0xd6, 0xca, 0xa7, 0x82,
- 0xc0, 0x36, 0xee, 0xed, 0x62, 0x4b, 0xfc, 0x70, 0x84, 0xf2, 0xf3, 0x1d, 0x42, 0x3a, 0x5d, 0x5c,
- 0xd5, 0xfa, 0x46, 0x55, 0x33, 0x4d, 0xe2, 0x68, 0x54, 0xd4, 0x16, 0xa3, 0x2f, 0x8a, 0xd1, 0x2e,
- 0x31, 0x3b, 0xd6, 0xc0, 0x34, 0x0d, 0xb3, 0x53, 0x25, 0x7d, 0x6c, 0x85, 0x98, 0x5e, 0x10, 0x4c,
- 0xec, 0xad, 0x35, 0xd8, 0xae, 0xea, 0x03, 0xce, 0x20, 0xc6, 0x4f, 0x0d, 0x8f, 0x3b, 0x46, 0x0f,
- 0xdb, 0x8e, 0xd6, 0xeb, 0x0b, 0x86, 0x63, 0x82, 0xc1, 0xea, 0xb7, 0xab, 0xb6, 0xa3, 0x39, 0x03,
- 0x81, 0x2c, 0x7f, 0x37, 0x01, 0xe9, 0xa5, 0x36, 0x85, 0x42, 0xeb, 0x30, 0xdb, 0x26, 0xbd, 0x9e,
- 0x66, 0xea, 0xaa, 0x6e, 0x74, 0xb0, 0xed, 0x94, 0xa4, 0xd3, 0xd2, 0xd9, 0x5c, 0xed, 0x7f, 0x2b,
- 0x31, 0x26, 0xa8, 0xac, 0x32, 0x76, 0x65, 0x46, 0x88, 0xf3, 0x57, 0xd4, 0x84, 0x23, 0x86, 0xd9,
- 0x1f, 0x38, 0xaa, 0x45, 0x88, 0xe3, 0x42, 0x26, 0x26, 0x83, 0x2c, 0x30, 0x04, 0x85, 0x10, 0x47,
- 0x80, 0x5e, 0x82, 0x69, 0xba, 0x36, 0x32, 0x70, 0x4a, 0x69, 0x06, 0x75, 0xbc, 0xc2, 0x97, 0x56,
- 0x71, 0xd7, 0x5e, 0x59, 0x15, 0xb6, 0x51, 0x5c, 0x4e, 0x74, 0x1a, 0xf2, 0x3a, 0x51, 0x4d, 0xe2,
- 0xa8, 0x6d, 0xad, 0xbd, 0x83, 0x4b, 0xd3, 0xa7, 0xa5, 0xb3, 0x19, 0x05, 0x74, 0xb2, 0x4e, 0x9c,
- 0x15, 0x4a, 0xb9, 0x99, 0xca, 0x24, 0x8b, 0xe9, 0x9b, 0xa9, 0x4c, 0xa6, 0x98, 0x95, 0xff, 0x95,
- 0x84, 0xe9, 0x15, 0xbe, 0x12, 0xf4, 0x3c, 0x64, 0x35, 0xab, 0x33, 0xe8, 0x61, 0xd3, 0xb1, 0x4b,
- 0xd2, 0xe9, 0xe4, 0xd9, 0xac, 0xe2, 0x13, 0xd0, 0x03, 0x38, 0x8a, 0xcd, 0x5d, 0xc3, 0x22, 0x26,
- 0x7d, 0x57, 0x77, 0x35, 0xcb, 0xd0, 0x5a, 0x5d, 0x6c, 0x97, 0x12, 0xa7, 0x93, 0x67, 0x73, 0xb5,
- 0xcf, 0xc7, 0xae, 0x52, 0x4c, 0x53, 0xa9, 0xfb, 0x28, 0x5b, 0x02, 0x44, 0x99, 0xc3, 0xa3, 0x44,
- 0x1b, 0x9d, 0x81, 0x3c, 0x19, 0x38, 0xd4, 0xaa, 0xdb, 0x06, 0x9d, 0x29, 0xc9, 0x74, 0xca, 0x71,
- 0xda, 0x35, 0x4a, 0x42, 0xe7, 0x01, 0x09, 0x16, 0xdd, 0xb0, 0x70, 0xdb, 0x21, 0x96, 0x81, 0xed,
- 0x52, 0x8a, 0x31, 0x1e, 0xe1, 0x23, 0xab, 0xfe, 0x40, 0x00, 0xb1, 0xaf, 0x39, 0x3b, 0x76, 0x69,
- 0x3a, 0x88, 0xd8, 0xa0, 0x24, 0x54, 0x87, 0x4c, 0xbf, 0xab, 0x39, 0xdb, 0xc4, 0xea, 0x95, 0xa6,
- 0x98, 0xd5, 0xff, 0x2f, 0x76, 0x69, 0x0d, 0x21, 0xa0, 0x78, 0xa2, 0xe8, 0x1c, 0x1c, 0x79, 0x48,
- 0xac, 0xfb, 0x86, 0xd9, 0xf1, 0x34, 0xdb, 0x63, 0xbb, 0x98, 0x55, 0x8a, 0x62, 0xc0, 0x55, 0x6c,
- 0x0f, 0xbd, 0x0a, 0xf3, 0x42, 0x2d, 0x93, 0xe8, 0x58, 0xed, 0x5b, 0xf4, 0x50, 0x38, 0x74, 0x25,
- 0x19, 0xa6, 0xe0, 0x1c, 0x1f, 0x5d, 0x27, 0x3a, 0x6e, 0x78, 0x63, 0xe5, 0x37, 0xe1, 0xb9, 0x08,
- 0x5b, 0x22, 0x04, 0x29, 0x53, 0xeb, 0x61, 0xe6, 0xd0, 0x59, 0x85, 0x3d, 0xa3, 0x39, 0x98, 0xda,
- 0xd5, 0xba, 0x03, 0xcc, 0x5c, 0x32, 0xab, 0xf0, 0x17, 0xf9, 0x7b, 0x12, 0x64, 0x5c, 0xd5, 0x91,
- 0x02, 0x10, 0x98, 0x57, 0x62, 0x9b, 0x5a, 0x1b, 0x7b, 0xe5, 0x15, 0xa1, 0xd7, 0x9e, 0x12, 0x40,
- 0x29, 0xbf, 0x0a, 0x19, 0x97, 0x3e, 0x81, 0x5a, 0xbf, 0x4a, 0x40, 0xd6, 0xb7, 0xcd, 0x9b, 0x30,
- 0xc5, 0x77, 0x9f, 0xab, 0x14, 0xbf, 0x19, 0xd4, 0x31, 0xa8, 0xa5, 0x14, 0x2e, 0x87, 0x1a, 0x90,
- 0x0b, 0xfa, 0x06, 0x77, 0xd7, 0xca, 0x18, 0x87, 0x52, 0x68, 0xc0, 0xb0, 0x82, 0x10, 0xe8, 0x3a,
- 0x64, 0xec, 0xbd, 0x5e, 0xd7, 0x30, 0xef, 0x73, 0x9f, 0xcc, 0xd5, 0x5e, 0x89, 0x85, 0x6b, 0x72,
- 0x01, 0x06, 0xe6, 0x49, 0xa3, 0x2d, 0x28, 0x0c, 0xef, 0x78, 0x8a, 0x01, 0x9e, 0x8f, 0x05, 0x0c,
- 0x38, 0xc3, 0x9e, 0x32, 0x6b, 0x86, 0x5c, 0x43, 0xbe, 0x0a, 0xf9, 0xe0, 0xf8, 0x04, 0xc6, 0xff,
- 0xab, 0x04, 0x19, 0xd7, 0x82, 0x91, 0x62, 0x6f, 0x42, 0xfa, 0x60, 0xe1, 0x4d, 0x88, 0xa1, 0x17,
- 0x61, 0xc6, 0xb0, 0x45, 0xea, 0xa1, 0x0e, 0x5b, 0x4a, 0xb1, 0x08, 0x95, 0x37, 0xec, 0xba, 0x47,
- 0x8b, 0x32, 0xcc, 0xd4, 0x21, 0x18, 0x86, 0xc5, 0xbe, 0x94, 0xac, 0xc3, 0x4c, 0x68, 0x7b, 0x3f,
- 0x95, 0x85, 0xca, 0x1f, 0x4b, 0x90, 0x0b, 0x6c, 0x7b, 0xe4, 0x24, 0xf3, 0x90, 0x76, 0x34, 0xab,
- 0x83, 0x1d, 0xb1, 0x0b, 0xe2, 0x2d, 0x6a, 0xfd, 0xc9, 0xc3, 0x70, 0x8c, 0xcf, 0x41, 0x5a, 0x24,
- 0x17, 0x04, 0xa9, 0x1d, 0xcd, 0xde, 0x71, 0xb5, 0xa1, 0xcf, 0xe8, 0x24, 0x80, 0x6d, 0x3c, 0xc6,
- 0x6a, 0x6b, 0xcf, 0x61, 0x27, 0x45, 0x3a, 0x9b, 0x54, 0xb2, 0x94, 0xb2, 0x4c, 0x09, 0xf2, 0x5f,
- 0xd2, 0x30, 0xcf, 0xf7, 0x08, 0xeb, 0x3c, 0x8f, 0xde, 0xc2, 0x8e, 0xa6, 0x6b, 0x8e, 0x46, 0xd7,
- 0x41, 0xa3, 0x1a, 0xb6, 0x04, 0x9e, 0x78, 0x43, 0x75, 0x28, 0x3e, 0x18, 0xe0, 0x01, 0xd6, 0x55,
- 0x2f, 0x4b, 0x0b, 0x73, 0x96, 0x47, 0x72, 0xd9, 0xa6, 0xcb, 0xa1, 0x14, 0xb8, 0x8c, 0x47, 0x40,
- 0x0d, 0x98, 0xe7, 0x80, 0xaa, 0xed, 0x68, 0x96, 0x13, 0x00, 0x4b, 0xc6, 0x82, 0xcd, 0x71, 0xc9,
- 0x26, 0x15, 0xf4, 0x11, 0xef, 0x42, 0x59, 0x20, 0xb6, 0x49, 0xaf, 0xdf, 0xc5, 0x4e, 0x48, 0xc5,
- 0x54, 0x2c, 0x6a, 0x89, 0x4b, 0xaf, 0xb8, 0xc2, 0x3e, 0xf2, 0x3b, 0x70, 0x82, 0x97, 0x02, 0xdb,
- 0xd8, 0x69, 0xef, 0x8c, 0x28, 0x3c, 0x15, 0x0f, 0xcd, 0xc4, 0xaf, 0x51, 0xe9, 0x21, 0xa5, 0x35,
- 0x38, 0x15, 0x84, 0x8e, 0xd2, 0x3c, 0x1d, 0x0b, 0xff, 0xbc, 0x0f, 0x1f, 0xa1, 0xfd, 0x16, 0x1c,
- 0xf7, 0xbc, 0x69, 0x44, 0xf7, 0xe9, 0x58, 0xf0, 0x63, 0x9e, 0xf0, 0x90, 0xea, 0xf7, 0xe0, 0xa4,
- 0x8f, 0x1b, 0xa5, 0x78, 0x26, 0x16, 0xfb, 0x84, 0x07, 0x10, 0xa1, 0xf7, 0x57, 0xe0, 0xa4, 0x48,
- 0xa1, 0x83, 0x7e, 0x97, 0x68, 0xfa, 0x88, 0xee, 0xd9, 0x58, 0xfc, 0x32, 0x07, 0xb8, 0xcd, 0xe4,
- 0x87, 0xd4, 0xc7, 0x70, 0x26, 0x0c, 0x1f, 0xb5, 0x04, 0x88, 0x9d, 0xe2, 0x85, 0xe0, 0x14, 0xa3,
- 0xab, 0x90, 0x7f, 0x97, 0x86, 0x3c, 0x3f, 0x59, 0x0a, 0xb6, 0x07, 0x5d, 0x07, 0xad, 0x0f, 0x95,
- 0x40, 0x3c, 0x7b, 0x9d, 0x8b, 0x0d, 0x02, 0x1b, 0x5e, 0x8d, 0x14, 0xae, 0x97, 0xde, 0x83, 0xb9,
- 0x00, 0x9e, 0xea, 0xa5, 0x31, 0x18, 0x33, 0x2b, 0x72, 0x5c, 0x11, 0xd5, 0x14, 0xe4, 0x43, 0x37,
- 0xdd, 0x94, 0x76, 0x07, 0x0a, 0x62, 0x06, 0x0f, 0x3c, 0x7f, 0x20, 0xf0, 0x59, 0x12, 0x7c, 0xb5,
- 0x91, 0x1a, 0x59, 0xea, 0xf1, 0xa8, 0x78, 0x61, 0x4c, 0x6c, 0x2f, 0xea, 0x47, 0x15, 0x87, 0x5f,
- 0x85, 0xe3, 0x43, 0x13, 0xec, 0xf9, 0x6b, 0xc8, 0x1d, 0x68, 0x0d, 0xc7, 0xc2, 0xb3, 0xec, 0x79,
- 0x8b, 0x39, 0x01, 0x59, 0xfc, 0xc8, 0x70, 0xd4, 0x36, 0xd1, 0x79, 0x02, 0x9c, 0x52, 0x32, 0x94,
- 0xb0, 0x42, 0x13, 0x05, 0x0d, 0xc3, 0x8e, 0x4e, 0xe8, 0x6d, 0x42, 0x7b, 0xc8, 0x02, 0x46, 0x5e,
- 0xc9, 0x72, 0x8a, 0xa2, 0x3d, 0x44, 0x6b, 0x30, 0x23, 0x86, 0x45, 0x7e, 0x4a, 0x4f, 0x96, 0x9f,
- 0xf2, 0x5c, 0x5a, 0xe4, 0x01, 0x3e, 0x19, 0xb6, 0x2c, 0x36, 0xd9, 0xb4, 0x37, 0x19, 0xb6, 0x2c,
- 0x7f, 0x32, 0x3a, 0x2c, 0x26, 0xcb, 0x4c, 0x3e, 0x19, 0xb6, 0x2c, 0x31, 0xd9, 0x36, 0x20, 0x3f,
- 0x0a, 0xf4, 0x44, 0xf2, 0x10, 0x47, 0xf3, 0xb5, 0x58, 0xc8, 0xe8, 0xdc, 0xa3, 0x1c, 0xf1, 0x98,
- 0x5c, 0xd2, 0xcd, 0x54, 0x46, 0x2a, 0x26, 0xe4, 0xaf, 0x27, 0x00, 0xfc, 0x83, 0x40, 0x33, 0x1e,
- 0xad, 0xfa, 0xdd, 0x8c, 0x47, 0x9f, 0x3f, 0xa3, 0x6a, 0xa6, 0x0c, 0x99, 0x36, 0x31, 0x1d, 0x76,
- 0xb1, 0xe2, 0xdb, 0xe9, 0xbd, 0x47, 0x65, 0xfa, 0xf4, 0xe1, 0x55, 0x3a, 0x1f, 0x49, 0x90, 0xda,
- 0xb4, 0x30, 0x46, 0x6f, 0x40, 0x8a, 0x5e, 0x4d, 0xc5, 0x35, 0x77, 0x61, 0xfc, 0xf2, 0x57, 0x61,
- 0x72, 0xe8, 0x1a, 0x64, 0xda, 0x3b, 0x46, 0x57, 0xb7, 0xb0, 0x29, 0x82, 0xd0, 0x24, 0x18, 0x9e,
- 0xac, 0x3c, 0x80, 0xc2, 0xd0, 0x51, 0x8c, 0xdc, 0x97, 0xeb, 0x90, 0x73, 0x2c, 0x8c, 0x5d, 0xa7,
- 0x4b, 0x4e, 0xb6, 0x39, 0x40, 0x65, 0xf9, 0xf3, 0xcd, 0x54, 0x26, 0x51, 0x4c, 0xca, 0x9f, 0x48,
- 0x30, 0x13, 0x3a, 0x9a, 0x91, 0xb3, 0x7e, 0xd6, 0xd5, 0xd8, 0x79, 0x28, 0xd4, 0x5d, 0xe6, 0x06,
- 0xe9, 0x1a, 0xed, 0x3d, 0xea, 0x2a, 0x7d, 0xcb, 0x20, 0x96, 0xe1, 0xec, 0x31, 0xd5, 0xa6, 0x14,
- 0xef, 0x5d, 0xbe, 0x00, 0x88, 0xa7, 0x05, 0x9b, 0x5d, 0xe4, 0xc7, 0x90, 0xf8, 0x20, 0x09, 0xb3,
- 0xe2, 0xd4, 0x28, 0xf8, 0xc1, 0xc0, 0x75, 0x58, 0xd3, 0x76, 0x34, 0xb3, 0x8d, 0xd5, 0x40, 0x39,
- 0x9a, 0x77, 0x89, 0xeb, 0xb4, 0x2c, 0x5d, 0x80, 0x23, 0xf6, 0x7d, 0xa3, 0xcf, 0x5b, 0x08, 0x6a,
- 0x97, 0x90, 0xfb, 0x03, 0x5e, 0x6a, 0x65, 0x94, 0x02, 0x1d, 0x60, 0xf3, 0xaf, 0x31, 0x32, 0x8d,
- 0x10, 0x1a, 0x3b, 0x90, 0x07, 0x0d, 0x47, 0x5c, 0x5a, 0x44, 0x88, 0x2f, 0x43, 0xd1, 0x8f, 0x10,
- 0x7d, 0xb6, 0x42, 0x51, 0x76, 0x5c, 0x18, 0x33, 0x3e, 0x78, 0xb6, 0x54, 0x0a, 0x78, 0xc8, 0xb8,
- 0x18, 0xe6, 0x2c, 0x6e, 0x40, 0xb1, 0x32, 0x31, 0x01, 0x8f, 0x69, 0x97, 0x62, 0x27, 0x18, 0xb5,
- 0xbe, 0x82, 0xac, 0x11, 0x1a, 0x77, 0xb9, 0x9b, 0xa9, 0x4c, 0xaa, 0x38, 0x75, 0x33, 0x95, 0x99,
- 0x2a, 0xa6, 0xe5, 0x07, 0x30, 0xbd, 0x46, 0x3a, 0x2c, 0x0a, 0xf9, 0x11, 0x47, 0x3a, 0x58, 0xc4,
- 0x79, 0x09, 0x66, 0x77, 0x06, 0x3d, 0xcd, 0x54, 0x2d, 0xac, 0xe9, 0x2c, 0xe4, 0x24, 0xd8, 0xc6,
- 0xcc, 0x30, 0xaa, 0x22, 0x88, 0xf2, 0x77, 0x92, 0xae, 0x73, 0x61, 0x05, 0xdb, 0x7d, 0x62, 0xda,
- 0x18, 0xd5, 0x21, 0xcd, 0xd5, 0x15, 0x73, 0xc7, 0xbb, 0x6f, 0xb0, 0x18, 0x51, 0x84, 0x30, 0x75,
- 0x21, 0x66, 0x3e, 0x5d, 0x15, 0x68, 0x5c, 0x81, 0x3c, 0x27, 0x8a, 0xca, 0x65, 0x01, 0xd2, 0xbc,
- 0xf9, 0x26, 0x0e, 0x2f, 0x72, 0xcb, 0x22, 0xab, 0xdf, 0xae, 0x34, 0xd9, 0x88, 0x22, 0x38, 0x90,
- 0x06, 0x39, 0x1b, 0x5b, 0xbb, 0xd8, 0x52, 0xbb, 0xa4, 0xe3, 0x5e, 0x81, 0xbf, 0x30, 0x6e, 0x3e,
- 0x70, 0x97, 0x57, 0x69, 0x32, 0x8c, 0x35, 0xd2, 0xb1, 0xeb, 0xa6, 0x63, 0xed, 0x29, 0x60, 0x7b,
- 0x04, 0x54, 0x82, 0xe9, 0x1e, 0xb6, 0x6d, 0xad, 0x83, 0x59, 0x04, 0xce, 0x2a, 0xee, 0x6b, 0xb9,
- 0x03, 0x85, 0x21, 0x41, 0x54, 0x84, 0xe4, 0x7d, 0xbc, 0x27, 0x4e, 0x06, 0x7d, 0x44, 0x6f, 0x04,
- 0x2f, 0xcb, 0xb9, 0xda, 0xd9, 0x58, 0xdd, 0xc4, 0x76, 0x8b, 0x6b, 0xf5, 0x62, 0xe2, 0xaa, 0x24,
- 0x6b, 0xee, 0x59, 0xe4, 0xd5, 0x71, 0x07, 0xcb, 0x1b, 0x30, 0xb5, 0x45, 0x87, 0x51, 0x0e, 0xa6,
- 0x6f, 0xaf, 0xbf, 0xbd, 0xbe, 0x71, 0x67, 0xbd, 0xf8, 0x3f, 0xa8, 0x00, 0xb9, 0x95, 0xa5, 0x95,
- 0xeb, 0x75, 0x75, 0xe5, 0x7a, 0x7d, 0xe5, 0xed, 0xa2, 0x84, 0x00, 0xd2, 0x5f, 0xbc, 0x5d, 0xbf,
- 0x5d, 0x5f, 0x2d, 0x26, 0xd0, 0x0c, 0x64, 0xeb, 0x77, 0xeb, 0x2b, 0xb7, 0x37, 0x6f, 0xac, 0xbf,
- 0x55, 0x4c, 0xd2, 0xd7, 0x95, 0x8d, 0x5b, 0x8d, 0xb5, 0xfa, 0x66, 0x7d, 0xb5, 0x98, 0x92, 0x3f,
- 0x4e, 0x40, 0x49, 0x58, 0x65, 0xc3, 0xed, 0xab, 0x7a, 0x77, 0xb4, 0xb7, 0x61, 0xca, 0xa6, 0xd3,
- 0xb2, 0x75, 0xcd, 0xd6, 0x2e, 0x8f, 0x7f, 0x9e, 0x98, 0xb6, 0x15, 0xa6, 0xaa, 0xc2, 0x31, 0x46,
- 0x4f, 0x7d, 0xe2, 0x59, 0x4e, 0xfd, 0x2b, 0x80, 0x44, 0x49, 0x63, 0x3b, 0x16, 0xd6, 0x7a, 0x3c,
- 0x32, 0x25, 0x79, 0xbb, 0x8c, 0x8f, 0x34, 0xd9, 0x00, 0x8b, 0x4e, 0x9c, 0x9b, 0xd6, 0x24, 0x41,
- 0xee, 0x94, 0xc7, 0x8d, 0x2d, 0xcb, 0xe7, 0x96, 0x17, 0x60, 0xee, 0x8e, 0x66, 0x38, 0xde, 0x62,
- 0xdc, 0x40, 0x18, 0x71, 0x1d, 0x97, 0x3f, 0x48, 0xc0, 0xfc, 0x5b, 0xd8, 0x09, 0x79, 0xfd, 0x24,
- 0x71, 0xf3, 0x70, 0xad, 0xc2, 0xa6, 0xec, 0x1a, 0x26, 0x56, 0xb9, 0x09, 0x44, 0x04, 0xce, 0x73,
- 0x62, 0x93, 0xd1, 0xc2, 0x4c, 0xd8, 0xb2, 0xbc, 0x02, 0xc4, 0x65, 0xc2, 0x96, 0x85, 0x2a, 0xf0,
- 0x9c, 0x60, 0x0a, 0xdd, 0x26, 0xa6, 0x78, 0x9f, 0x94, 0x0f, 0xf9, 0x95, 0x92, 0x2d, 0xff, 0x36,
- 0x01, 0xc7, 0x6f, 0xf7, 0x75, 0xcd, 0xc1, 0xff, 0x25, 0xa6, 0x50, 0x3c, 0x34, 0x11, 0x72, 0x92,
- 0x07, 0x09, 0x60, 0x02, 0x53, 0x44, 0xa8, 0xfd, 0xb2, 0x41, 0xea, 0x50, 0xb3, 0x81, 0xfc, 0x2d,
- 0x09, 0x8e, 0x5d, 0x33, 0x4c, 0xfd, 0x96, 0x61, 0xdb, 0x86, 0xd9, 0x59, 0xee, 0x92, 0x96, 0x3d,
- 0x91, 0x25, 0x6f, 0x42, 0xbe, 0xd5, 0x25, 0x2d, 0x61, 0x47, 0xf7, 0x0e, 0x38, 0xb6, 0x21, 0x73,
- 0x54, 0x98, 0x3f, 0xdb, 0xf2, 0x00, 0x4a, 0xa3, 0xba, 0x88, 0xec, 0xf0, 0x0e, 0xcc, 0xf5, 0x38,
- 0x5d, 0x7d, 0x96, 0xf9, 0x50, 0xcf, 0x07, 0x77, 0xa7, 0xfd, 0xb7, 0x04, 0xc7, 0x96, 0x35, 0xa7,
- 0xbd, 0xc3, 0x9d, 0x6a, 0x72, 0x1b, 0xbc, 0x0b, 0x19, 0x8b, 0xf3, 0xbb, 0xfa, 0xc4, 0xa7, 0x87,
- 0x7d, 0x26, 0xac, 0x88, 0x5f, 0xc5, 0x43, 0x2c, 0xdf, 0x83, 0x69, 0x57, 0x9b, 0x67, 0x4e, 0xcf,
- 0x08, 0x52, 0xec, 0x52, 0x93, 0x60, 0x75, 0x3e, 0x7b, 0x96, 0xff, 0x29, 0x41, 0x69, 0x54, 0x1b,
- 0x61, 0xf6, 0xf7, 0x20, 0x6b, 0x89, 0x67, 0xb7, 0xc9, 0xbd, 0x7c, 0x80, 0xb5, 0x89, 0x1c, 0xe8,
- 0x3e, 0x28, 0x3e, 0x68, 0xf9, 0x21, 0x64, 0xbc, 0xd9, 0x9e, 0x79, 0x7d, 0x7e, 0x5e, 0x4f, 0xc4,
- 0xe5, 0x75, 0xf9, 0x6b, 0x70, 0x94, 0x29, 0x4a, 0x8b, 0x92, 0xc9, 0xf7, 0x7c, 0x09, 0xa6, 0x0f,
- 0xe8, 0x82, 0xae, 0x9c, 0xfc, 0xcd, 0x04, 0xcc, 0x0f, 0x6b, 0x20, 0x0c, 0x71, 0x6f, 0xd4, 0xec,
- 0x63, 0xba, 0xd4, 0x08, 0x56, 0xa4, 0xd1, 0xbf, 0x2d, 0x1d, 0xa6, 0xd5, 0x23, 0xbc, 0x6a, 0x92,
- 0x0a, 0x4b, 0xfe, 0xb9, 0x04, 0xb3, 0x6f, 0x61, 0x87, 0x5e, 0x05, 0x27, 0xda, 0x83, 0xeb, 0x90,
- 0x7b, 0x86, 0x2f, 0x9a, 0x60, 0xf9, 0x1f, 0x33, 0x4f, 0x40, 0xb6, 0xaf, 0x75, 0xb0, 0x6a, 0x1b,
- 0x8f, 0x79, 0x66, 0xa7, 0xf7, 0x14, 0xad, 0x83, 0x9b, 0xc6, 0x63, 0xd6, 0xf1, 0x60, 0x83, 0x0e,
- 0xb9, 0x8f, 0x4d, 0x91, 0xc9, 0x19, 0xfb, 0x26, 0x25, 0xc8, 0x1f, 0x4a, 0x50, 0xf0, 0xb4, 0x17,
- 0x26, 0x5d, 0x0b, 0x7f, 0xd6, 0x91, 0x26, 0xbe, 0x93, 0x86, 0x3e, 0xe9, 0xbc, 0x0c, 0x05, 0x13,
- 0x3f, 0x72, 0xd4, 0x80, 0x16, 0xfc, 0x0a, 0x38, 0x43, 0xc9, 0x0d, 0x4f, 0x93, 0xd7, 0x59, 0x7d,
- 0xb0, 0xa2, 0xf5, 0xb5, 0x96, 0xd1, 0x35, 0xe8, 0x25, 0x6e, 0x12, 0x73, 0xca, 0xbf, 0x4e, 0x02,
- 0xe2, 0xc5, 0x66, 0x10, 0x02, 0x69, 0x80, 0x78, 0x06, 0x6a, 0x07, 0xa8, 0xc2, 0x55, 0xe2, 0xbf,
- 0xc1, 0xb1, 0x64, 0x13, 0x52, 0xe9, 0x48, 0x7b, 0x98, 0x84, 0x7a, 0x30, 0x1f, 0xe8, 0xbf, 0x06,
- 0xa7, 0xe1, 0x7b, 0x7a, 0x65, 0xfc, 0x6a, 0x30, 0x34, 0xd5, 0x51, 0x1c, 0x45, 0x46, 0x0d, 0x98,
- 0xd7, 0x71, 0xdf, 0xc2, 0x6d, 0xcd, 0xc1, 0xba, 0xaa, 0xf5, 0x0d, 0x75, 0x17, 0x5b, 0xb6, 0x41,
- 0x4c, 0xaf, 0x61, 0x1f, 0x9c, 0x4e, 0xfc, 0x85, 0xa0, 0x89, 0x7b, 0x5b, 0xd8, 0x52, 0xe6, 0x7c,
- 0xc9, 0xa5, 0xbe, 0xb1, 0xc5, 0xe5, 0xd0, 0x32, 0x14, 0xba, 0xe4, 0x61, 0x08, 0x2a, 0x15, 0x0b,
- 0x35, 0xd3, 0x25, 0x0f, 0x03, 0x18, 0xab, 0x50, 0xdc, 0x31, 0x3a, 0x3b, 0x21, 0x90, 0xa9, 0x58,
- 0x90, 0x59, 0x2a, 0xe3, 0xa3, 0xc8, 0xdb, 0x30, 0xcb, 0x7d, 0xfa, 0xda, 0xc0, 0x64, 0xf5, 0x84,
- 0xbc, 0x19, 0x59, 0xc7, 0x03, 0xa4, 0x9b, 0xd7, 0x97, 0x6a, 0x97, 0xaf, 0x14, 0x25, 0x94, 0x81,
- 0x54, 0xf3, 0xfa, 0xd2, 0xc5, 0x62, 0x02, 0x4d, 0x43, 0xf2, 0xd6, 0xea, 0xe5, 0x62, 0x92, 0x3e,
- 0x6c, 0x35, 0x37, 0x8a, 0x29, 0xc1, 0x77, 0xe9, 0xea, 0xab, 0xc5, 0x29, 0xf1, 0x7c, 0xf9, 0x62,
- 0xad, 0x98, 0x96, 0xaf, 0xc1, 0x49, 0x5e, 0xbd, 0xb0, 0x0d, 0xe6, 0xc1, 0x3e, 0x64, 0xe4, 0x97,
- 0x60, 0x76, 0xc0, 0xa8, 0x2a, 0x36, 0xe9, 0x9d, 0x4f, 0x67, 0x2e, 0x93, 0x51, 0x66, 0x38, 0xb5,
- 0xce, 0x89, 0xf2, 0xef, 0x25, 0x98, 0x6b, 0x88, 0x8e, 0x40, 0x48, 0xbe, 0x0d, 0x20, 0x3a, 0x05,
- 0xfe, 0x09, 0x5a, 0x89, 0xff, 0xe4, 0x1b, 0x01, 0xe5, 0x11, 0x15, 0xcd, 0xec, 0x60, 0x25, 0x00,
- 0x5b, 0xbe, 0x0d, 0x33, 0xa1, 0x41, 0x74, 0x06, 0xf2, 0x3d, 0xc3, 0x54, 0x87, 0x7a, 0x16, 0xb9,
- 0x9e, 0x61, 0xba, 0x7c, 0x8c, 0x45, 0x7b, 0xe4, 0xb3, 0x24, 0x04, 0x8b, 0xf6, 0xc8, 0x65, 0x91,
- 0x1b, 0x70, 0x42, 0x74, 0x72, 0x96, 0x5a, 0x36, 0xe9, 0x0e, 0x1c, 0xdc, 0xd0, 0x9c, 0x9d, 0xa6,
- 0x63, 0x69, 0x0e, 0xee, 0xec, 0xc9, 0x17, 0x23, 0x77, 0x64, 0x16, 0x60, 0xf5, 0x46, 0x73, 0x69,
- 0x6d, 0x6d, 0xe3, 0x4e, 0x7d, 0xb5, 0x28, 0xd1, 0x41, 0xf7, 0x25, 0x21, 0xff, 0x2c, 0x05, 0x47,
- 0x46, 0x8e, 0x12, 0xba, 0x07, 0x05, 0x1e, 0xfb, 0xd4, 0x6d, 0xb1, 0xdb, 0xcc, 0x50, 0xe3, 0x5c,
- 0x9f, 0xc2, 0x4e, 0x22, 0xae, 0x4f, 0xb3, 0x7a, 0x88, 0x8a, 0x3e, 0x94, 0xe0, 0xb4, 0xa8, 0x6c,
- 0x79, 0x08, 0x10, 0x3b, 0x1a, 0x71, 0x44, 0xdf, 0x18, 0xb3, 0xd8, 0xdd, 0xc7, 0x5d, 0x94, 0x93,
- 0xda, 0x53, 0xbd, 0x69, 0x00, 0x27, 0x44, 0x19, 0x2c, 0x6c, 0x1c, 0xd6, 0x81, 0x9f, 0xdb, 0xcb,
- 0x07, 0x72, 0x0f, 0xe5, 0x38, 0x43, 0x8e, 0x74, 0xc2, 0x45, 0x28, 0xd3, 0xbd, 0x6e, 0xd1, 0xcc,
- 0xaa, 0x3a, 0xc4, 0xd1, 0xba, 0x6a, 0xe0, 0x1b, 0x64, 0x8a, 0x7d, 0x83, 0x9c, 0xef, 0x69, 0x8f,
- 0x58, 0xea, 0xdd, 0xa4, 0xe3, 0x4d, 0xf7, 0x83, 0x24, 0x35, 0xde, 0x0b, 0xa2, 0x43, 0xaf, 0x6a,
- 0xc2, 0x0d, 0xd8, 0x3f, 0x3b, 0xe8, 0xc5, 0x90, 0x39, 0x02, 0x3b, 0xde, 0xb3, 0x63, 0x14, 0x54,
- 0x4f, 0x71, 0x26, 0xb1, 0x73, 0x27, 0xec, 0xa7, 0xf8, 0xdb, 0x1f, 0x13, 0x70, 0x34, 0x32, 0x40,
- 0x46, 0x3b, 0x90, 0x74, 0x78, 0x0e, 0x74, 0x06, 0xf2, 0x54, 0xc8, 0x0b, 0x01, 0xbc, 0x17, 0x93,
- 0xa3, 0x34, 0x11, 0x00, 0xd0, 0x13, 0x38, 0x15, 0xe8, 0xa9, 0x1d, 0xfe, 0xee, 0xfa, 0x5f, 0xf6,
- 0xf6, 0xd9, 0xe1, 0xe3, 0xf6, 0xa0, 0xdf, 0x27, 0x16, 0x4d, 0x05, 0x51, 0x7f, 0x77, 0xc8, 0x2a,
- 0xc7, 0x3c, 0x86, 0xf0, 0x7f, 0x5c, 0xe4, 0x5b, 0x90, 0xdb, 0x24, 0xa4, 0xbb, 0x8a, 0x1d, 0xcd,
- 0xe8, 0xb2, 0xcf, 0x26, 0x0e, 0x21, 0xdd, 0x60, 0x82, 0xcd, 0x50, 0x02, 0xab, 0x55, 0xce, 0x40,
- 0x9e, 0x0d, 0xba, 0x91, 0x9d, 0x27, 0xf0, 0x1c, 0xa5, 0xb9, 0xa1, 0xfb, 0xef, 0x12, 0x14, 0x44,
- 0xc2, 0xf6, 0xda, 0x22, 0x1b, 0x42, 0x4c, 0xe7, 0x73, 0x88, 0xb4, 0x1b, 0xff, 0x8f, 0x8e, 0x80,
- 0x5e, 0x7c, 0x92, 0x80, 0x92, 0xe2, 0x44, 0x1b, 0xba, 0x50, 0x22, 0xc3, 0x09, 0x37, 0x74, 0xf4,
- 0x0a, 0x20, 0x36, 0x9b, 0x61, 0xee, 0x92, 0xb6, 0xe6, 0x72, 0x89, 0x4e, 0x07, 0x1d, 0xb9, 0xe1,
- 0x0d, 0xdc, 0xd0, 0xa9, 0xe9, 0xda, 0xc4, 0xb2, 0x70, 0x97, 0xa5, 0x51, 0x5f, 0xc6, 0xa6, 0x42,
- 0xbc, 0x4c, 0x3a, 0xe6, 0x33, 0xf8, 0xa2, 0xf6, 0x0d, 0xbd, 0xf6, 0xd3, 0x04, 0x64, 0x3d, 0x97,
- 0x44, 0x1f, 0x49, 0x30, 0x2d, 0x3a, 0x43, 0xa8, 0x3a, 0x7e, 0x67, 0x8d, 0x99, 0xaa, 0x7c, 0xd2,
- 0xad, 0x2c, 0x03, 0x7f, 0xdc, 0xab, 0x78, 0x0d, 0x26, 0xf9, 0xe2, 0x37, 0xfe, 0xf0, 0xb7, 0x4f,
- 0x12, 0xe7, 0xe4, 0x97, 0xab, 0xbb, 0xb5, 0xea, 0xfb, 0xa1, 0x2a, 0xe8, 0xf5, 0x85, 0x85, 0x27,
- 0x55, 0xbe, 0x78, 0x7b, 0x91, 0x4f, 0x81, 0x17, 0xa5, 0x85, 0x0b, 0x12, 0xfa, 0xbe, 0x04, 0x33,
- 0xa1, 0xbe, 0x0c, 0x8a, 0xf7, 0xbe, 0xa8, 0x3e, 0xce, 0x64, 0xca, 0x31, 0x9d, 0xfc, 0xbf, 0x1c,
- 0x56, 0x17, 0x16, 0x9e, 0x2c, 0x3e, 0x0c, 0xa2, 0x32, 0xe5, 0x6a, 0x7f, 0x4a, 0x42, 0x2e, 0x10,
- 0x4c, 0xd1, 0x9f, 0x79, 0x01, 0x1a, 0xfa, 0x34, 0x1b, 0xff, 0xbd, 0x2a, 0xba, 0x93, 0x54, 0x9e,
- 0xac, 0x69, 0x21, 0xbf, 0xcb, 0x16, 0xb0, 0x85, 0x36, 0x9f, 0x6a, 0x5d, 0xd1, 0x8c, 0xa8, 0xbe,
- 0x1f, 0x6a, 0xba, 0x54, 0x76, 0x34, 0x7b, 0xe7, 0xc9, 0x30, 0xd1, 0x8f, 0xaf, 0x4f, 0xd0, 0x3f,
- 0x24, 0x40, 0xa3, 0x9d, 0x1e, 0xb4, 0x18, 0xab, 0xe3, 0xbe, 0xed, 0xa1, 0x49, 0xd7, 0x77, 0x9f,
- 0xad, 0x0f, 0x97, 0x3f, 0x95, 0xf5, 0x2d, 0x86, 0xdb, 0x46, 0xb5, 0x1f, 0xa4, 0xe1, 0xf8, 0x0a,
- 0xff, 0xf4, 0xb6, 0xa4, 0xeb, 0x16, 0xb6, 0x6d, 0x1a, 0x22, 0x9b, 0x0e, 0xb1, 0xb4, 0x0e, 0x46,
- 0xbf, 0x90, 0xa0, 0x38, 0xdc, 0x1e, 0x41, 0x57, 0xc7, 0xf8, 0xc7, 0x59, 0x64, 0x77, 0xa7, 0xfc,
- 0xff, 0x07, 0x90, 0xe4, 0xb7, 0x1b, 0xf9, 0x12, 0x33, 0xca, 0x79, 0xf9, 0xec, 0x3e, 0x46, 0x69,
- 0x51, 0xee, 0xc5, 0x6d, 0x5f, 0x7c, 0x51, 0x5a, 0x60, 0xea, 0x0f, 0x37, 0x06, 0xc6, 0x50, 0x7f,
- 0x9f, 0x3e, 0xc9, 0x18, 0xea, 0xef, 0xd7, 0x85, 0x18, 0x53, 0xfd, 0x96, 0x2f, 0x4e, 0xd5, 0xff,
- 0x89, 0x04, 0xb3, 0xe1, 0x0b, 0x36, 0xba, 0x32, 0xf1, 0x8d, 0x9c, 0xab, 0xfe, 0xda, 0x01, 0x6f,
- 0xf2, 0xb1, 0xa1, 0x2c, 0xa0, 0x38, 0x15, 0xa6, 0x6a, 0xff, 0x46, 0x82, 0x69, 0x71, 0x39, 0x1d,
- 0x23, 0xb2, 0x86, 0x2f, 0xe1, 0xe5, 0x0b, 0xe3, 0x0b, 0x08, 0x0d, 0xef, 0x32, 0x0d, 0x15, 0xd4,
- 0x78, 0x9a, 0x86, 0xd5, 0xf7, 0x03, 0xb7, 0x76, 0xf7, 0x90, 0x04, 0x49, 0xc1, 0x23, 0xd2, 0xe1,
- 0x33, 0x5c, 0x90, 0x6a, 0xbf, 0x94, 0x20, 0x1f, 0x4a, 0xdd, 0x3f, 0xe6, 0x71, 0x2f, 0x44, 0x1b,
- 0x2b, 0xee, 0x45, 0xdc, 0x90, 0xcb, 0xf1, 0x1d, 0xd5, 0xd1, 0xab, 0xb1, 0x7c, 0x8e, 0x2d, 0xf7,
- 0x25, 0xf4, 0xe2, 0x3e, 0xcb, 0x0d, 0x56, 0x31, 0xcb, 0x16, 0xc4, 0xfd, 0x83, 0x7d, 0x79, 0x4e,
- 0x61, 0x44, 0xff, 0x53, 0xa1, 0x45, 0x1c, 0xd2, 0x90, 0xbe, 0x54, 0xe0, 0xcc, 0x1e, 0xef, 0x0f,
- 0x13, 0x49, 0xa5, 0x7e, 0xf7, 0x47, 0x89, 0x53, 0xcb, 0x0c, 0x70, 0x99, 0x01, 0x72, 0x59, 0xff,
- 0x26, 0x5c, 0xd9, 0xaa, 0xb5, 0xd2, 0xec, 0x6f, 0x3e, 0x97, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff,
- 0x47, 0xb8, 0x90, 0x35, 0x74, 0x2f, 0x00, 0x00,
+ // 3364 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3a, 0x4b, 0x70, 0x1b, 0xc7,
+ 0x95, 0x3b, 0x00, 0x88, 0xcf, 0x03, 0x48, 0x40, 0x6d, 0x8a, 0x82, 0x20, 0xc9, 0x92, 0xc6, 0x65,
+ 0xaf, 0x96, 0xb2, 0x00, 0x09, 0xb2, 0x64, 0x99, 0xbb, 0xb6, 0x97, 0x1f, 0xc8, 0x92, 0x4c, 0x91,
+ 0xdc, 0x01, 0x49, 0xc9, 0xbb, 0x5e, 0x8d, 0x87, 0x98, 0x26, 0x38, 0x2b, 0x60, 0x06, 0xea, 0x19,
+ 0x90, 0xa2, 0x5c, 0xaa, 0xad, 0x4a, 0x95, 0xe3, 0x54, 0x52, 0xe5, 0x24, 0x95, 0x5c, 0x12, 0xdf,
+ 0x72, 0x4c, 0xe5, 0x98, 0x4b, 0x7e, 0x97, 0x9c, 0x9c, 0x4a, 0x4e, 0x49, 0x25, 0x39, 0xe6, 0x92,
+ 0x4b, 0x52, 0xb9, 0xe6, 0x92, 0xca, 0x21, 0xd5, 0x9f, 0xf9, 0x01, 0x43, 0x0d, 0x40, 0xd1, 0x49,
+ 0x4e, 0x98, 0x79, 0xfd, 0x7e, 0xfd, 0xfa, 0xf5, 0xfb, 0x0d, 0xe0, 0xfa, 0x56, 0xdf, 0xe8, 0xe8,
+ 0xb5, 0x2d, 0xed, 0x09, 0xee, 0xd4, 0x08, 0xee, 0x5a, 0x0e, 0xae, 0xe1, 0xc7, 0xb8, 0xd5, 0x77,
+ 0x0c, 0xcb, 0xac, 0xed, 0xd6, 0x05, 0x4c, 0xf5, 0x60, 0xd5, 0x1e, 0xb1, 0x1c, 0x0b, 0x9d, 0x65,
+ 0x74, 0x55, 0x46, 0x57, 0xe5, 0x38, 0x55, 0x1f, 0x67, 0xb7, 0x5e, 0x39, 0x1b, 0x64, 0x6c, 0xe3,
+ 0xee, 0x2e, 0x26, 0xe2, 0x87, 0x73, 0xa8, 0x9c, 0x6e, 0x5b, 0x56, 0xbb, 0x83, 0x6b, 0x5a, 0xcf,
+ 0xa8, 0x69, 0xa6, 0x69, 0x39, 0x1a, 0x25, 0xb5, 0xc5, 0xea, 0x4b, 0x62, 0xb5, 0x63, 0x99, 0x6d,
+ 0xd2, 0x37, 0x4d, 0xc3, 0x6c, 0xd7, 0xac, 0x1e, 0x26, 0x21, 0xa4, 0x17, 0x05, 0x12, 0x7b, 0xdb,
+ 0xea, 0x6f, 0xd7, 0xf4, 0x3e, 0x47, 0x10, 0xeb, 0x67, 0x07, 0xd7, 0x1d, 0xa3, 0x8b, 0x6d, 0x47,
+ 0xeb, 0xf6, 0x0e, 0x62, 0xb0, 0x47, 0xb4, 0x5e, 0x0f, 0x13, 0x57, 0xc0, 0x09, 0xb1, 0x4e, 0x7a,
+ 0xad, 0x9a, 0xed, 0x68, 0x4e, 0x5f, 0x2c, 0xc8, 0x5f, 0x4b, 0x40, 0x7a, 0xbe, 0x45, 0x45, 0xa1,
+ 0x15, 0x98, 0x6a, 0x59, 0xdd, 0xae, 0x66, 0xea, 0xaa, 0x6e, 0xb4, 0xb1, 0xed, 0x94, 0xa5, 0x73,
+ 0xd2, 0x85, 0x7c, 0xfd, 0x5f, 0xab, 0x31, 0x26, 0xaa, 0x2e, 0x31, 0x74, 0x65, 0x52, 0x90, 0xf3,
+ 0x57, 0xd4, 0x84, 0x63, 0x86, 0xd9, 0xeb, 0x3b, 0x2a, 0xb1, 0x2c, 0xc7, 0x65, 0x99, 0x18, 0x8f,
+ 0x65, 0x91, 0x71, 0x50, 0x2c, 0xcb, 0x11, 0x4c, 0xaf, 0x42, 0x86, 0xee, 0xdd, 0xea, 0x3b, 0xe5,
+ 0x34, 0x63, 0x75, 0xb2, 0xca, 0xb7, 0x56, 0x75, 0xb7, 0x5e, 0x5d, 0x12, 0xb6, 0x53, 0x5c, 0x4c,
+ 0x74, 0x0e, 0x0a, 0xba, 0xa5, 0x9a, 0x96, 0xa3, 0xb6, 0xb4, 0xd6, 0x0e, 0x2e, 0x67, 0xce, 0x49,
+ 0x17, 0xb2, 0x0a, 0xe8, 0xd6, 0x8a, 0xe5, 0x2c, 0x52, 0xc8, 0x9d, 0x54, 0x36, 0x59, 0x4a, 0xdf,
+ 0x49, 0x65, 0xb3, 0xa5, 0x9c, 0xfc, 0x97, 0x24, 0x64, 0x16, 0xf9, 0x4e, 0xd0, 0x69, 0xc8, 0x69,
+ 0xa4, 0xdd, 0xef, 0x62, 0xd3, 0xb1, 0xcb, 0xd2, 0xb9, 0xe4, 0x85, 0x9c, 0xe2, 0x03, 0xd0, 0x23,
+ 0x38, 0x8e, 0xcd, 0x5d, 0x83, 0x58, 0x26, 0x7d, 0x57, 0x77, 0x35, 0x62, 0x68, 0x5b, 0x1d, 0x6c,
+ 0x97, 0x13, 0xe7, 0x92, 0x17, 0xf2, 0xf5, 0xff, 0x88, 0xdd, 0xa5, 0x10, 0x53, 0x6d, 0xf8, 0x5c,
+ 0x36, 0x05, 0x13, 0x65, 0x1a, 0x0f, 0x03, 0x6d, 0x74, 0x1e, 0x0a, 0x56, 0xdf, 0xa1, 0x56, 0xdd,
+ 0x36, 0xa8, 0xa4, 0x24, 0xd3, 0x29, 0xcf, 0x61, 0x37, 0x29, 0x08, 0x5d, 0x02, 0x24, 0x50, 0x74,
+ 0x83, 0xe0, 0x96, 0x63, 0x11, 0x03, 0xdb, 0xe5, 0x14, 0x43, 0x3c, 0xc6, 0x57, 0x96, 0xfc, 0x85,
+ 0x00, 0xc7, 0x9e, 0xe6, 0xec, 0xd8, 0xe5, 0x4c, 0x90, 0xe3, 0x1a, 0x05, 0xa1, 0x06, 0x64, 0x7b,
+ 0x1d, 0xcd, 0xd9, 0xb6, 0x48, 0xb7, 0x3c, 0xc1, 0xac, 0xfe, 0x6f, 0xb1, 0x5b, 0x5b, 0x13, 0x04,
+ 0x8a, 0x47, 0x8a, 0x2e, 0xc2, 0xb1, 0x3d, 0x8b, 0x3c, 0x34, 0xcc, 0xb6, 0xa7, 0xd9, 0x3e, 0x3b,
+ 0xc5, 0x9c, 0x52, 0x12, 0x0b, 0xae, 0x62, 0xfb, 0xe8, 0x35, 0x98, 0x11, 0x6a, 0x99, 0x96, 0x8e,
+ 0xd5, 0x1e, 0xa1, 0x97, 0xc6, 0xa1, 0x3b, 0xc9, 0x32, 0x05, 0xa7, 0xf9, 0xea, 0x8a, 0xa5, 0xe3,
+ 0x35, 0x6f, 0xad, 0xf2, 0x36, 0xbc, 0x10, 0x61, 0x4b, 0x84, 0x20, 0x65, 0x6a, 0x5d, 0xcc, 0x1c,
+ 0x3a, 0xa7, 0xb0, 0x67, 0x34, 0x0d, 0x13, 0xbb, 0x5a, 0xa7, 0x8f, 0x99, 0x4b, 0xe6, 0x14, 0xfe,
+ 0x22, 0x7f, 0x53, 0x82, 0xac, 0xab, 0x3a, 0x52, 0x00, 0x02, 0x72, 0x25, 0x76, 0xa8, 0xf5, 0x91,
+ 0x77, 0x5e, 0x15, 0x7a, 0xed, 0x2b, 0x01, 0x2e, 0x95, 0xd7, 0x20, 0xeb, 0xc2, 0xc7, 0x50, 0xeb,
+ 0xb3, 0x04, 0xe4, 0x7c, 0xdb, 0xbc, 0x0d, 0x13, 0xfc, 0xf4, 0xb9, 0x4a, 0xf1, 0x87, 0x41, 0x1d,
+ 0x83, 0x5a, 0x4a, 0xe1, 0x74, 0x68, 0x0d, 0xf2, 0x41, 0xdf, 0xe0, 0xee, 0x5a, 0x1d, 0xe1, 0x52,
+ 0x0a, 0x0d, 0x18, 0xaf, 0x20, 0x0b, 0x74, 0x0b, 0xb2, 0xf6, 0x7e, 0xb7, 0x63, 0x98, 0x0f, 0xb9,
+ 0x4f, 0xe6, 0xeb, 0xaf, 0xc6, 0xb2, 0x6b, 0x72, 0x02, 0xc6, 0xcc, 0xa3, 0x46, 0xf7, 0xa1, 0x38,
+ 0x78, 0xe2, 0xdc, 0xe7, 0x6a, 0xb1, 0x0c, 0xc3, 0xce, 0xa0, 0x4c, 0x99, 0xa1, 0xf7, 0x3b, 0xa9,
+ 0x6c, 0xaa, 0x34, 0x21, 0xdf, 0x80, 0x42, 0x00, 0x6f, 0x9c, 0x43, 0xf8, 0x85, 0x04, 0x53, 0x61,
+ 0x11, 0xe8, 0x6e, 0x84, 0x87, 0x5c, 0x1a, 0x47, 0xcf, 0x90, 0x73, 0xa0, 0xcb, 0x30, 0xd1, 0xa5,
+ 0x41, 0x4b, 0x84, 0xc9, 0xca, 0x50, 0x6c, 0x5b, 0x77, 0xe3, 0xbe, 0xc2, 0x11, 0xd1, 0x1b, 0x90,
+ 0xeb, 0x9b, 0xc6, 0x63, 0xb5, 0x6b, 0xe9, 0xb8, 0x9c, 0x64, 0x54, 0xa7, 0x87, 0xa8, 0x36, 0x6e,
+ 0x9b, 0xce, 0xd5, 0xfa, 0x26, 0xdd, 0x84, 0x92, 0xa5, 0xe8, 0x77, 0x2d, 0x1d, 0xcb, 0x7f, 0x94,
+ 0x20, 0xeb, 0x3a, 0x46, 0xa4, 0x15, 0xde, 0x86, 0xf4, 0xe1, 0xa2, 0xb6, 0x20, 0x43, 0x2f, 0xc1,
+ 0xa4, 0x61, 0x8b, 0x8c, 0x4b, 0xef, 0x61, 0x39, 0xc5, 0x02, 0x6f, 0xc1, 0xb0, 0x1b, 0x1e, 0x2c,
+ 0xea, 0xbc, 0xd3, 0x47, 0x75, 0xde, 0xc9, 0x52, 0xea, 0x4e, 0x2a, 0x3b, 0x51, 0x4a, 0xcb, 0x3a,
+ 0x4c, 0x86, 0xbc, 0xf7, 0x73, 0xd9, 0xb0, 0xfc, 0x2d, 0x09, 0xf2, 0x01, 0xaf, 0x8e, 0x14, 0x32,
+ 0x03, 0x69, 0x47, 0x23, 0x6d, 0xec, 0x08, 0xe7, 0x12, 0x6f, 0x51, 0x76, 0x48, 0x1d, 0xa1, 0x1d,
+ 0xe4, 0x7f, 0x87, 0xb4, 0xc8, 0xa1, 0x08, 0x52, 0x3b, 0x9a, 0xbd, 0xe3, 0x6a, 0x45, 0x9f, 0xd1,
+ 0x19, 0x00, 0xdb, 0x78, 0x82, 0xd5, 0xad, 0x7d, 0x87, 0x05, 0x04, 0xe9, 0x42, 0x52, 0xc9, 0x51,
+ 0xc8, 0x02, 0x05, 0xc8, 0xbf, 0x4b, 0xc3, 0x0c, 0x3f, 0x33, 0xac, 0xf3, 0x72, 0xe1, 0x2e, 0x76,
+ 0x34, 0x5d, 0x73, 0x34, 0xba, 0x1f, 0x1a, 0xbc, 0x31, 0x11, 0xfc, 0xc4, 0x1b, 0x6a, 0x40, 0xe9,
+ 0x51, 0x1f, 0xf7, 0xb1, 0xae, 0x7a, 0xc5, 0xca, 0x08, 0x6e, 0x5d, 0xe4, 0x34, 0x1e, 0x00, 0xad,
+ 0xc1, 0x0c, 0x67, 0xa8, 0xda, 0x8e, 0x46, 0x9c, 0x00, 0xb3, 0x64, 0x2c, 0xb3, 0x69, 0x4e, 0xd9,
+ 0xa4, 0x84, 0x3e, 0xc7, 0xfb, 0x50, 0x11, 0x1c, 0x5b, 0x56, 0xb7, 0xd7, 0xc1, 0x4e, 0x48, 0xc5,
+ 0x54, 0x2c, 0xd7, 0x32, 0xa7, 0x5e, 0x74, 0x89, 0x7d, 0xce, 0xef, 0xc1, 0x29, 0x5e, 0xf1, 0x6c,
+ 0x63, 0xa7, 0xb5, 0x33, 0xa4, 0xf0, 0x44, 0x3c, 0x6b, 0x46, 0x7e, 0x93, 0x52, 0x0f, 0x28, 0xad,
+ 0xc1, 0xd9, 0x20, 0xeb, 0x28, 0xcd, 0xd3, 0xb1, 0xec, 0x4f, 0xfb, 0xec, 0x23, 0xb4, 0xdf, 0x84,
+ 0x93, 0x9e, 0x57, 0x0d, 0xe9, 0x9e, 0x89, 0x65, 0x7e, 0xc2, 0x23, 0x1e, 0x50, 0xfd, 0x01, 0x9c,
+ 0xf1, 0xf9, 0x46, 0x29, 0x9e, 0x8d, 0xe5, 0x7d, 0xca, 0x63, 0x10, 0xa1, 0xf7, 0xff, 0xc2, 0x19,
+ 0x51, 0x29, 0xf4, 0x7b, 0x1d, 0x4b, 0xd3, 0x87, 0x74, 0xcf, 0xc5, 0xf2, 0xaf, 0x70, 0x06, 0x1b,
+ 0x8c, 0x7e, 0x40, 0x7d, 0x0c, 0xe7, 0xc3, 0xec, 0xa3, 0xb6, 0x00, 0xb1, 0x22, 0x5e, 0x0c, 0x8a,
+ 0x18, 0xde, 0x85, 0xfc, 0xf3, 0x34, 0x14, 0xf8, 0xcd, 0x52, 0xb0, 0xdd, 0xef, 0x38, 0x68, 0x65,
+ 0xa0, 0xd2, 0xe3, 0x49, 0xfa, 0x62, 0x6c, 0x30, 0x58, 0xf5, 0x4a, 0xc1, 0x70, 0x59, 0xf8, 0x01,
+ 0x4c, 0x07, 0xf8, 0xa9, 0x5e, 0xb6, 0x86, 0x11, 0x93, 0x3f, 0xe7, 0x2b, 0xa2, 0x9b, 0x82, 0x7c,
+ 0xd6, 0x4d, 0x37, 0x73, 0xdf, 0x83, 0xa2, 0x90, 0xe0, 0x31, 0x2f, 0x1c, 0x8a, 0xf9, 0x94, 0x15,
+ 0x7c, 0xb5, 0x91, 0x1a, 0x59, 0xd1, 0xf2, 0x32, 0xe3, 0xf2, 0x88, 0xbc, 0xbd, 0xe8, 0x1f, 0x55,
+ 0x03, 0xff, 0x1f, 0x9c, 0x1c, 0x10, 0xb0, 0xef, 0xef, 0x21, 0x7f, 0xa8, 0x3d, 0x9c, 0x08, 0x4b,
+ 0xd9, 0xf7, 0x36, 0x73, 0x0a, 0x72, 0xf8, 0xb1, 0xe1, 0xa8, 0x2d, 0x9a, 0xb1, 0x69, 0xb4, 0x99,
+ 0x50, 0xb2, 0x14, 0xb0, 0x48, 0x13, 0x06, 0x0d, 0xc3, 0x8e, 0x6e, 0xd1, 0xa6, 0x49, 0xdb, 0x63,
+ 0x01, 0xa3, 0xa0, 0xe4, 0x38, 0x44, 0xd1, 0xf6, 0xd0, 0x32, 0x4c, 0x8a, 0x65, 0x91, 0xa7, 0xd2,
+ 0xe3, 0xe5, 0xa9, 0x02, 0xa7, 0x16, 0x79, 0x80, 0x0b, 0xc3, 0x84, 0x30, 0x61, 0x19, 0x4f, 0x18,
+ 0x26, 0xc4, 0x17, 0x46, 0x97, 0x85, 0xb0, 0xec, 0xf8, 0xc2, 0x30, 0x21, 0x42, 0xd8, 0x36, 0x20,
+ 0x3f, 0x0a, 0x74, 0x45, 0xf2, 0x10, 0x57, 0xf3, 0xf5, 0x58, 0x96, 0xd1, 0xb9, 0x47, 0x39, 0xe6,
+ 0x21, 0xb9, 0xa0, 0x3b, 0xa9, 0xac, 0x54, 0x4a, 0xc8, 0x5f, 0x4a, 0x00, 0xf8, 0x17, 0x81, 0x66,
+ 0x3c, 0xda, 0xdc, 0xb8, 0x19, 0x8f, 0x3e, 0xff, 0x9d, 0xaa, 0x9b, 0x0a, 0x64, 0x5b, 0x96, 0xe9,
+ 0xb0, 0xfe, 0x91, 0x1f, 0xa7, 0xf7, 0x1e, 0x95, 0xf1, 0x33, 0x47, 0x5b, 0xf9, 0xa4, 0x4b, 0x19,
+ 0xf9, 0x13, 0x09, 0x52, 0xeb, 0x04, 0x63, 0xf4, 0x16, 0xa4, 0x68, 0x27, 0x2e, 0xba, 0xfa, 0xd9,
+ 0xd1, 0xab, 0x7d, 0x85, 0xd1, 0xa1, 0x9b, 0x90, 0x6d, 0xed, 0x18, 0x1d, 0x9d, 0x60, 0x53, 0x04,
+ 0xa3, 0x71, 0x78, 0x78, 0xb4, 0x72, 0x1f, 0x8a, 0x03, 0x57, 0x32, 0xf2, 0x7c, 0x6e, 0x41, 0xde,
+ 0x21, 0x18, 0xbb, 0xce, 0x97, 0x1c, 0xef, 0x90, 0x80, 0xd2, 0xf2, 0xe7, 0x3b, 0xa9, 0x6c, 0xa2,
+ 0x94, 0x94, 0x3f, 0x95, 0x60, 0x32, 0x74, 0x45, 0x23, 0xa5, 0xfe, 0xa3, 0xaa, 0xb3, 0x4b, 0x50,
+ 0x6c, 0xb8, 0x44, 0x6b, 0x56, 0xc7, 0x68, 0xed, 0x53, 0xd7, 0xe9, 0x11, 0xc3, 0x22, 0x86, 0xb3,
+ 0xcf, 0x54, 0x9c, 0x50, 0xbc, 0x77, 0xf9, 0x32, 0x20, 0x9e, 0x26, 0x6c, 0x36, 0xbf, 0x18, 0x81,
+ 0xe2, 0xa3, 0x24, 0x4c, 0x89, 0x5b, 0xa4, 0xe0, 0x47, 0x7d, 0xd7, 0x81, 0x4d, 0xdb, 0xd1, 0xcc,
+ 0x16, 0x56, 0x03, 0x65, 0x6a, 0xc1, 0x05, 0xae, 0xd0, 0x72, 0x75, 0x16, 0x8e, 0xd9, 0x0f, 0x8d,
+ 0x1e, 0x9f, 0x9c, 0xa8, 0x1d, 0xcb, 0x7a, 0xd8, 0xe7, 0xa5, 0x57, 0x56, 0x29, 0xd2, 0x05, 0x26,
+ 0x7f, 0x99, 0x81, 0x69, 0xc4, 0xd0, 0xd8, 0x05, 0x3d, 0x6c, 0x78, 0xe2, 0xd4, 0x22, 0x62, 0xfc,
+ 0x0f, 0x94, 0xfc, 0x88, 0xd1, 0x63, 0x3b, 0x14, 0xf7, 0xe3, 0xf2, 0x88, 0xf1, 0xc2, 0xb3, 0xa5,
+ 0x52, 0xc4, 0x03, 0xc6, 0xc5, 0x30, 0x4d, 0xb8, 0x01, 0xc5, 0xce, 0x84, 0x00, 0x1e, 0xe3, 0xae,
+ 0xc6, 0x0a, 0x18, 0xb6, 0xbe, 0x82, 0xc8, 0x10, 0x8c, 0xbb, 0x1e, 0x6f, 0x3c, 0x45, 0x23, 0xf2,
+ 0x08, 0x32, 0xcb, 0x56, 0x9b, 0x45, 0x25, 0x3f, 0x02, 0x49, 0x87, 0x8b, 0x40, 0x2f, 0xc3, 0xd4,
+ 0x4e, 0xbf, 0xab, 0x99, 0x2a, 0xc1, 0x9a, 0xce, 0x42, 0x50, 0x82, 0x1d, 0xcc, 0x24, 0x83, 0x2a,
+ 0x02, 0x28, 0x7f, 0x35, 0xe9, 0x3a, 0x17, 0x56, 0xb0, 0xdd, 0xb3, 0x4c, 0x1b, 0xa3, 0x06, 0xa4,
+ 0xb9, 0xba, 0x42, 0x76, 0x7c, 0xd3, 0x1a, 0x2c, 0x4e, 0x14, 0x41, 0x4c, 0x5d, 0x88, 0x99, 0x4f,
+ 0x57, 0x05, 0x37, 0xae, 0x40, 0x81, 0x03, 0x45, 0x25, 0x33, 0x0b, 0x69, 0x3e, 0x73, 0x14, 0x97,
+ 0x18, 0xb9, 0x65, 0x12, 0xe9, 0xb5, 0xaa, 0x4d, 0xb6, 0xa2, 0x08, 0x0c, 0xa4, 0x41, 0xde, 0xc6,
+ 0x64, 0x17, 0x13, 0xb5, 0x63, 0xb5, 0xf9, 0xd4, 0x2a, 0x5f, 0xff, 0xcf, 0x51, 0xf3, 0x83, 0xbb,
+ 0xbd, 0x6a, 0x93, 0xf1, 0x58, 0xb6, 0xda, 0x76, 0xc3, 0x74, 0xc8, 0xbe, 0x02, 0xb6, 0x07, 0x40,
+ 0x65, 0xc8, 0x74, 0xb1, 0x6d, 0x6b, 0x6d, 0xcc, 0x22, 0x72, 0x4e, 0x71, 0x5f, 0x2b, 0x6d, 0x28,
+ 0x0e, 0x10, 0xa2, 0x12, 0x24, 0x1f, 0xe2, 0x7d, 0x71, 0x33, 0xe8, 0x23, 0x7a, 0x2b, 0x38, 0x1b,
+ 0xc8, 0xd7, 0x2f, 0xc4, 0xea, 0x26, 0x8e, 0x5b, 0x4c, 0x11, 0xe6, 0x12, 0x37, 0x24, 0x59, 0x73,
+ 0xef, 0x22, 0xaf, 0x96, 0xdb, 0x58, 0x5e, 0x85, 0x09, 0xd6, 0x9f, 0xa3, 0x3c, 0x64, 0x36, 0x56,
+ 0xde, 0x5d, 0x59, 0xbd, 0xb7, 0x52, 0xfa, 0x17, 0x54, 0x84, 0xfc, 0xe2, 0xfc, 0xe2, 0xad, 0x86,
+ 0xba, 0x78, 0xab, 0xb1, 0xf8, 0x6e, 0x49, 0x42, 0x00, 0xe9, 0xff, 0xda, 0x68, 0x6c, 0x34, 0x96,
+ 0x4a, 0x09, 0x34, 0x09, 0xb9, 0xc6, 0xfd, 0xc6, 0xe2, 0xc6, 0xfa, 0xed, 0x95, 0x77, 0x4a, 0x49,
+ 0xfa, 0xba, 0xb8, 0x7a, 0x77, 0x6d, 0xb9, 0xb1, 0xde, 0x58, 0x2a, 0xa5, 0xe4, 0xaf, 0x27, 0xa0,
+ 0x2c, 0xac, 0xb2, 0xea, 0x8e, 0x9b, 0xbd, 0x9e, 0xed, 0x5d, 0x98, 0xb0, 0xa9, 0x58, 0xb6, 0xaf,
+ 0xa9, 0xfa, 0xb5, 0xd1, 0xef, 0x13, 0xd3, 0xb6, 0xca, 0x47, 0x09, 0x9c, 0xc7, 0xf0, 0xad, 0x4f,
+ 0x3c, 0xcf, 0xad, 0x7f, 0x15, 0x90, 0x28, 0x71, 0x6c, 0x87, 0x60, 0xad, 0xcb, 0x23, 0x53, 0x92,
+ 0x4f, 0x09, 0xf9, 0x4a, 0x93, 0x2d, 0xb0, 0xe8, 0xc4, 0xb1, 0x69, 0x8d, 0x12, 0xc4, 0x4e, 0x79,
+ 0xd8, 0x98, 0x10, 0x1f, 0x5b, 0x9e, 0x85, 0xe9, 0x7b, 0x9a, 0xe1, 0x78, 0x9b, 0x71, 0x03, 0x61,
+ 0x44, 0x9b, 0x2e, 0x7f, 0x94, 0x80, 0x99, 0x77, 0xb0, 0x13, 0xf2, 0xfa, 0x71, 0xe2, 0xe6, 0xd1,
+ 0x5a, 0x85, 0x89, 0xec, 0x18, 0x26, 0x56, 0xb9, 0x09, 0x44, 0x04, 0x2e, 0x70, 0x60, 0x93, 0xc1,
+ 0xc2, 0x48, 0x98, 0x10, 0xaf, 0x20, 0x71, 0x91, 0x30, 0x21, 0xa8, 0x0a, 0x2f, 0x08, 0xa4, 0x50,
+ 0x77, 0x31, 0xc1, 0xc7, 0xc3, 0x7c, 0xc9, 0xaf, 0x9c, 0x6c, 0xf9, 0x67, 0x09, 0x38, 0xb9, 0xd1,
+ 0xd3, 0x35, 0x07, 0xff, 0x93, 0x98, 0x42, 0xf1, 0xb8, 0x89, 0x90, 0x93, 0x3c, 0x4c, 0x00, 0x13,
+ 0x3c, 0x45, 0x84, 0x3a, 0x28, 0x1b, 0xa4, 0x8e, 0x34, 0x1b, 0xc8, 0x5f, 0x96, 0xe0, 0xc4, 0x4d,
+ 0xc3, 0xd4, 0xef, 0x1a, 0xb6, 0x6d, 0x98, 0xed, 0x85, 0x8e, 0xb5, 0x65, 0x8f, 0x65, 0xc9, 0x3b,
+ 0x50, 0xd8, 0xea, 0x58, 0x5b, 0xc2, 0x8e, 0x6e, 0x4f, 0x38, 0xb2, 0x21, 0xf3, 0x94, 0x98, 0x3f,
+ 0xdb, 0x72, 0x1f, 0xca, 0xc3, 0xba, 0x88, 0xec, 0xf0, 0x1e, 0x4c, 0x77, 0x39, 0x5c, 0x7d, 0x1e,
+ 0x79, 0xa8, 0xeb, 0x33, 0x77, 0xc5, 0xfe, 0x55, 0x82, 0x13, 0x0b, 0x9a, 0xd3, 0xda, 0xe1, 0x4e,
+ 0x35, 0xbe, 0x0d, 0xde, 0x87, 0x2c, 0xe1, 0xf8, 0xae, 0x3e, 0xf1, 0xe9, 0xe1, 0x00, 0x81, 0x55,
+ 0xf1, 0xab, 0x78, 0x1c, 0x2b, 0x0f, 0x20, 0xe3, 0x6a, 0xf3, 0xdc, 0xe9, 0x19, 0x41, 0x8a, 0x35,
+ 0x39, 0x09, 0x56, 0xf7, 0xb3, 0x67, 0xf9, 0xcf, 0x12, 0x94, 0x87, 0xb5, 0x11, 0x66, 0xff, 0x00,
+ 0x72, 0x44, 0x3c, 0xbb, 0xc3, 0xe4, 0x85, 0x43, 0xec, 0x4d, 0xe4, 0x40, 0xf7, 0x41, 0xf1, 0x99,
+ 0x56, 0xf6, 0x20, 0xeb, 0x49, 0x7b, 0xee, 0xfd, 0xf9, 0x79, 0x3d, 0x11, 0x97, 0xd7, 0xe5, 0xff,
+ 0x87, 0xe3, 0x4c, 0x51, 0x5a, 0x94, 0x8c, 0x7f, 0xe6, 0xf3, 0x90, 0x39, 0xa4, 0x0b, 0xba, 0x74,
+ 0xf2, 0x17, 0x13, 0x30, 0x33, 0xa8, 0x81, 0x30, 0xc4, 0x83, 0x61, 0xb3, 0x8f, 0xe8, 0x52, 0x43,
+ 0xbc, 0x22, 0x8d, 0xfe, 0x15, 0xe9, 0x28, 0xad, 0x1e, 0xe1, 0x55, 0xe3, 0x54, 0x58, 0xf2, 0x8f,
+ 0x24, 0x98, 0x7a, 0x07, 0x3b, 0xb4, 0x25, 0x1c, 0xeb, 0x0c, 0x6e, 0x41, 0xfe, 0x39, 0x3e, 0xe4,
+ 0x02, 0xf1, 0xbf, 0xe1, 0x9e, 0x82, 0x5c, 0x4f, 0x6b, 0x63, 0xd5, 0x36, 0x9e, 0xf0, 0xcc, 0x4e,
+ 0xfb, 0x14, 0xad, 0x8d, 0x9b, 0xc6, 0x13, 0x36, 0x01, 0x61, 0x8b, 0x8e, 0xf5, 0x10, 0x9b, 0x22,
+ 0x93, 0x33, 0xf4, 0x75, 0x0a, 0x90, 0x3f, 0x96, 0xa0, 0xe8, 0x69, 0x2f, 0x4c, 0xba, 0x1c, 0xfe,
+ 0x9a, 0x25, 0x8d, 0xdd, 0x9b, 0x86, 0xbe, 0x64, 0xbd, 0x02, 0x45, 0x13, 0x3f, 0x76, 0xd4, 0x80,
+ 0x16, 0xbc, 0x15, 0x9c, 0xa4, 0xe0, 0x35, 0x4f, 0x93, 0x37, 0x59, 0x7d, 0xb0, 0xa8, 0xf5, 0xb4,
+ 0x2d, 0xa3, 0x63, 0xb0, 0xd6, 0x6e, 0x0c, 0x73, 0xca, 0x3f, 0x4d, 0x02, 0xe2, 0xc5, 0x66, 0x90,
+ 0x05, 0xd2, 0x00, 0xf1, 0x0c, 0xd4, 0x0a, 0x40, 0x85, 0xab, 0xc4, 0x7f, 0x7a, 0x64, 0xc9, 0x26,
+ 0xa4, 0xd2, 0xb1, 0xd6, 0x20, 0x08, 0x75, 0x61, 0x26, 0x30, 0x8f, 0x0d, 0x8a, 0xe1, 0x67, 0x7a,
+ 0x7d, 0xf4, 0x6a, 0x30, 0x24, 0xea, 0x38, 0x8e, 0x02, 0xa3, 0x35, 0x98, 0xd1, 0x71, 0x8f, 0xe0,
+ 0x96, 0xe6, 0x60, 0x5d, 0xd5, 0x7a, 0x86, 0xba, 0x8b, 0x89, 0x6d, 0x58, 0xa6, 0x37, 0xc0, 0x0f,
+ 0x8a, 0x13, 0xff, 0xac, 0x68, 0xe2, 0xee, 0x26, 0x26, 0xca, 0xb4, 0x4f, 0x39, 0xdf, 0x33, 0x36,
+ 0x39, 0x1d, 0x5a, 0x80, 0x62, 0xc7, 0xda, 0x0b, 0xb1, 0x4a, 0xc5, 0xb2, 0x9a, 0xec, 0x58, 0x7b,
+ 0x01, 0x1e, 0x4b, 0x50, 0xda, 0x31, 0xda, 0x3b, 0x21, 0x26, 0x13, 0xb1, 0x4c, 0xa6, 0x28, 0x8d,
+ 0xcf, 0x45, 0xde, 0x86, 0x29, 0xee, 0xd3, 0x37, 0xfb, 0x26, 0xab, 0x27, 0xe4, 0xf5, 0xc8, 0x3a,
+ 0x1e, 0x20, 0xdd, 0xbc, 0x35, 0x5f, 0xbf, 0x76, 0xbd, 0x24, 0xa1, 0x2c, 0xa4, 0x9a, 0xb7, 0xe6,
+ 0xaf, 0x94, 0x12, 0x28, 0x03, 0xc9, 0xbb, 0x4b, 0xd7, 0x4a, 0x49, 0xfa, 0xb0, 0xd9, 0x5c, 0x2d,
+ 0xa5, 0x04, 0xde, 0xd5, 0x1b, 0xaf, 0x95, 0x26, 0xc4, 0xf3, 0xb5, 0x2b, 0xf5, 0x52, 0x5a, 0xbe,
+ 0x09, 0x67, 0x78, 0xf5, 0xc2, 0x0e, 0x98, 0x07, 0xfb, 0x90, 0x91, 0x5f, 0x86, 0xa9, 0x3e, 0x83,
+ 0xaa, 0xd8, 0xa4, 0x3d, 0x9f, 0xce, 0x5c, 0x26, 0xab, 0x4c, 0x72, 0x68, 0x83, 0x03, 0xe5, 0x5f,
+ 0x4a, 0x30, 0xbd, 0x26, 0x26, 0x02, 0x21, 0xfa, 0x16, 0x80, 0x98, 0x14, 0xf8, 0x37, 0x68, 0x31,
+ 0xfe, 0x4b, 0x77, 0x04, 0x2b, 0x0f, 0xa8, 0x68, 0x66, 0x1b, 0x2b, 0x01, 0xb6, 0x95, 0x0d, 0x98,
+ 0x0c, 0x2d, 0xa2, 0xf3, 0x50, 0xe8, 0x1a, 0xa6, 0x3a, 0x30, 0xb3, 0xc8, 0x77, 0x0d, 0xd3, 0xc5,
+ 0x63, 0x28, 0xda, 0x63, 0x1f, 0x25, 0x21, 0x50, 0xb4, 0xc7, 0x2e, 0x8a, 0xbc, 0x06, 0xa7, 0xc4,
+ 0x44, 0x67, 0x7e, 0xcb, 0xb6, 0x3a, 0x7d, 0x07, 0xaf, 0x69, 0xce, 0x4e, 0xd3, 0x21, 0x9a, 0x83,
+ 0xdb, 0xfb, 0xf2, 0x95, 0xc8, 0x13, 0x99, 0x02, 0x58, 0xba, 0xdd, 0x9c, 0x5f, 0x5e, 0x5e, 0xbd,
+ 0xd7, 0x58, 0x2a, 0x49, 0x74, 0xd1, 0x7d, 0x49, 0xc8, 0x3f, 0x4c, 0xc1, 0xb1, 0xa1, 0xab, 0x84,
+ 0x1e, 0x40, 0x91, 0xc7, 0x3e, 0x75, 0x5b, 0x9c, 0x36, 0x33, 0xd4, 0x28, 0xed, 0x53, 0xd8, 0x49,
+ 0x44, 0xfb, 0x34, 0xa5, 0x87, 0xa0, 0xe8, 0x63, 0x09, 0xce, 0x89, 0xca, 0x96, 0x87, 0x00, 0x71,
+ 0xa2, 0x11, 0x57, 0xf4, 0xad, 0x11, 0x8b, 0xdd, 0x03, 0xdc, 0x45, 0x39, 0xa3, 0x3d, 0xd3, 0x9b,
+ 0xfa, 0x70, 0x4a, 0x94, 0xc1, 0xc2, 0xc6, 0x61, 0x1d, 0xf8, 0xbd, 0xbd, 0x76, 0x28, 0xf7, 0x50,
+ 0x4e, 0x32, 0xce, 0x91, 0x4e, 0x38, 0x07, 0x15, 0x7a, 0xd6, 0x5b, 0x34, 0xb3, 0xaa, 0x8e, 0xe5,
+ 0x68, 0x1d, 0x35, 0xf0, 0x4d, 0x32, 0xc5, 0xbe, 0x49, 0xce, 0x74, 0xb5, 0xc7, 0x2c, 0xf5, 0xae,
+ 0xd3, 0xf5, 0xa6, 0xfb, 0x81, 0x92, 0x1a, 0xef, 0x45, 0x31, 0xb1, 0x57, 0x35, 0xe1, 0x06, 0xec,
+ 0x0f, 0x2d, 0xb4, 0x31, 0x64, 0x8e, 0xc0, 0xae, 0xf7, 0xd4, 0x08, 0x05, 0xd5, 0x33, 0x9c, 0x49,
+ 0x9c, 0xdc, 0x29, 0xfb, 0x19, 0xfe, 0xf6, 0xeb, 0x04, 0x1c, 0x8f, 0x0c, 0x90, 0xd1, 0x0e, 0x24,
+ 0x1d, 0x9d, 0x03, 0x9d, 0x87, 0x02, 0x25, 0xf2, 0x42, 0x00, 0x9f, 0xc5, 0xe4, 0x29, 0x4c, 0x04,
+ 0x00, 0xf4, 0x14, 0xce, 0x06, 0x66, 0x6a, 0x47, 0x7f, 0xba, 0xfe, 0x97, 0xbe, 0x03, 0x4e, 0xf8,
+ 0xa4, 0xdd, 0xef, 0xf5, 0x2c, 0x42, 0x53, 0xc1, 0xf0, 0x3c, 0x95, 0xb6, 0xa0, 0x27, 0x3c, 0x84,
+ 0xf0, 0xdc, 0x54, 0xbe, 0x0b, 0xf9, 0x75, 0xcb, 0xea, 0x2c, 0x61, 0x47, 0x33, 0x3a, 0xec, 0x33,
+ 0x8a, 0x63, 0x59, 0x9d, 0x60, 0x82, 0xcd, 0x52, 0x00, 0xab, 0x55, 0xce, 0x43, 0x81, 0x2d, 0xba,
+ 0x91, 0x9d, 0x27, 0xf0, 0x3c, 0x85, 0xb9, 0xa1, 0xfb, 0x0f, 0x12, 0x14, 0x45, 0xc2, 0xf6, 0xc6,
+ 0x22, 0xab, 0x82, 0x4c, 0xe7, 0x32, 0x44, 0xda, 0x8d, 0xff, 0x23, 0x4b, 0x40, 0x2f, 0x2e, 0x24,
+ 0xa0, 0xa4, 0xb8, 0xd1, 0x86, 0x2e, 0x94, 0xc8, 0x72, 0xc0, 0x6d, 0x1d, 0xbd, 0x0a, 0x88, 0x49,
+ 0x33, 0xcc, 0x5d, 0xab, 0xa5, 0xb9, 0x58, 0x62, 0xd2, 0x41, 0x57, 0x6e, 0x7b, 0x0b, 0xb7, 0x75,
+ 0x6a, 0xba, 0x96, 0x45, 0x08, 0xee, 0xb0, 0x34, 0xea, 0xd3, 0xd8, 0x94, 0x88, 0x97, 0x49, 0x27,
+ 0x7c, 0x04, 0x9f, 0xd4, 0xbe, 0xad, 0xd7, 0x7f, 0x90, 0x80, 0x9c, 0xe7, 0x92, 0xe8, 0x13, 0x09,
+ 0x32, 0x62, 0x32, 0x84, 0x6a, 0xa3, 0x4f, 0xd6, 0x98, 0xa9, 0x2a, 0x67, 0xdc, 0xca, 0x32, 0xf0,
+ 0x7f, 0xc6, 0xaa, 0x37, 0x60, 0x92, 0xaf, 0x7c, 0xe1, 0x57, 0xbf, 0xff, 0x46, 0xe2, 0xa2, 0xfc,
+ 0x4a, 0x6d, 0xb7, 0x5e, 0xfb, 0x30, 0x54, 0x05, 0xbd, 0x39, 0x3b, 0xfb, 0xb4, 0xc6, 0x37, 0x6f,
+ 0xcf, 0x71, 0x11, 0x78, 0x4e, 0x9a, 0xbd, 0x2c, 0xa1, 0x6f, 0x4b, 0x30, 0x19, 0x9a, 0xcb, 0xa0,
+ 0x78, 0xef, 0x8b, 0x9a, 0xe3, 0x8c, 0xa7, 0x1c, 0xd3, 0xc9, 0xff, 0x27, 0x66, 0x6d, 0x76, 0xf6,
+ 0xe9, 0xdc, 0x5e, 0x90, 0x2b, 0x53, 0xae, 0xfe, 0x9b, 0x24, 0xe4, 0x03, 0xc1, 0x14, 0xfd, 0x96,
+ 0x17, 0xa0, 0xa1, 0x4f, 0xb5, 0xf1, 0xdf, 0xaf, 0xa2, 0x27, 0x49, 0x95, 0xf1, 0x86, 0x16, 0xf2,
+ 0xfb, 0x6c, 0x03, 0x9b, 0x68, 0xfd, 0x99, 0xd6, 0x15, 0xc3, 0x88, 0xda, 0x87, 0xa1, 0xa1, 0x4b,
+ 0x75, 0x47, 0xb3, 0x77, 0x9e, 0x0e, 0x02, 0xfd, 0xf8, 0xfa, 0x14, 0xfd, 0x49, 0x02, 0x34, 0x3c,
+ 0xe9, 0x41, 0x73, 0xb1, 0x3a, 0x1e, 0x38, 0x1e, 0x1a, 0x77, 0x7f, 0x0f, 0xd9, 0xfe, 0x70, 0xe5,
+ 0x73, 0xd9, 0xdf, 0x5c, 0x78, 0x6c, 0x54, 0xff, 0x34, 0x0d, 0x27, 0x17, 0xf9, 0xa7, 0xb8, 0x79,
+ 0x5d, 0x27, 0xd8, 0xb6, 0x69, 0x88, 0x6c, 0x3a, 0x16, 0xd1, 0xda, 0x18, 0xfd, 0x58, 0x82, 0xd2,
+ 0xe0, 0x78, 0x04, 0xdd, 0x18, 0xe1, 0x8f, 0x76, 0x91, 0xd3, 0x9d, 0xca, 0x1b, 0x87, 0xa0, 0xe4,
+ 0xdd, 0x8d, 0x7c, 0x95, 0x19, 0xe5, 0x92, 0x7c, 0xe1, 0x00, 0xa3, 0x6c, 0x51, 0xec, 0xb9, 0x6d,
+ 0x9f, 0x7c, 0x4e, 0x9a, 0x65, 0xea, 0x0f, 0x0e, 0x06, 0x46, 0x50, 0xff, 0x80, 0x39, 0xc9, 0x08,
+ 0xea, 0x1f, 0x34, 0x85, 0x18, 0x51, 0xfd, 0x2d, 0x9f, 0x9c, 0xaa, 0xff, 0x7d, 0x09, 0xa6, 0xc2,
+ 0x0d, 0x36, 0xba, 0x3e, 0x76, 0x47, 0xce, 0x55, 0x7f, 0xfd, 0x90, 0x9d, 0x7c, 0x6c, 0x28, 0x0b,
+ 0x28, 0x4e, 0x89, 0xa9, 0xda, 0x9f, 0x49, 0x90, 0x11, 0xcd, 0xe9, 0x08, 0x91, 0x35, 0xdc, 0x84,
+ 0x57, 0x2e, 0x8f, 0x4e, 0x20, 0x34, 0xbc, 0xcf, 0x34, 0x54, 0xd0, 0xda, 0xb3, 0x34, 0xac, 0x7d,
+ 0x18, 0xe8, 0xda, 0xdd, 0x4b, 0x12, 0x04, 0x05, 0xaf, 0x48, 0x9b, 0x4b, 0xb8, 0x2c, 0xd5, 0x7f,
+ 0x22, 0x41, 0x21, 0x94, 0xba, 0xbf, 0xc7, 0xe3, 0x5e, 0x08, 0x36, 0x52, 0xdc, 0x8b, 0xe8, 0x90,
+ 0x2b, 0xf1, 0x13, 0xd5, 0xe1, 0xd6, 0x58, 0xbe, 0xc8, 0xb6, 0xfb, 0x32, 0x7a, 0xe9, 0x80, 0xed,
+ 0x06, 0xab, 0x98, 0x05, 0x02, 0x71, 0x7f, 0xec, 0x5f, 0x98, 0x56, 0x18, 0xd0, 0xff, 0x54, 0x48,
+ 0x2c, 0xc7, 0x5a, 0x93, 0xfe, 0xbb, 0xc8, 0x91, 0x3d, 0xdc, 0xef, 0x24, 0x92, 0x4a, 0xe3, 0xfe,
+ 0x77, 0x13, 0x67, 0x17, 0x18, 0xc3, 0x05, 0xc6, 0x90, 0xd3, 0xfa, 0x9d, 0x70, 0x75, 0xb3, 0xbe,
+ 0x95, 0x66, 0x7f, 0xfb, 0xb9, 0xfa, 0xb7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x23, 0x23, 0xc9, 0x9d,
+ 0x8b, 0x30, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
diff --git a/build/bazel/remote/execution/v2/remote_execution.proto b/build/bazel/remote/execution/v2/remote_execution.proto
index 103e164..b69105d 100644
--- a/build/bazel/remote/execution/v2/remote_execution.proto
+++ b/build/bazel/remote/execution/v2/remote_execution.proto
@@ -21,6 +21,7 @@ import "google/api/annotations.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
+import "google/protobuf/wrappers.proto";
import "google/rpc/status.proto";
option csharp_namespace = "Build.Bazel.Remote.Execution.V2";
@@ -554,14 +555,17 @@ message Command {
// empty, then the action is run in the input root.
string working_directory = 6;
- // List of required supported [NodeProperty][build.bazel.remote.execution.v2.NodeProperty]
- // keys. In order to ensure that equivalent `Action`s always hash to the same
- // value, the supported node properties MUST be lexicographically sorted by name.
+ // A list of keys for node properties the client expects to retrieve for
+ // output files and directories. Keys are either names of string-based
+ // [NodeProperty][build.bazel.remote.execution.v2.NodeProperty] or
+ // names of fields in [NodeProperties][build.bazel.remote.execution.v2.NodeProperties].
+ // In order to ensure that equivalent `Action`s always hash to the same
+ // value, the node properties MUST be lexicographically sorted by name.
// Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.
//
- // The interpretation of these properties is server-dependent. If a property is
- // not recognized by the server, the server will return an `INVALID_ARGUMENT`
- // error.
+ // The interpretation of string-based properties is server-dependent. If a
+ // property is not recognized by the server, the server will return an
+ // `INVALID_ARGUMENT`.
repeated string output_node_properties = 8;
}
@@ -690,7 +694,8 @@ message Directory {
repeated SymlinkNode symlinks = 3;
// The node properties of the Directory.
- repeated NodeProperty node_properties = 4;
+ reserved 4;
+ NodeProperties node_properties = 5;
}
// A single property for [FileNodes][build.bazel.remote.execution.v2.FileNode],
@@ -706,6 +711,23 @@ message NodeProperty {
string value = 2;
}
+// Node properties for [FileNodes][build.bazel.remote.execution.v2.FileNode],
+// [DirectoryNodes][build.bazel.remote.execution.v2.DirectoryNode], and
+// [SymlinkNodes][build.bazel.remote.execution.v2.SymlinkNode]. The server is
+// responsible for specifying the properties that it accepts.
+//
+message NodeProperties {
+ // A list of string-based
+ // [NodeProperties][build.bazel.remote.execution.v2.NodeProperty].
+ repeated NodeProperty properties = 1;
+
+ // The file's last modification timestamp.
+ google.protobuf.Timestamp mtime = 2;
+
+ // The UNIX file mode, e.g., 0755.
+ google.protobuf.UInt32Value unix_mode = 3;
+}
+
// A `FileNode` represents a single file and associated metadata.
message FileNode {
// The name of the file.
@@ -720,7 +742,8 @@ message FileNode {
bool is_executable = 4;
// The node properties of the FileNode.
- repeated NodeProperty node_properties = 5;
+ reserved 5;
+ NodeProperties node_properties = 6;
}
// A `DirectoryNode` represents a child of a
@@ -751,7 +774,8 @@ message SymlinkNode {
string target = 2;
// The node properties of the SymlinkNode.
- repeated NodeProperty node_properties = 3;
+ reserved 3;
+ NodeProperties node_properties = 4;
}
// A content digest. A digest for a given blob consists of the size of the blob
@@ -1022,7 +1046,8 @@ message OutputFile {
bytes contents = 5;
// The supported node properties of the OutputFile, if requested by the Action.
- repeated NodeProperty node_properties = 6;
+ reserved 6;
+ NodeProperties node_properties = 7;
}
// A `Tree` contains all the
@@ -1077,7 +1102,8 @@ message OutputSymlink {
// The supported node properties of the OutputSymlink, if requested by the
// Action.
- repeated NodeProperty node_properties = 3;
+ reserved 3;
+ NodeProperties node_properties = 4;
}
// An `ExecutionPolicy` can be used to control the scheduling of the action.