diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json
index 777908e3f97..662a8910358 100644
--- a/api/openapi-spec/swagger.json
+++ b/api/openapi-spec/swagger.json
@@ -78477,7 +78477,7 @@
}
},
"io.k8s.api.core.v1.NodeSelectorTerm": {
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"description": "A list of node selector requirements by node's labels.",
@@ -80948,6 +80948,38 @@
}
}
},
+ "io.k8s.api.core.v1.TopologySelectorLabelRequirement": {
+ "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
+ "required": [
+ "key",
+ "values"
+ ],
+ "properties": {
+ "key": {
+ "description": "The label key that the selector applies to.",
+ "type": "string"
+ },
+ "values": {
+ "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "io.k8s.api.core.v1.TopologySelectorTerm": {
+ "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
+ "properties": {
+ "matchLabelExpressions": {
+ "description": "A list of topology selector requirements by labels.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement"
+ }
+ }
+ }
+ },
"io.k8s.api.core.v1.Volume": {
"description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.",
"required": [
@@ -84727,6 +84759,13 @@
"description": "AllowVolumeExpansion shows whether the storage class allow volume expand",
"type": "boolean"
},
+ "allowedTopologies": {
+ "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm"
+ }
+ },
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources",
"type": "string"
@@ -84958,6 +84997,13 @@
"description": "AllowVolumeExpansion shows whether the storage class allow volume expand",
"type": "boolean"
},
+ "allowedTopologies": {
+ "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature.",
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorTerm"
+ }
+ },
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources",
"type": "string"
diff --git a/api/swagger-spec/apps_v1.json b/api/swagger-spec/apps_v1.json
index abda3e4f080..c2196c74fae 100644
--- a/api/swagger-spec/apps_v1.json
+++ b/api/swagger-spec/apps_v1.json
@@ -8477,7 +8477,7 @@
},
"v1.NodeSelectorTerm": {
"id": "v1.NodeSelectorTerm",
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"type": "array",
diff --git a/api/swagger-spec/apps_v1beta1.json b/api/swagger-spec/apps_v1beta1.json
index e083650be43..5bddabbe4ab 100644
--- a/api/swagger-spec/apps_v1beta1.json
+++ b/api/swagger-spec/apps_v1beta1.json
@@ -6111,7 +6111,7 @@
},
"v1.NodeSelectorTerm": {
"id": "v1.NodeSelectorTerm",
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"type": "array",
diff --git a/api/swagger-spec/apps_v1beta2.json b/api/swagger-spec/apps_v1beta2.json
index d0b04ecfdd0..ec10930ea86 100644
--- a/api/swagger-spec/apps_v1beta2.json
+++ b/api/swagger-spec/apps_v1beta2.json
@@ -8477,7 +8477,7 @@
},
"v1.NodeSelectorTerm": {
"id": "v1.NodeSelectorTerm",
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"type": "array",
diff --git a/api/swagger-spec/batch_v1.json b/api/swagger-spec/batch_v1.json
index d87511ce117..be8705f5bef 100644
--- a/api/swagger-spec/batch_v1.json
+++ b/api/swagger-spec/batch_v1.json
@@ -3451,7 +3451,7 @@
},
"v1.NodeSelectorTerm": {
"id": "v1.NodeSelectorTerm",
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"type": "array",
diff --git a/api/swagger-spec/batch_v1beta1.json b/api/swagger-spec/batch_v1beta1.json
index a8d86c23c5a..35f48ba56ac 100644
--- a/api/swagger-spec/batch_v1beta1.json
+++ b/api/swagger-spec/batch_v1beta1.json
@@ -3506,7 +3506,7 @@
},
"v1.NodeSelectorTerm": {
"id": "v1.NodeSelectorTerm",
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"type": "array",
diff --git a/api/swagger-spec/batch_v2alpha1.json b/api/swagger-spec/batch_v2alpha1.json
index 62da175d849..fb320f3d9ff 100644
--- a/api/swagger-spec/batch_v2alpha1.json
+++ b/api/swagger-spec/batch_v2alpha1.json
@@ -3506,7 +3506,7 @@
},
"v1.NodeSelectorTerm": {
"id": "v1.NodeSelectorTerm",
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"type": "array",
diff --git a/api/swagger-spec/extensions_v1beta1.json b/api/swagger-spec/extensions_v1beta1.json
index e01449b8513..4d2038652a0 100644
--- a/api/swagger-spec/extensions_v1beta1.json
+++ b/api/swagger-spec/extensions_v1beta1.json
@@ -9119,7 +9119,7 @@
},
"v1.NodeSelectorTerm": {
"id": "v1.NodeSelectorTerm",
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"type": "array",
diff --git a/api/swagger-spec/storage.k8s.io_v1.json b/api/swagger-spec/storage.k8s.io_v1.json
index 19adf296d06..2ffcfd9c7ea 100644
--- a/api/swagger-spec/storage.k8s.io_v1.json
+++ b/api/swagger-spec/storage.k8s.io_v1.json
@@ -818,6 +818,13 @@
"volumeBindingMode": {
"$ref": "v1.VolumeBindingMode",
"description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature."
+ },
+ "allowedTopologies": {
+ "type": "array",
+ "items": {
+ "$ref": "v1.TopologySelectorTerm"
+ },
+ "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature."
}
}
},
@@ -1067,6 +1074,40 @@
"id": "v1.VolumeBindingMode",
"properties": {}
},
+ "v1.TopologySelectorTerm": {
+ "id": "v1.TopologySelectorTerm",
+ "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
+ "properties": {
+ "matchLabelExpressions": {
+ "type": "array",
+ "items": {
+ "$ref": "v1.TopologySelectorLabelRequirement"
+ },
+ "description": "A list of topology selector requirements by labels."
+ }
+ }
+ },
+ "v1.TopologySelectorLabelRequirement": {
+ "id": "v1.TopologySelectorLabelRequirement",
+ "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
+ "required": [
+ "key",
+ "values"
+ ],
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "The label key that the selector applies to."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed."
+ }
+ }
+ },
"v1.WatchEvent": {
"id": "v1.WatchEvent",
"required": [
diff --git a/api/swagger-spec/storage.k8s.io_v1beta1.json b/api/swagger-spec/storage.k8s.io_v1beta1.json
index 3f987d8a84f..3859a22033d 100644
--- a/api/swagger-spec/storage.k8s.io_v1beta1.json
+++ b/api/swagger-spec/storage.k8s.io_v1beta1.json
@@ -1512,6 +1512,13 @@
"volumeBindingMode": {
"$ref": "v1beta1.VolumeBindingMode",
"description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature."
+ },
+ "allowedTopologies": {
+ "type": "array",
+ "items": {
+ "$ref": "v1.TopologySelectorTerm"
+ },
+ "description": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature."
}
}
},
@@ -1761,6 +1768,40 @@
"id": "v1beta1.VolumeBindingMode",
"properties": {}
},
+ "v1.TopologySelectorTerm": {
+ "id": "v1.TopologySelectorTerm",
+ "description": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
+ "properties": {
+ "matchLabelExpressions": {
+ "type": "array",
+ "items": {
+ "$ref": "v1.TopologySelectorLabelRequirement"
+ },
+ "description": "A list of topology selector requirements by labels."
+ }
+ }
+ },
+ "v1.TopologySelectorLabelRequirement": {
+ "id": "v1.TopologySelectorLabelRequirement",
+ "description": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
+ "required": [
+ "key",
+ "values"
+ ],
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "The label key that the selector applies to."
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed."
+ }
+ }
+ },
"v1.WatchEvent": {
"id": "v1.WatchEvent",
"required": [
diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json
index 3238f6a017c..8e8cf454bad 100644
--- a/api/swagger-spec/v1.json
+++ b/api/swagger-spec/v1.json
@@ -20110,7 +20110,7 @@
},
"v1.NodeSelectorTerm": {
"id": "v1.NodeSelectorTerm",
- "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"properties": {
"matchExpressions": {
"type": "array",
diff --git a/docs/api-reference/apps/v1/definitions.html b/docs/api-reference/apps/v1/definitions.html
index 392c0e2c5b1..457956090f2 100755
--- a/docs/api-reference/apps/v1/definitions.html
+++ b/docs/api-reference/apps/v1/definitions.html
@@ -512,7 +512,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1.NodeSelectorTerm
-
A null or empty node selector term matches no objects. The requirements of them are ANDed.
+
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
diff --git a/docs/api-reference/apps/v1beta1/definitions.html b/docs/api-reference/apps/v1beta1/definitions.html
index b68d17decd4..c6739e6abdd 100755
--- a/docs/api-reference/apps/v1beta1/definitions.html
+++ b/docs/api-reference/apps/v1beta1/definitions.html
@@ -623,7 +623,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1.NodeSelectorTerm
-
A null or empty node selector term matches no objects. The requirements of them are ANDed.
+
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html
index edfe7397fbb..d9b7457d906 100755
--- a/docs/api-reference/apps/v1beta2/definitions.html
+++ b/docs/api-reference/apps/v1beta2/definitions.html
@@ -515,7 +515,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1.NodeSelectorTerm
-
A null or empty node selector term matches no objects. The requirements of them are ANDed.
+
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
diff --git a/docs/api-reference/batch/v1/definitions.html b/docs/api-reference/batch/v1/definitions.html
index a9f34ca1d57..c382912dc2d 100755
--- a/docs/api-reference/batch/v1/definitions.html
+++ b/docs/api-reference/batch/v1/definitions.html
@@ -488,7 +488,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1.NodeSelectorTerm
-
A null or empty node selector term matches no objects. The requirements of them are ANDed.
+
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
diff --git a/docs/api-reference/batch/v1beta1/definitions.html b/docs/api-reference/batch/v1beta1/definitions.html
index bea6cb571e4..f5fa8ad026e 100755
--- a/docs/api-reference/batch/v1beta1/definitions.html
+++ b/docs/api-reference/batch/v1beta1/definitions.html
@@ -488,7 +488,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1.NodeSelectorTerm
-
A null or empty node selector term matches no objects. The requirements of them are ANDed.
+
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
diff --git a/docs/api-reference/batch/v2alpha1/definitions.html b/docs/api-reference/batch/v2alpha1/definitions.html
index 35d22926b6b..41cc254eef6 100755
--- a/docs/api-reference/batch/v2alpha1/definitions.html
+++ b/docs/api-reference/batch/v2alpha1/definitions.html
@@ -488,7 +488,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1.NodeSelectorTerm
-
A null or empty node selector term matches no objects. The requirements of them are ANDed.
+
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
diff --git a/docs/api-reference/extensions/v1beta1/definitions.html b/docs/api-reference/extensions/v1beta1/definitions.html
index 29c0320cca0..3f61ae2b686 100755
--- a/docs/api-reference/extensions/v1beta1/definitions.html
+++ b/docs/api-reference/extensions/v1beta1/definitions.html
@@ -740,7 +740,7 @@ Examples: /foo
would allow /foo
, /foo/
an
v1.NodeSelectorTerm
-
A null or empty node selector term matches no objects. The requirements of them are ANDed.
+
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
diff --git a/docs/api-reference/storage.k8s.io/v1/definitions.html b/docs/api-reference/storage.k8s.io/v1/definitions.html
index a8b980f1f74..6d6bed86b24 100755
--- a/docs/api-reference/storage.k8s.io/v1/definitions.html
+++ b/docs/api-reference/storage.k8s.io/v1/definitions.html
@@ -559,6 +559,47 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+
+
+
v1.TopologySelectorLabelRequirement
+
+
A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.
+
+
+
+
+
+
+
+
+
+
+
+Name |
+Description |
+Required |
+Schema |
+Default |
+
+
+
+
+key |
+The label key that the selector applies to. |
+true |
+string |
+ |
+
+
+values |
+An array of string values. One value must match the label to be selected. Each entry in Values is ORed. |
+true |
+string array |
+ |
+
+
+
+
v1.StatusDetails
@@ -1003,6 +1044,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1.VolumeBindingMode |
|
+
+allowedTopologies |
+Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature. |
+false |
+v1.TopologySelectorTerm array |
+ |
+
@@ -1230,6 +1278,40 @@ When an object is created, the system will populate this list with the current s
+
+
+
v1.TopologySelectorTerm
+
+
A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.
+
+
+
+
+
+
+
+
+
+
+
+Name |
+Description |
+Required |
+Schema |
+Default |
+
+
+
+
+matchLabelExpressions |
+A list of topology selector requirements by labels. |
+false |
+v1.TopologySelectorLabelRequirement array |
+ |
+
+
+
+
v1.PersistentVolumeReclaimPolicy
diff --git a/docs/api-reference/storage.k8s.io/v1beta1/definitions.html b/docs/api-reference/storage.k8s.io/v1beta1/definitions.html
index 1e36a24524d..77fec9d25d9 100755
--- a/docs/api-reference/storage.k8s.io/v1beta1/definitions.html
+++ b/docs/api-reference/storage.k8s.io/v1beta1/definitions.html
@@ -779,6 +779,40 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1.PersistentVolumeReclaimPolicy
+
+
+
v1.TopologySelectorTerm
+
+
A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.
+
+
+
+
+
+
+
+
+
+
+
+Name |
+Description |
+Required |
+Schema |
+Default |
+
+
+
+
+matchLabelExpressions |
+A list of topology selector requirements by labels. |
+false |
+v1.TopologySelectorLabelRequirement array |
+ |
+
+
+
+
v1beta1.VolumeAttachmentList
@@ -1041,6 +1075,47 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+
+
+
v1.TopologySelectorLabelRequirement
+
+
A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.
+
+
+
+
+
+
+
+
+
+
+
+Name |
+Description |
+Required |
+Schema |
+Default |
+
+
+
+
+key |
+The label key that the selector applies to. |
+true |
+string |
+ |
+
+
+values |
+An array of string values. One value must match the label to be selected. Each entry in Values is ORed. |
+true |
+string array |
+ |
+
+
+
+
v1.Initializer
@@ -1075,6 +1150,47 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+
+
+
v1beta1.VolumeError
+
+
VolumeError captures an error encountered during a volume operation.
+
+
+
+
+
+
+
+
+
+
+
+Name |
+Description |
+Required |
+Schema |
+Default |
+
+
+
+
+time |
+Time the error was encountered. |
+false |
+string |
+ |
+
+
+message |
+String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information. |
+false |
+string |
+ |
+
+
+
+
v1beta1.StorageClass
@@ -1165,45 +1281,11 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
v1beta1.VolumeBindingMode |
|
-
-
-
-
-
-
v1beta1.VolumeError
-
-
VolumeError captures an error encountered during a volume operation.
-
-
-
-
-
-
-
-
-
-
-Name |
-Description |
-Required |
-Schema |
-Default |
-
-
-
-
-time |
-Time the error was encountered. |
+allowedTopologies |
+Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature. |
false |
-string |
- |
-
-
-message |
-String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information. |
-false |
-string |
+v1.TopologySelectorTerm array |
|
diff --git a/docs/api-reference/v1/definitions.html b/docs/api-reference/v1/definitions.html
index 44a72a031a0..63b4c5a4e00 100755
--- a/docs/api-reference/v1/definitions.html
+++ b/docs/api-reference/v1/definitions.html
@@ -6587,7 +6587,7 @@ Examples:
v1.NodeSelectorTerm
-
A null or empty node selector term matches no objects. The requirements of them are ANDed.
+
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
diff --git a/pkg/apis/core/types.go b/pkg/apis/core/types.go
index 0f750b1b572..d2593cac0cc 100644
--- a/pkg/apis/core/types.go
+++ b/pkg/apis/core/types.go
@@ -2166,6 +2166,7 @@ type NodeSelector struct {
// A null or empty node selector term matches no objects. The requirements of
// them are ANDed.
+// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
type NodeSelectorTerm struct {
// A list of node selector requirements by node's labels.
MatchExpressions []NodeSelectorRequirement
@@ -2203,6 +2204,27 @@ const (
NodeSelectorOpLt NodeSelectorOperator = "Lt"
)
+// A topology selector term represents the result of label queries.
+// A null or empty topology selector term matches no objects.
+// The requirements of them are ANDed.
+// It provides a subset of functionality as NodeSelectorTerm.
+// This is an alpha feature and may change in the future.
+type TopologySelectorTerm struct {
+ // A list of topology selector requirements by labels.
+ // +optional
+ MatchLabelExpressions []TopologySelectorLabelRequirement
+}
+
+// A topology selector requirement is a selector that matches given label.
+// This is an alpha feature and may change in the future.
+type TopologySelectorLabelRequirement struct {
+ // The label key that the selector applies to.
+ Key string
+ // An array of string values. One value must match the label to be selected.
+ // Each entry in Values is ORed.
+ Values []string
+}
+
// Affinity is a group of affinity scheduling rules.
type Affinity struct {
// Describes node affinity scheduling rules for the pod.
diff --git a/pkg/apis/core/v1/helper/helpers.go b/pkg/apis/core/v1/helper/helpers.go
index 667ff54a20f..931ff76613d 100644
--- a/pkg/apis/core/v1/helper/helpers.go
+++ b/pkg/apis/core/v1/helper/helpers.go
@@ -316,6 +316,50 @@ func MatchNodeSelectorTerms(
return false
}
+// TopologySelectorRequirementsAsSelector converts the []TopologySelectorLabelRequirement api type into a struct
+// that implements labels.Selector.
+func TopologySelectorRequirementsAsSelector(tsm []v1.TopologySelectorLabelRequirement) (labels.Selector, error) {
+ if len(tsm) == 0 {
+ return labels.Nothing(), nil
+ }
+
+ selector := labels.NewSelector()
+ for _, expr := range tsm {
+ r, err := labels.NewRequirement(expr.Key, selection.In, expr.Values)
+ if err != nil {
+ return nil, err
+ }
+ selector = selector.Add(*r)
+ }
+
+ return selector, nil
+}
+
+// MatchTopologySelectorTerms checks whether given labels match topology selector terms in ORed;
+// nil or empty term matches no objects; while empty term list matches all objects.
+func MatchTopologySelectorTerms(topologySelectorTerms []v1.TopologySelectorTerm, lbls labels.Set) bool {
+ if len(topologySelectorTerms) == 0 {
+ // empty term list matches all objects
+ return true
+ }
+
+ for _, req := range topologySelectorTerms {
+ // nil or empty term selects no objects
+ if len(req.MatchLabelExpressions) == 0 {
+ continue
+ }
+
+ labelSelector, err := TopologySelectorRequirementsAsSelector(req.MatchLabelExpressions)
+ if err != nil || !labelSelector.Matches(lbls) {
+ continue
+ }
+
+ return true
+ }
+
+ return false
+}
+
// AddOrUpdateTolerationInPodSpec tries to add a toleration to the toleration list in PodSpec.
// Returns true if something was updated, false otherwise.
func AddOrUpdateTolerationInPodSpec(spec *v1.PodSpec, toleration *v1.Toleration) bool {
diff --git a/pkg/apis/core/v1/helper/helpers_test.go b/pkg/apis/core/v1/helper/helpers_test.go
index 682c96dc09c..4721cb0c01d 100644
--- a/pkg/apis/core/v1/helper/helpers_test.go
+++ b/pkg/apis/core/v1/helper/helpers_test.go
@@ -301,6 +301,71 @@ func TestNodeSelectorRequirementsAsSelector(t *testing.T) {
}
}
+func TestTopologySelectorRequirementsAsSelector(t *testing.T) {
+ mustParse := func(s string) labels.Selector {
+ out, e := labels.Parse(s)
+ if e != nil {
+ panic(e)
+ }
+ return out
+ }
+ tc := []struct {
+ in []v1.TopologySelectorLabelRequirement
+ out labels.Selector
+ expectErr bool
+ }{
+ {in: nil, out: labels.Nothing()},
+ {in: []v1.TopologySelectorLabelRequirement{}, out: labels.Nothing()},
+ {
+ in: []v1.TopologySelectorLabelRequirement{{
+ Key: "foo",
+ Values: []string{"bar", "baz"},
+ }},
+ out: mustParse("foo in (baz,bar)"),
+ },
+ {
+ in: []v1.TopologySelectorLabelRequirement{{
+ Key: "foo",
+ Values: []string{},
+ }},
+ expectErr: true,
+ },
+ {
+ in: []v1.TopologySelectorLabelRequirement{
+ {
+ Key: "foo",
+ Values: []string{"bar", "baz"},
+ },
+ {
+ Key: "invalid",
+ Values: []string{},
+ },
+ },
+ expectErr: true,
+ },
+ {
+ in: []v1.TopologySelectorLabelRequirement{{
+ Key: "/invalidkey",
+ Values: []string{"bar", "baz"},
+ }},
+ expectErr: true,
+ },
+ }
+
+ for i, tc := range tc {
+ out, err := TopologySelectorRequirementsAsSelector(tc.in)
+ if err == nil && tc.expectErr {
+ t.Errorf("[%v]expected error but got none.", i)
+ }
+ if err != nil && !tc.expectErr {
+ t.Errorf("[%v]did not expect error but got: %v", i, err)
+ }
+ if !reflect.DeepEqual(out, tc.out) {
+ t.Errorf("[%v]expected:\n\t%+v\nbut got:\n\t%+v", i, tc.out, out)
+ }
+ }
+}
+
func TestTolerationsTolerateTaintsWithFilter(t *testing.T) {
testCases := []struct {
description string
@@ -792,3 +857,161 @@ func TestMatchNodeSelectorTerms(t *testing.T) {
})
}
}
+
+func TestMatchTopologySelectorTerms(t *testing.T) {
+ type args struct {
+ topologySelectorTerms []v1.TopologySelectorTerm
+ labels labels.Set
+ }
+
+ tests := []struct {
+ name string
+ args args
+ want bool
+ }{
+ {
+ name: "nil term list",
+ args: args{
+ topologySelectorTerms: nil,
+ labels: nil,
+ },
+ want: true,
+ },
+ {
+ name: "nil term",
+ args: args{
+ topologySelectorTerms: []v1.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{},
+ },
+ },
+ labels: nil,
+ },
+ want: false,
+ },
+ {
+ name: "label matches MatchLabelExpressions terms",
+ args: args{
+ topologySelectorTerms: []v1.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{{
+ Key: "label_1",
+ Values: []string{"label_1_val"},
+ }},
+ },
+ },
+ labels: map[string]string{"label_1": "label_1_val"},
+ },
+ want: true,
+ },
+ {
+ name: "label does not match MatchLabelExpressions terms",
+ args: args{
+ topologySelectorTerms: []v1.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{{
+ Key: "label_1",
+ Values: []string{"label_1_val"},
+ }},
+ },
+ },
+ labels: map[string]string{"label_1": "label_1_val-failed"},
+ },
+ want: false,
+ },
+ {
+ name: "multi-values in one requirement, one matched",
+ args: args{
+ topologySelectorTerms: []v1.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{{
+ Key: "label_1",
+ Values: []string{"label_1_val1", "label_1_val2"},
+ }},
+ },
+ },
+ labels: map[string]string{"label_1": "label_1_val2"},
+ },
+ want: true,
+ },
+ {
+ name: "multi-terms was set, one matched",
+ args: args{
+ topologySelectorTerms: []v1.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{{
+ Key: "label_1",
+ Values: []string{"label_1_val"},
+ }},
+ },
+ {
+ MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{{
+ Key: "label_2",
+ Values: []string{"label_2_val"},
+ }},
+ },
+ },
+ labels: map[string]string{
+ "label_2": "label_2_val",
+ },
+ },
+ want: true,
+ },
+ {
+ name: "multi-requirement in one term, fully matched",
+ args: args{
+ topologySelectorTerms: []v1.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{
+ {
+ Key: "label_1",
+ Values: []string{"label_1_val"},
+ },
+ {
+ Key: "label_2",
+ Values: []string{"label_2_val"},
+ },
+ },
+ },
+ },
+ labels: map[string]string{
+ "label_1": "label_1_val",
+ "label_2": "label_2_val",
+ },
+ },
+ want: true,
+ },
+ {
+ name: "multi-requirement in one term, partial matched",
+ args: args{
+ topologySelectorTerms: []v1.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{
+ {
+ Key: "label_1",
+ Values: []string{"label_1_val"},
+ },
+ {
+ Key: "label_2",
+ Values: []string{"label_2_val"},
+ },
+ },
+ },
+ },
+ labels: map[string]string{
+ "label_1": "label_1_val-failed",
+ "label_2": "label_2_val",
+ },
+ },
+ want: false,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ if got := MatchTopologySelectorTerms(tt.args.topologySelectorTerms, tt.args.labels); got != tt.want {
+ t.Errorf("MatchTopologySelectorTermsORed() = %v, want %v", got, tt.want)
+ }
+ })
+ }
+}
diff --git a/pkg/apis/core/v1/zz_generated.conversion.go b/pkg/apis/core/v1/zz_generated.conversion.go
index 2defb9e004d..8e656dbf028 100644
--- a/pkg/apis/core/v1/zz_generated.conversion.go
+++ b/pkg/apis/core/v1/zz_generated.conversion.go
@@ -408,6 +408,10 @@ func RegisterConversions(scheme *runtime.Scheme) error {
Convert_core_Taint_To_v1_Taint,
Convert_v1_Toleration_To_core_Toleration,
Convert_core_Toleration_To_v1_Toleration,
+ Convert_v1_TopologySelectorLabelRequirement_To_core_TopologySelectorLabelRequirement,
+ Convert_core_TopologySelectorLabelRequirement_To_v1_TopologySelectorLabelRequirement,
+ Convert_v1_TopologySelectorTerm_To_core_TopologySelectorTerm,
+ Convert_core_TopologySelectorTerm_To_v1_TopologySelectorTerm,
Convert_v1_Volume_To_core_Volume,
Convert_core_Volume_To_v1_Volume,
Convert_v1_VolumeDevice_To_core_VolumeDevice,
@@ -5541,6 +5545,48 @@ func Convert_core_Toleration_To_v1_Toleration(in *core.Toleration, out *v1.Toler
return autoConvert_core_Toleration_To_v1_Toleration(in, out, s)
}
+func autoConvert_v1_TopologySelectorLabelRequirement_To_core_TopologySelectorLabelRequirement(in *v1.TopologySelectorLabelRequirement, out *core.TopologySelectorLabelRequirement, s conversion.Scope) error {
+ out.Key = in.Key
+ out.Values = *(*[]string)(unsafe.Pointer(&in.Values))
+ return nil
+}
+
+// Convert_v1_TopologySelectorLabelRequirement_To_core_TopologySelectorLabelRequirement is an autogenerated conversion function.
+func Convert_v1_TopologySelectorLabelRequirement_To_core_TopologySelectorLabelRequirement(in *v1.TopologySelectorLabelRequirement, out *core.TopologySelectorLabelRequirement, s conversion.Scope) error {
+ return autoConvert_v1_TopologySelectorLabelRequirement_To_core_TopologySelectorLabelRequirement(in, out, s)
+}
+
+func autoConvert_core_TopologySelectorLabelRequirement_To_v1_TopologySelectorLabelRequirement(in *core.TopologySelectorLabelRequirement, out *v1.TopologySelectorLabelRequirement, s conversion.Scope) error {
+ out.Key = in.Key
+ out.Values = *(*[]string)(unsafe.Pointer(&in.Values))
+ return nil
+}
+
+// Convert_core_TopologySelectorLabelRequirement_To_v1_TopologySelectorLabelRequirement is an autogenerated conversion function.
+func Convert_core_TopologySelectorLabelRequirement_To_v1_TopologySelectorLabelRequirement(in *core.TopologySelectorLabelRequirement, out *v1.TopologySelectorLabelRequirement, s conversion.Scope) error {
+ return autoConvert_core_TopologySelectorLabelRequirement_To_v1_TopologySelectorLabelRequirement(in, out, s)
+}
+
+func autoConvert_v1_TopologySelectorTerm_To_core_TopologySelectorTerm(in *v1.TopologySelectorTerm, out *core.TopologySelectorTerm, s conversion.Scope) error {
+ out.MatchLabelExpressions = *(*[]core.TopologySelectorLabelRequirement)(unsafe.Pointer(&in.MatchLabelExpressions))
+ return nil
+}
+
+// Convert_v1_TopologySelectorTerm_To_core_TopologySelectorTerm is an autogenerated conversion function.
+func Convert_v1_TopologySelectorTerm_To_core_TopologySelectorTerm(in *v1.TopologySelectorTerm, out *core.TopologySelectorTerm, s conversion.Scope) error {
+ return autoConvert_v1_TopologySelectorTerm_To_core_TopologySelectorTerm(in, out, s)
+}
+
+func autoConvert_core_TopologySelectorTerm_To_v1_TopologySelectorTerm(in *core.TopologySelectorTerm, out *v1.TopologySelectorTerm, s conversion.Scope) error {
+ out.MatchLabelExpressions = *(*[]v1.TopologySelectorLabelRequirement)(unsafe.Pointer(&in.MatchLabelExpressions))
+ return nil
+}
+
+// Convert_core_TopologySelectorTerm_To_v1_TopologySelectorTerm is an autogenerated conversion function.
+func Convert_core_TopologySelectorTerm_To_v1_TopologySelectorTerm(in *core.TopologySelectorTerm, out *v1.TopologySelectorTerm, s conversion.Scope) error {
+ return autoConvert_core_TopologySelectorTerm_To_v1_TopologySelectorTerm(in, out, s)
+}
+
func autoConvert_v1_Volume_To_core_Volume(in *v1.Volume, out *core.Volume, s conversion.Scope) error {
out.Name = in.Name
if err := Convert_v1_VolumeSource_To_core_VolumeSource(&in.VolumeSource, &out.VolumeSource, s); err != nil {
diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go
index 4001e8f4337..67c5ceeda7a 100644
--- a/pkg/apis/core/validation/validation.go
+++ b/pkg/apis/core/validation/validation.go
@@ -3104,6 +3104,32 @@ func ValidateNodeSelector(nodeSelector *core.NodeSelector, fldPath *field.Path)
return allErrs
}
+// validateTopologySelectorLabelRequirement tests that the specified TopologySelectorLabelRequirement fields has valid data
+func validateTopologySelectorLabelRequirement(rq core.TopologySelectorLabelRequirement, fldPath *field.Path) field.ErrorList {
+ allErrs := field.ErrorList{}
+ if len(rq.Values) == 0 {
+ allErrs = append(allErrs, field.Forbidden(fldPath.Child("values"), "must specify as least one value"))
+ }
+ allErrs = append(allErrs, unversionedvalidation.ValidateLabelName(rq.Key, fldPath.Child("key"))...)
+
+ return allErrs
+}
+
+// ValidateTopologySelectorTerm tests that the specified topology selector term has valid data
+func ValidateTopologySelectorTerm(term core.TopologySelectorTerm, fldPath *field.Path) field.ErrorList {
+ allErrs := field.ErrorList{}
+
+ if utilfeature.DefaultFeatureGate.Enabled(features.DynamicProvisioningScheduling) {
+ for i, req := range term.MatchLabelExpressions {
+ allErrs = append(allErrs, validateTopologySelectorLabelRequirement(req, fldPath.Child("matchLabelExpressions").Index(i))...)
+ }
+ } else if len(term.MatchLabelExpressions) != 0 {
+ allErrs = append(allErrs, field.Forbidden(fldPath, "field is disabled by feature-gate DynamicProvisioningScheduling"))
+ }
+
+ return allErrs
+}
+
// ValidateAvoidPodsInNodeAnnotations tests that the serialized AvoidPods in Node.Annotations has valid data
func ValidateAvoidPodsInNodeAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {
allErrs := field.ErrorList{}
diff --git a/pkg/apis/core/zz_generated.deepcopy.go b/pkg/apis/core/zz_generated.deepcopy.go
index ba1a07f7c2b..6f08173c41e 100644
--- a/pkg/apis/core/zz_generated.deepcopy.go
+++ b/pkg/apis/core/zz_generated.deepcopy.go
@@ -5567,6 +5567,50 @@ func (in *Toleration) DeepCopy() *Toleration {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TopologySelectorLabelRequirement) DeepCopyInto(out *TopologySelectorLabelRequirement) {
+ *out = *in
+ if in.Values != nil {
+ in, out := &in.Values, &out.Values
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorLabelRequirement.
+func (in *TopologySelectorLabelRequirement) DeepCopy() *TopologySelectorLabelRequirement {
+ if in == nil {
+ return nil
+ }
+ out := new(TopologySelectorLabelRequirement)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TopologySelectorTerm) DeepCopyInto(out *TopologySelectorTerm) {
+ *out = *in
+ if in.MatchLabelExpressions != nil {
+ in, out := &in.MatchLabelExpressions, &out.MatchLabelExpressions
+ *out = make([]TopologySelectorLabelRequirement, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorTerm.
+func (in *TopologySelectorTerm) DeepCopy() *TopologySelectorTerm {
+ if in == nil {
+ return nil
+ }
+ out := new(TopologySelectorTerm)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Volume) DeepCopyInto(out *Volume) {
*out = *in
diff --git a/pkg/apis/storage/types.go b/pkg/apis/storage/types.go
index e44b327d381..cd86b02f281 100644
--- a/pkg/apis/storage/types.go
+++ b/pkg/apis/storage/types.go
@@ -72,6 +72,14 @@ type StorageClass struct {
// the VolumeScheduling feature.
// +optional
VolumeBindingMode *VolumeBindingMode
+
+ // Restrict the node topologies where volumes can be dynamically provisioned.
+ // Each volume plugin defines its own supported topology specifications.
+ // An empty TopologySelectorTerm list means there is no topology restriction.
+ // This field is alpha-level and is only honored by servers that enable
+ // the DynamicProvisioningScheduling feature.
+ // +optional
+ AllowedTopologies []api.TopologySelectorTerm
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
diff --git a/pkg/apis/storage/util/BUILD b/pkg/apis/storage/util/BUILD
index 7a5a5fd334c..c095396fb11 100644
--- a/pkg/apis/storage/util/BUILD
+++ b/pkg/apis/storage/util/BUILD
@@ -39,6 +39,7 @@ go_test(
srcs = ["util_test.go"],
embed = [":go_default_library"],
deps = [
+ "//pkg/apis/core:go_default_library",
"//pkg/apis/storage:go_default_library",
"//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library",
],
diff --git a/pkg/apis/storage/util/util.go b/pkg/apis/storage/util/util.go
index 9d134043563..c81a95b8165 100644
--- a/pkg/apis/storage/util/util.go
+++ b/pkg/apis/storage/util/util.go
@@ -27,4 +27,7 @@ func DropDisabledAlphaFields(class *storage.StorageClass) {
if !utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) {
class.VolumeBindingMode = nil
}
+ if !utilfeature.DefaultFeatureGate.Enabled(features.DynamicProvisioningScheduling) {
+ class.AllowedTopologies = nil
+ }
}
diff --git a/pkg/apis/storage/util/util_test.go b/pkg/apis/storage/util/util_test.go
index 1a0ef70b0b5..f783c2ee422 100644
--- a/pkg/apis/storage/util/util_test.go
+++ b/pkg/apis/storage/util/util_test.go
@@ -17,39 +17,60 @@ limitations under the License.
package util
import (
+ "reflect"
"testing"
utilfeature "k8s.io/apiserver/pkg/util/feature"
+ api "k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/apis/storage"
)
func TestDropAlphaFields(t *testing.T) {
bindingMode := storage.VolumeBindingWaitForFirstConsumer
+ allowedTopologies := []api.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []api.TopologySelectorLabelRequirement{
+ {
+ Key: "kubernetes.io/hostname",
+ Values: []string{"node1"},
+ },
+ },
+ },
+ }
// Test that field gets dropped when feature gate is not set
- if err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false"); err != nil {
- t.Fatalf("Failed to set feature gate for VolumeScheduling: %v", err)
+ if err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false,DynamicProvisioningScheduling=false"); err != nil {
+ t.Fatalf("Failed to set feature gate for VolumeScheduling or DynamicProvisioningScheduling: %v", err)
}
class := &storage.StorageClass{
VolumeBindingMode: &bindingMode,
+ AllowedTopologies: allowedTopologies,
}
DropDisabledAlphaFields(class)
if class.VolumeBindingMode != nil {
t.Errorf("VolumeBindingMode field didn't get dropped: %+v", class.VolumeBindingMode)
}
+ if class.AllowedTopologies != nil {
+ t.Errorf("AllowedTopologies field didn't get dropped: %+v", class.AllowedTopologies)
+ }
// Test that field does not get dropped when feature gate is set
class = &storage.StorageClass{
VolumeBindingMode: &bindingMode,
+ AllowedTopologies: allowedTopologies,
}
- if err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=true"); err != nil {
- t.Fatalf("Failed to set feature gate for VolumeScheduling: %v", err)
+ if err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=true,DynamicProvisioningScheduling=true"); err != nil {
+ t.Fatalf("Failed to set feature gate for VolumeScheduling or DynamicProvisioningScheduling: %v", err)
}
DropDisabledAlphaFields(class)
if class.VolumeBindingMode != &bindingMode {
t.Errorf("VolumeBindingMode field got unexpectantly modified: %+v", class.VolumeBindingMode)
}
- if err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false"); err != nil {
- t.Fatalf("Failed to disable feature gate for VolumeScheduling: %v", err)
+ if !reflect.DeepEqual(class.AllowedTopologies, allowedTopologies) {
+ t.Errorf("AllowedTopologies field got unexpectantly modified: %+v", class.AllowedTopologies)
+ }
+
+ if err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false,DynamicProvisioningScheduling=false"); err != nil {
+ t.Fatalf("Failed to disable feature gate for VolumeScheduling or DynamicProvisioningScheduling: %v", err)
}
}
diff --git a/pkg/apis/storage/v1/zz_generated.conversion.go b/pkg/apis/storage/v1/zz_generated.conversion.go
index b43003a9f59..1ec5a534f2b 100644
--- a/pkg/apis/storage/v1/zz_generated.conversion.go
+++ b/pkg/apis/storage/v1/zz_generated.conversion.go
@@ -54,6 +54,7 @@ func autoConvert_v1_StorageClass_To_storage_StorageClass(in *v1.StorageClass, ou
out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions))
out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion))
out.VolumeBindingMode = (*storage.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode))
+ out.AllowedTopologies = *(*[]core.TopologySelectorTerm)(unsafe.Pointer(&in.AllowedTopologies))
return nil
}
@@ -70,6 +71,7 @@ func autoConvert_storage_StorageClass_To_v1_StorageClass(in *storage.StorageClas
out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions))
out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion))
out.VolumeBindingMode = (*v1.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode))
+ out.AllowedTopologies = *(*[]core_v1.TopologySelectorTerm)(unsafe.Pointer(&in.AllowedTopologies))
return nil
}
diff --git a/pkg/apis/storage/v1beta1/zz_generated.conversion.go b/pkg/apis/storage/v1beta1/zz_generated.conversion.go
index 68d2ec7316d..8fdadeb46f1 100644
--- a/pkg/apis/storage/v1beta1/zz_generated.conversion.go
+++ b/pkg/apis/storage/v1beta1/zz_generated.conversion.go
@@ -66,6 +66,7 @@ func autoConvert_v1beta1_StorageClass_To_storage_StorageClass(in *v1beta1.Storag
out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions))
out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion))
out.VolumeBindingMode = (*storage.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode))
+ out.AllowedTopologies = *(*[]core.TopologySelectorTerm)(unsafe.Pointer(&in.AllowedTopologies))
return nil
}
@@ -82,6 +83,7 @@ func autoConvert_storage_StorageClass_To_v1beta1_StorageClass(in *storage.Storag
out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions))
out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion))
out.VolumeBindingMode = (*v1beta1.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode))
+ out.AllowedTopologies = *(*[]v1.TopologySelectorTerm)(unsafe.Pointer(&in.AllowedTopologies))
return nil
}
diff --git a/pkg/apis/storage/validation/validation.go b/pkg/apis/storage/validation/validation.go
index e9f66e938e8..1c29df8f42d 100644
--- a/pkg/apis/storage/validation/validation.go
+++ b/pkg/apis/storage/validation/validation.go
@@ -47,6 +47,7 @@ func ValidateStorageClass(storageClass *storage.StorageClass) field.ErrorList {
allErrs = append(allErrs, validateReclaimPolicy(storageClass.ReclaimPolicy, field.NewPath("reclaimPolicy"))...)
allErrs = append(allErrs, validateAllowVolumeExpansion(storageClass.AllowVolumeExpansion, field.NewPath("allowVolumeExpansion"))...)
allErrs = append(allErrs, validateVolumeBindingMode(storageClass.VolumeBindingMode, field.NewPath("volumeBindingMode"))...)
+ allErrs = append(allErrs, validateAllowedTopologies(storageClass.AllowedTopologies, field.NewPath("allowedTopologies"))...)
return allErrs
}
@@ -239,3 +240,22 @@ func validateVolumeBindingMode(mode *storage.VolumeBindingMode, fldPath *field.P
return allErrs
}
+
+// validateAllowedTopology tests that AllowedTopologies specifies valid values.
+func validateAllowedTopologies(topologies []api.TopologySelectorTerm, fldPath *field.Path) field.ErrorList {
+ allErrs := field.ErrorList{}
+
+ if topologies == nil || len(topologies) == 0 {
+ return allErrs
+ }
+
+ if !utilfeature.DefaultFeatureGate.Enabled(features.DynamicProvisioningScheduling) {
+ allErrs = append(allErrs, field.Forbidden(fldPath, "field is disabled by feature-gate DynamicProvisioningScheduling"))
+ }
+
+ for i, term := range topologies {
+ allErrs = append(allErrs, apivalidation.ValidateTopologySelectorTerm(term, fldPath.Index(i))...)
+ }
+
+ return allErrs
+}
diff --git a/pkg/apis/storage/validation/validation_test.go b/pkg/apis/storage/validation/validation_test.go
index 7e6f79687ac..06ed6c7441a 100644
--- a/pkg/apis/storage/validation/validation_test.go
+++ b/pkg/apis/storage/validation/validation_test.go
@@ -450,21 +450,22 @@ func TestVolumeAttachmentUpdateValidation(t *testing.T) {
}
}
-func makeClassWithBinding(mode *storage.VolumeBindingMode) *storage.StorageClass {
+func makeClass(mode *storage.VolumeBindingMode, topologies []api.TopologySelectorTerm) *storage.StorageClass {
return &storage.StorageClass{
ObjectMeta: metav1.ObjectMeta{Name: "foo", ResourceVersion: "foo"},
Provisioner: "kubernetes.io/foo-provisioner",
ReclaimPolicy: &deleteReclaimPolicy,
VolumeBindingMode: mode,
+ AllowedTopologies: topologies,
}
}
// TODO: Remove these tests once feature gate is not required
func TestValidateVolumeBindingModeAlphaDisabled(t *testing.T) {
errorCases := map[string]*storage.StorageClass{
- "immediate mode": makeClassWithBinding(&immediateMode1),
- "waiting mode": makeClassWithBinding(&waitingMode),
- "invalid mode": makeClassWithBinding(&invalidMode),
+ "immediate mode": makeClass(&immediateMode1, nil),
+ "waiting mode": makeClass(&waitingMode, nil),
+ "invalid mode": makeClass(&invalidMode, nil),
}
err := utilfeature.DefaultFeatureGate.Set("VolumeScheduling=false")
@@ -486,19 +487,19 @@ type bindingTest struct {
func TestValidateVolumeBindingMode(t *testing.T) {
cases := map[string]bindingTest{
"no mode": {
- class: makeClassWithBinding(nil),
+ class: makeClass(nil, nil),
shouldSucceed: false,
},
"immediate mode": {
- class: makeClassWithBinding(&immediateMode1),
+ class: makeClass(&immediateMode1, nil),
shouldSucceed: true,
},
"waiting mode": {
- class: makeClassWithBinding(&waitingMode),
+ class: makeClass(&waitingMode, nil),
shouldSucceed: true,
},
"invalid mode": {
- class: makeClassWithBinding(&invalidMode),
+ class: makeClass(&invalidMode, nil),
shouldSucceed: false,
},
}
@@ -532,10 +533,10 @@ type updateTest struct {
}
func TestValidateUpdateVolumeBindingMode(t *testing.T) {
- noBinding := makeClassWithBinding(nil)
- immediateBinding1 := makeClassWithBinding(&immediateMode1)
- immediateBinding2 := makeClassWithBinding(&immediateMode2)
- waitBinding := makeClassWithBinding(&waitingMode)
+ noBinding := makeClass(nil, nil)
+ immediateBinding1 := makeClass(&immediateMode1, nil)
+ immediateBinding2 := makeClass(&immediateMode2, nil)
+ waitBinding := makeClass(&waitingMode, nil)
cases := map[string]updateTest{
"old and new no mode": {
@@ -591,3 +592,102 @@ func TestValidateUpdateVolumeBindingMode(t *testing.T) {
t.Fatalf("Failed to disable feature gate for VolumeScheduling: %v", err)
}
}
+
+func TestValidateAllowedTopologies(t *testing.T) {
+
+ validTopology := []api.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []api.TopologySelectorLabelRequirement{
+ {
+ Key: "failure-domain.beta.kubernetes.io/zone",
+ Values: []string{"zone1"},
+ },
+ {
+ Key: "kubernetes.io/hostname",
+ Values: []string{"node1"},
+ },
+ },
+ },
+ {
+ MatchLabelExpressions: []api.TopologySelectorLabelRequirement{
+ {
+ Key: "failure-domain.beta.kubernetes.io/zone",
+ Values: []string{"zone2"},
+ },
+ {
+ Key: "kubernetes.io/hostname",
+ Values: []string{"node2"},
+ },
+ },
+ },
+ }
+
+ topologyInvalidKey := []api.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []api.TopologySelectorLabelRequirement{
+ {
+ Key: "/invalidkey",
+ Values: []string{"zone1"},
+ },
+ },
+ },
+ }
+
+ topologyLackOfValues := []api.TopologySelectorTerm{
+ {
+ MatchLabelExpressions: []api.TopologySelectorLabelRequirement{
+ {
+ Key: "kubernetes.io/hostname",
+ Values: []string{},
+ },
+ },
+ },
+ }
+
+ cases := map[string]bindingTest{
+ "no topology": {
+ class: makeClass(nil, nil),
+ shouldSucceed: true,
+ },
+ "valid topology": {
+ class: makeClass(nil, validTopology),
+ shouldSucceed: true,
+ },
+ "topology invalid key": {
+ class: makeClass(nil, topologyInvalidKey),
+ shouldSucceed: false,
+ },
+ "topology lack of values": {
+ class: makeClass(nil, topologyLackOfValues),
+ shouldSucceed: false,
+ },
+ }
+
+ // TODO: remove when feature gate not required
+ err := utilfeature.DefaultFeatureGate.Set("DynamicProvisioningScheduling=true")
+ if err != nil {
+ t.Fatalf("Failed to enable feature gate for DynamicProvisioningScheduling: %v", err)
+ }
+
+ for testName, testCase := range cases {
+ errs := ValidateStorageClass(testCase.class)
+ if testCase.shouldSucceed && len(errs) != 0 {
+ t.Errorf("Expected success for test %q, got %v", testName, errs)
+ }
+ if !testCase.shouldSucceed && len(errs) == 0 {
+ t.Errorf("Expected failure for test %q, got success", testName)
+ }
+ }
+
+ err = utilfeature.DefaultFeatureGate.Set("DynamicProvisioningScheduling=false")
+ if err != nil {
+ t.Fatalf("Failed to disable feature gate for DynamicProvisioningScheduling: %v", err)
+ }
+
+ for testName, testCase := range cases {
+ errs := ValidateStorageClass(testCase.class)
+ if len(errs) == 0 && testCase.class.AllowedTopologies != nil {
+ t.Errorf("Expected failure for test %q, got success", testName)
+ }
+ }
+}
diff --git a/pkg/apis/storage/zz_generated.deepcopy.go b/pkg/apis/storage/zz_generated.deepcopy.go
index 8cecb7ba9ce..f10b6656315 100644
--- a/pkg/apis/storage/zz_generated.deepcopy.go
+++ b/pkg/apis/storage/zz_generated.deepcopy.go
@@ -69,6 +69,13 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) {
**out = **in
}
}
+ if in.AllowedTopologies != nil {
+ in, out := &in.AllowedTopologies, &out.AllowedTopologies
+ *out = make([]core.TopologySelectorTerm, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
return
}
diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go
index 9a7a9c40f63..3fe56f726d6 100644
--- a/staging/src/k8s.io/api/core/v1/generated.pb.go
+++ b/staging/src/k8s.io/api/core/v1/generated.pb.go
@@ -209,6 +209,8 @@ limitations under the License.
TCPSocketAction
Taint
Toleration
+ TopologySelectorLabelRequirement
+ TopologySelectorTerm
Volume
VolumeDevice
VolumeMount
@@ -1044,40 +1046,50 @@ func (m *Toleration) Reset() { *m = Toleration{} }
func (*Toleration) ProtoMessage() {}
func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{183} }
+func (m *TopologySelectorLabelRequirement) Reset() { *m = TopologySelectorLabelRequirement{} }
+func (*TopologySelectorLabelRequirement) ProtoMessage() {}
+func (*TopologySelectorLabelRequirement) Descriptor() ([]byte, []int) {
+ return fileDescriptorGenerated, []int{184}
+}
+
+func (m *TopologySelectorTerm) Reset() { *m = TopologySelectorTerm{} }
+func (*TopologySelectorTerm) ProtoMessage() {}
+func (*TopologySelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{185} }
+
func (m *Volume) Reset() { *m = Volume{} }
func (*Volume) ProtoMessage() {}
-func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{184} }
+func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{186} }
func (m *VolumeDevice) Reset() { *m = VolumeDevice{} }
func (*VolumeDevice) ProtoMessage() {}
-func (*VolumeDevice) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{185} }
+func (*VolumeDevice) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{187} }
func (m *VolumeMount) Reset() { *m = VolumeMount{} }
func (*VolumeMount) ProtoMessage() {}
-func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{186} }
+func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{188} }
func (m *VolumeNodeAffinity) Reset() { *m = VolumeNodeAffinity{} }
func (*VolumeNodeAffinity) ProtoMessage() {}
-func (*VolumeNodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{187} }
+func (*VolumeNodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{189} }
func (m *VolumeProjection) Reset() { *m = VolumeProjection{} }
func (*VolumeProjection) ProtoMessage() {}
-func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{188} }
+func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{190} }
func (m *VolumeSource) Reset() { *m = VolumeSource{} }
func (*VolumeSource) ProtoMessage() {}
-func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{189} }
+func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{191} }
func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} }
func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {}
func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) {
- return fileDescriptorGenerated, []int{190}
+ return fileDescriptorGenerated, []int{192}
}
func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} }
func (*WeightedPodAffinityTerm) ProtoMessage() {}
func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) {
- return fileDescriptorGenerated, []int{191}
+ return fileDescriptorGenerated, []int{193}
}
func init() {
@@ -1265,6 +1277,8 @@ func init() {
proto.RegisterType((*TCPSocketAction)(nil), "k8s.io.api.core.v1.TCPSocketAction")
proto.RegisterType((*Taint)(nil), "k8s.io.api.core.v1.Taint")
proto.RegisterType((*Toleration)(nil), "k8s.io.api.core.v1.Toleration")
+ proto.RegisterType((*TopologySelectorLabelRequirement)(nil), "k8s.io.api.core.v1.TopologySelectorLabelRequirement")
+ proto.RegisterType((*TopologySelectorTerm)(nil), "k8s.io.api.core.v1.TopologySelectorTerm")
proto.RegisterType((*Volume)(nil), "k8s.io.api.core.v1.Volume")
proto.RegisterType((*VolumeDevice)(nil), "k8s.io.api.core.v1.VolumeDevice")
proto.RegisterType((*VolumeMount)(nil), "k8s.io.api.core.v1.VolumeMount")
@@ -10222,6 +10236,73 @@ func (m *Toleration) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
+func (m *TopologySelectorLabelRequirement) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalTo(dAtA)
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *TopologySelectorLabelRequirement) MarshalTo(dAtA []byte) (int, error) {
+ var i int
+ _ = i
+ var l int
+ _ = l
+ dAtA[i] = 0xa
+ i++
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))
+ i += copy(dAtA[i:], m.Key)
+ if len(m.Values) > 0 {
+ for _, s := range m.Values {
+ dAtA[i] = 0x12
+ i++
+ l = len(s)
+ for l >= 1<<7 {
+ dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
+ l >>= 7
+ i++
+ }
+ dAtA[i] = uint8(l)
+ i++
+ i += copy(dAtA[i:], s)
+ }
+ }
+ return i, nil
+}
+
+func (m *TopologySelectorTerm) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalTo(dAtA)
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *TopologySelectorTerm) MarshalTo(dAtA []byte) (int, error) {
+ var i int
+ _ = i
+ var l int
+ _ = l
+ if len(m.MatchLabelExpressions) > 0 {
+ for _, msg := range m.MatchLabelExpressions {
+ dAtA[i] = 0xa
+ i++
+ i = encodeVarintGenerated(dAtA, i, uint64(msg.Size()))
+ n, err := msg.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
+ }
+ i += n
+ }
+ }
+ return i, nil
+}
+
func (m *Volume) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -14072,6 +14153,32 @@ func (m *Toleration) Size() (n int) {
return n
}
+func (m *TopologySelectorLabelRequirement) Size() (n int) {
+ var l int
+ _ = l
+ l = len(m.Key)
+ n += 1 + l + sovGenerated(uint64(l))
+ if len(m.Values) > 0 {
+ for _, s := range m.Values {
+ l = len(s)
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
+ return n
+}
+
+func (m *TopologySelectorTerm) Size() (n int) {
+ var l int
+ _ = l
+ if len(m.MatchLabelExpressions) > 0 {
+ for _, e := range m.MatchLabelExpressions {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
+ return n
+}
+
func (m *Volume) Size() (n int) {
var l int
_ = l
@@ -16905,6 +17012,27 @@ func (this *Toleration) String() string {
}, "")
return s
}
+func (this *TopologySelectorLabelRequirement) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&TopologySelectorLabelRequirement{`,
+ `Key:` + fmt.Sprintf("%v", this.Key) + `,`,
+ `Values:` + fmt.Sprintf("%v", this.Values) + `,`,
+ `}`,
+ }, "")
+ return s
+}
+func (this *TopologySelectorTerm) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&TopologySelectorTerm{`,
+ `MatchLabelExpressions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.MatchLabelExpressions), "TopologySelectorLabelRequirement", "TopologySelectorLabelRequirement", 1), `&`, ``, 1) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *Volume) String() string {
if this == nil {
return "nil"
@@ -48617,6 +48745,195 @@ func (m *Toleration) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *TopologySelectorLabelRequirement) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: TopologySelectorLabelRequirement: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: TopologySelectorLabelRequirement: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Key = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if skippy < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *TopologySelectorTerm) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= (uint64(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: TopologySelectorTerm: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: TopologySelectorTerm: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MatchLabelExpressions", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= (int(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.MatchLabelExpressions = append(m.MatchLabelExpressions, TopologySelectorLabelRequirement{})
+ if err := m.MatchLabelExpressions[len(m.MatchLabelExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if skippy < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *Volume) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -50602,794 +50919,798 @@ func init() {
}
var fileDescriptorGenerated = []byte{
- // 12615 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6b, 0x6c, 0x24, 0x47,
- 0x7a, 0xd8, 0xf5, 0xcc, 0xf0, 0x31, 0x1f, 0xdf, 0xb5, 0x0f, 0x71, 0x29, 0xed, 0xce, 0xaa, 0x75,
- 0xb7, 0x5a, 0x9d, 0x24, 0xf2, 0xb4, 0x92, 0x4e, 0xeb, 0xd3, 0x9d, 0x6c, 0x92, 0x43, 0xee, 0x52,
- 0xbb, 0xe4, 0x8e, 0x6a, 0xb8, 0xbb, 0x77, 0xb2, 0xee, 0x7c, 0xcd, 0x99, 0x22, 0xd9, 0x62, 0xb3,
- 0x7b, 0xd4, 0xdd, 0xc3, 0x5d, 0x2a, 0x36, 0x90, 0x9c, 0x63, 0x27, 0x7e, 0x20, 0x38, 0xc4, 0x46,
- 0x1e, 0xb6, 0xe1, 0x00, 0x89, 0x03, 0xdb, 0x71, 0x12, 0xc4, 0xb1, 0x63, 0x3b, 0x77, 0x4e, 0xe2,
- 0x38, 0xf9, 0xe1, 0xfc, 0xb9, 0x38, 0x01, 0x82, 0x33, 0x60, 0x84, 0xb1, 0x69, 0x27, 0x81, 0x7f,
- 0xe4, 0x81, 0x38, 0x08, 0x60, 0xc6, 0x88, 0x83, 0x7a, 0x76, 0x55, 0x4f, 0xf7, 0xcc, 0x70, 0xc5,
- 0xa5, 0x64, 0xe3, 0xfe, 0xcd, 0xd4, 0xf7, 0xd5, 0x57, 0xd5, 0xf5, 0xfc, 0xbe, 0xaf, 0xbe, 0x07,
- 0xbc, 0xbe, 0x73, 0x3d, 0x9a, 0x75, 0x83, 0xb9, 0x9d, 0xf6, 0x06, 0x09, 0x7d, 0x12, 0x93, 0x68,
- 0x6e, 0x8f, 0xf8, 0xcd, 0x20, 0x9c, 0x13, 0x00, 0xa7, 0xe5, 0xce, 0x35, 0x82, 0x90, 0xcc, 0xed,
- 0xbd, 0x34, 0xb7, 0x45, 0x7c, 0x12, 0x3a, 0x31, 0x69, 0xce, 0xb6, 0xc2, 0x20, 0x0e, 0x10, 0xe2,
- 0x38, 0xb3, 0x4e, 0xcb, 0x9d, 0xa5, 0x38, 0xb3, 0x7b, 0x2f, 0xcd, 0xbc, 0xb8, 0xe5, 0xc6, 0xdb,
- 0xed, 0x8d, 0xd9, 0x46, 0xb0, 0x3b, 0xb7, 0x15, 0x6c, 0x05, 0x73, 0x0c, 0x75, 0xa3, 0xbd, 0xc9,
- 0xfe, 0xb1, 0x3f, 0xec, 0x17, 0x27, 0x31, 0xb3, 0x9a, 0x34, 0x43, 0x1e, 0xc6, 0xc4, 0x8f, 0xdc,
- 0xc0, 0x8f, 0x5e, 0x74, 0x5a, 0x6e, 0x44, 0xc2, 0x3d, 0x12, 0xce, 0xb5, 0x76, 0xb6, 0x28, 0x2c,
- 0x32, 0x11, 0xe6, 0xf6, 0x5e, 0xda, 0x20, 0xb1, 0xd3, 0xd1, 0xa3, 0x99, 0x57, 0x12, 0x72, 0xbb,
- 0x4e, 0x63, 0xdb, 0xf5, 0x49, 0xb8, 0x2f, 0x69, 0xcc, 0x85, 0x24, 0x0a, 0xda, 0x61, 0x83, 0x1c,
- 0xab, 0x56, 0x34, 0xb7, 0x4b, 0x62, 0x27, 0xe3, 0xeb, 0x67, 0xe6, 0xf2, 0x6a, 0x85, 0x6d, 0x3f,
- 0x76, 0x77, 0x3b, 0x9b, 0xf9, 0x74, 0xaf, 0x0a, 0x51, 0x63, 0x9b, 0xec, 0x3a, 0x1d, 0xf5, 0x5e,
- 0xce, 0xab, 0xd7, 0x8e, 0x5d, 0x6f, 0xce, 0xf5, 0xe3, 0x28, 0x0e, 0xd3, 0x95, 0xec, 0x6f, 0x5a,
- 0x70, 0x79, 0xfe, 0x7e, 0x7d, 0xc9, 0x73, 0xa2, 0xd8, 0x6d, 0x2c, 0x78, 0x41, 0x63, 0xa7, 0x1e,
- 0x07, 0x21, 0xb9, 0x17, 0x78, 0xed, 0x5d, 0x52, 0x67, 0x03, 0x81, 0x5e, 0x80, 0xe1, 0x3d, 0xf6,
- 0x7f, 0xa5, 0x3a, 0x6d, 0x5d, 0xb6, 0xae, 0x96, 0x17, 0x26, 0x7f, 0xe3, 0xa0, 0xf2, 0xb1, 0xc3,
- 0x83, 0xca, 0xf0, 0x3d, 0x51, 0x8e, 0x15, 0x06, 0xba, 0x02, 0x83, 0x9b, 0xd1, 0xfa, 0x7e, 0x8b,
- 0x4c, 0x17, 0x18, 0xee, 0xb8, 0xc0, 0x1d, 0x5c, 0xae, 0xd3, 0x52, 0x2c, 0xa0, 0x68, 0x0e, 0xca,
- 0x2d, 0x27, 0x8c, 0xdd, 0xd8, 0x0d, 0xfc, 0xe9, 0xe2, 0x65, 0xeb, 0xea, 0xc0, 0xc2, 0x94, 0x40,
- 0x2d, 0xd7, 0x24, 0x00, 0x27, 0x38, 0xb4, 0x1b, 0x21, 0x71, 0x9a, 0x77, 0x7c, 0x6f, 0x7f, 0xba,
- 0x74, 0xd9, 0xba, 0x3a, 0x9c, 0x74, 0x03, 0x8b, 0x72, 0xac, 0x30, 0xec, 0x1f, 0x2b, 0xc0, 0xf0,
- 0xfc, 0xe6, 0xa6, 0xeb, 0xbb, 0xf1, 0x3e, 0xba, 0x07, 0xa3, 0x7e, 0xd0, 0x24, 0xf2, 0x3f, 0xfb,
- 0x8a, 0x91, 0x6b, 0x97, 0x67, 0x3b, 0x57, 0xe6, 0xec, 0x9a, 0x86, 0xb7, 0x30, 0x79, 0x78, 0x50,
- 0x19, 0xd5, 0x4b, 0xb0, 0x41, 0x07, 0x61, 0x18, 0x69, 0x05, 0x4d, 0x45, 0xb6, 0xc0, 0xc8, 0x56,
- 0xb2, 0xc8, 0xd6, 0x12, 0xb4, 0x85, 0x89, 0xc3, 0x83, 0xca, 0x88, 0x56, 0x80, 0x75, 0x22, 0x68,
- 0x03, 0x26, 0xe8, 0x5f, 0x3f, 0x76, 0x15, 0xdd, 0x22, 0xa3, 0xfb, 0x4c, 0x1e, 0x5d, 0x0d, 0x75,
- 0xe1, 0xcc, 0xe1, 0x41, 0x65, 0x22, 0x55, 0x88, 0xd3, 0x04, 0xed, 0xf7, 0x61, 0x7c, 0x3e, 0x8e,
- 0x9d, 0xc6, 0x36, 0x69, 0xf2, 0x19, 0x44, 0xaf, 0x40, 0xc9, 0x77, 0x76, 0x89, 0x98, 0xdf, 0xcb,
- 0x62, 0x60, 0x4b, 0x6b, 0xce, 0x2e, 0x39, 0x3a, 0xa8, 0x4c, 0xde, 0xf5, 0xdd, 0xf7, 0xda, 0x62,
- 0x55, 0xd0, 0x32, 0xcc, 0xb0, 0xd1, 0x35, 0x80, 0x26, 0xd9, 0x73, 0x1b, 0xa4, 0xe6, 0xc4, 0xdb,
- 0x62, 0xbe, 0x91, 0xa8, 0x0b, 0x55, 0x05, 0xc1, 0x1a, 0x96, 0xfd, 0x10, 0xca, 0xf3, 0x7b, 0x81,
- 0xdb, 0xac, 0x05, 0xcd, 0x08, 0xed, 0xc0, 0x44, 0x2b, 0x24, 0x9b, 0x24, 0x54, 0x45, 0xd3, 0xd6,
- 0xe5, 0xe2, 0xd5, 0x91, 0x6b, 0x57, 0x33, 0x3f, 0xd6, 0x44, 0x5d, 0xf2, 0xe3, 0x70, 0x7f, 0xe1,
- 0x09, 0xd1, 0xde, 0x44, 0x0a, 0x8a, 0xd3, 0x94, 0xed, 0x7f, 0x5d, 0x80, 0x73, 0xf3, 0xef, 0xb7,
- 0x43, 0x52, 0x75, 0xa3, 0x9d, 0xf4, 0x0a, 0x6f, 0xba, 0xd1, 0xce, 0x5a, 0x32, 0x02, 0x6a, 0x69,
- 0x55, 0x45, 0x39, 0x56, 0x18, 0xe8, 0x45, 0x18, 0xa2, 0xbf, 0xef, 0xe2, 0x15, 0xf1, 0xc9, 0x67,
- 0x04, 0xf2, 0x48, 0xd5, 0x89, 0x9d, 0x2a, 0x07, 0x61, 0x89, 0x83, 0x56, 0x61, 0xa4, 0xc1, 0x36,
- 0xe4, 0xd6, 0x6a, 0xd0, 0x24, 0x6c, 0x32, 0xcb, 0x0b, 0xcf, 0x53, 0xf4, 0xc5, 0xa4, 0xf8, 0xe8,
- 0xa0, 0x32, 0xcd, 0xfb, 0x26, 0x48, 0x68, 0x30, 0xac, 0xd7, 0x47, 0xb6, 0xda, 0x5f, 0x25, 0x46,
- 0x09, 0x32, 0xf6, 0xd6, 0x55, 0x6d, 0xab, 0x0c, 0xb0, 0xad, 0x32, 0x9a, 0xbd, 0x4d, 0xd0, 0x4b,
- 0x50, 0xda, 0x71, 0xfd, 0xe6, 0xf4, 0x20, 0xa3, 0x75, 0x91, 0xce, 0xf9, 0x2d, 0xd7, 0x6f, 0x1e,
- 0x1d, 0x54, 0xa6, 0x8c, 0xee, 0xd0, 0x42, 0xcc, 0x50, 0xed, 0x3f, 0xb4, 0xa0, 0xc2, 0x60, 0xcb,
- 0xae, 0x47, 0x6a, 0x24, 0x8c, 0xdc, 0x28, 0x26, 0x7e, 0x6c, 0x0c, 0xe8, 0x35, 0x80, 0x88, 0x34,
- 0x42, 0x12, 0x6b, 0x43, 0xaa, 0x16, 0x46, 0x5d, 0x41, 0xb0, 0x86, 0x45, 0x0f, 0x84, 0x68, 0xdb,
- 0x09, 0xd9, 0xfa, 0x12, 0x03, 0xab, 0x0e, 0x84, 0xba, 0x04, 0xe0, 0x04, 0xc7, 0x38, 0x10, 0x8a,
- 0xbd, 0x0e, 0x04, 0xf4, 0x39, 0x98, 0x48, 0x1a, 0x8b, 0x5a, 0x4e, 0x43, 0x0e, 0x20, 0xdb, 0x32,
- 0x75, 0x13, 0x84, 0xd3, 0xb8, 0xf6, 0xdf, 0xb3, 0xc4, 0xe2, 0xa1, 0x5f, 0xfd, 0x11, 0xff, 0x56,
- 0xfb, 0x57, 0x2c, 0x18, 0x5a, 0x70, 0xfd, 0xa6, 0xeb, 0x6f, 0xa1, 0x2f, 0xc3, 0x30, 0xbd, 0x9b,
- 0x9a, 0x4e, 0xec, 0x88, 0x73, 0xef, 0x53, 0xda, 0xde, 0x52, 0x57, 0xc5, 0x6c, 0x6b, 0x67, 0x8b,
- 0x16, 0x44, 0xb3, 0x14, 0x9b, 0xee, 0xb6, 0x3b, 0x1b, 0xef, 0x92, 0x46, 0xbc, 0x4a, 0x62, 0x27,
- 0xf9, 0x9c, 0xa4, 0x0c, 0x2b, 0xaa, 0xe8, 0x16, 0x0c, 0xc6, 0x4e, 0xb8, 0x45, 0x62, 0x71, 0x00,
- 0x66, 0x1e, 0x54, 0xbc, 0x26, 0xa6, 0x3b, 0x92, 0xf8, 0x0d, 0x92, 0x5c, 0x0b, 0xeb, 0xac, 0x2a,
- 0x16, 0x24, 0xec, 0x1f, 0x1c, 0x84, 0x0b, 0x8b, 0xf5, 0x95, 0x9c, 0x75, 0x75, 0x05, 0x06, 0x9b,
- 0xa1, 0xbb, 0x47, 0x42, 0x31, 0xce, 0x8a, 0x4a, 0x95, 0x95, 0x62, 0x01, 0x45, 0xd7, 0x61, 0x94,
- 0x5f, 0x48, 0x37, 0x1d, 0xbf, 0xe9, 0xc9, 0x21, 0x3e, 0x2b, 0xb0, 0x47, 0xef, 0x69, 0x30, 0x6c,
- 0x60, 0x1e, 0x73, 0x51, 0x5d, 0x49, 0x6d, 0xc6, 0xbc, 0xcb, 0xee, 0x07, 0x2c, 0x98, 0xe4, 0xcd,
- 0xcc, 0xc7, 0x71, 0xe8, 0x6e, 0xb4, 0x63, 0x12, 0x4d, 0x0f, 0xb0, 0x93, 0x6e, 0x31, 0x6b, 0xb4,
- 0x72, 0x47, 0x60, 0xf6, 0x5e, 0x8a, 0x0a, 0x3f, 0x04, 0xa7, 0x45, 0xbb, 0x93, 0x69, 0x30, 0xee,
- 0x68, 0x16, 0x7d, 0xaf, 0x05, 0x33, 0x8d, 0xc0, 0x8f, 0xc3, 0xc0, 0xf3, 0x48, 0x58, 0x6b, 0x6f,
- 0x78, 0x6e, 0xb4, 0xcd, 0xd7, 0x29, 0x26, 0x9b, 0xec, 0x24, 0xc8, 0x99, 0x43, 0x85, 0x24, 0xe6,
- 0xf0, 0xd2, 0xe1, 0x41, 0x65, 0x66, 0x31, 0x97, 0x14, 0xee, 0xd2, 0x0c, 0xda, 0x01, 0x44, 0xaf,
- 0xd2, 0x7a, 0xec, 0x6c, 0x91, 0xa4, 0xf1, 0xa1, 0xfe, 0x1b, 0x3f, 0x7f, 0x78, 0x50, 0x41, 0x6b,
- 0x1d, 0x24, 0x70, 0x06, 0x59, 0xf4, 0x1e, 0x9c, 0xa5, 0xa5, 0x1d, 0xdf, 0x3a, 0xdc, 0x7f, 0x73,
- 0xd3, 0x87, 0x07, 0x95, 0xb3, 0x6b, 0x19, 0x44, 0x70, 0x26, 0xe9, 0x99, 0x45, 0x38, 0x97, 0x39,
- 0x55, 0x68, 0x12, 0x8a, 0x3b, 0x84, 0xb3, 0x20, 0x65, 0x4c, 0x7f, 0xa2, 0xb3, 0x30, 0xb0, 0xe7,
- 0x78, 0x6d, 0xb1, 0x4a, 0x31, 0xff, 0xf3, 0x99, 0xc2, 0x75, 0xcb, 0x6e, 0xc0, 0xe8, 0xa2, 0xd3,
- 0x72, 0x36, 0x5c, 0xcf, 0x8d, 0x5d, 0x12, 0xa1, 0x67, 0xa1, 0xe8, 0x34, 0x9b, 0xec, 0x8a, 0x2c,
- 0x2f, 0x9c, 0x3b, 0x3c, 0xa8, 0x14, 0xe7, 0x9b, 0xf4, 0xac, 0x06, 0x85, 0xb5, 0x8f, 0x29, 0x06,
- 0xfa, 0x24, 0x94, 0x9a, 0x61, 0xd0, 0x9a, 0x2e, 0x30, 0x4c, 0x3a, 0x54, 0xa5, 0x6a, 0x18, 0xb4,
- 0x52, 0xa8, 0x0c, 0xc7, 0xfe, 0xb5, 0x02, 0x3c, 0xb5, 0x48, 0x5a, 0xdb, 0xcb, 0xf5, 0x9c, 0x4d,
- 0x77, 0x15, 0x86, 0x77, 0x03, 0xdf, 0x8d, 0x83, 0x30, 0x12, 0x4d, 0xb3, 0xdb, 0x64, 0x55, 0x94,
- 0x61, 0x05, 0x45, 0x97, 0xa1, 0xd4, 0x4a, 0x38, 0x81, 0x51, 0xc9, 0x45, 0x30, 0x1e, 0x80, 0x41,
- 0x28, 0x46, 0x3b, 0x22, 0xa1, 0xb8, 0x05, 0x15, 0xc6, 0xdd, 0x88, 0x84, 0x98, 0x41, 0x92, 0xe3,
- 0x94, 0x1e, 0xb4, 0x62, 0x5b, 0xa5, 0x8e, 0x53, 0x0a, 0xc1, 0x1a, 0x16, 0xaa, 0x41, 0x39, 0x52,
- 0x93, 0x3a, 0xd0, 0xff, 0xa4, 0x8e, 0xb1, 0xf3, 0x56, 0xcd, 0x64, 0x42, 0xc4, 0x38, 0x06, 0x06,
- 0x7b, 0x9e, 0xb7, 0x5f, 0x2f, 0x00, 0xe2, 0x43, 0xf8, 0xa7, 0x6c, 0xe0, 0xee, 0x76, 0x0e, 0x5c,
- 0x26, 0xe7, 0x75, 0x3b, 0x68, 0x38, 0x5e, 0xfa, 0x08, 0x3f, 0xa9, 0xd1, 0xfb, 0xdf, 0x16, 0x3c,
- 0xb5, 0xe8, 0xfa, 0x4d, 0x12, 0xe6, 0x2c, 0xc0, 0xc7, 0x23, 0x80, 0x1c, 0xef, 0xa4, 0x37, 0x96,
- 0x58, 0xe9, 0x04, 0x96, 0x98, 0xfd, 0x3f, 0x2c, 0x40, 0xfc, 0xb3, 0x3f, 0x72, 0x1f, 0x7b, 0xb7,
- 0xf3, 0x63, 0x4f, 0x60, 0x59, 0xd8, 0xb7, 0x61, 0x7c, 0xd1, 0x73, 0x89, 0x1f, 0xaf, 0xd4, 0x16,
- 0x03, 0x7f, 0xd3, 0xdd, 0x42, 0x9f, 0x81, 0x71, 0x2a, 0xd3, 0x06, 0xed, 0xb8, 0x4e, 0x1a, 0x81,
- 0xcf, 0xd8, 0x7f, 0x2a, 0x09, 0xa2, 0xc3, 0x83, 0xca, 0xf8, 0xba, 0x01, 0xc1, 0x29, 0x4c, 0xfb,
- 0xb7, 0xe9, 0xf8, 0x05, 0xbb, 0xad, 0xc0, 0x27, 0x7e, 0xbc, 0x18, 0xf8, 0x4d, 0x2e, 0x26, 0x7e,
- 0x06, 0x4a, 0x31, 0x1d, 0x0f, 0x3e, 0x76, 0x57, 0xe4, 0x46, 0xa1, 0xa3, 0x70, 0x74, 0x50, 0x39,
- 0xdf, 0x59, 0x83, 0x8d, 0x13, 0xab, 0x83, 0xbe, 0x0d, 0x06, 0xa3, 0xd8, 0x89, 0xdb, 0x91, 0x18,
- 0xcd, 0xa7, 0xe5, 0x68, 0xd6, 0x59, 0xe9, 0xd1, 0x41, 0x65, 0x42, 0x55, 0xe3, 0x45, 0x58, 0x54,
- 0x40, 0xcf, 0xc1, 0xd0, 0x2e, 0x89, 0x22, 0x67, 0x4b, 0x72, 0xf8, 0x13, 0xa2, 0xee, 0xd0, 0x2a,
- 0x2f, 0xc6, 0x12, 0x8e, 0x9e, 0x81, 0x01, 0x12, 0x86, 0x41, 0x28, 0xf6, 0xe8, 0x98, 0x40, 0x1c,
- 0x58, 0xa2, 0x85, 0x98, 0xc3, 0xec, 0x7f, 0x6b, 0xc1, 0x84, 0xea, 0x2b, 0x6f, 0xeb, 0x14, 0x58,
- 0xb9, 0xb7, 0x01, 0x1a, 0xf2, 0x03, 0x23, 0x76, 0x7b, 0x8c, 0x5c, 0xbb, 0x92, 0xc9, 0xa0, 0x74,
- 0x0c, 0x63, 0x42, 0x59, 0x15, 0x45, 0x58, 0xa3, 0x66, 0xff, 0x33, 0x0b, 0xce, 0xa4, 0xbe, 0xe8,
- 0xb6, 0x1b, 0xc5, 0xe8, 0x9d, 0x8e, 0xaf, 0x9a, 0xed, 0xef, 0xab, 0x68, 0x6d, 0xf6, 0x4d, 0x6a,
- 0x29, 0xcb, 0x12, 0xed, 0x8b, 0x6e, 0xc2, 0x80, 0x1b, 0x93, 0x5d, 0xf9, 0x31, 0xcf, 0x74, 0xfd,
- 0x18, 0xde, 0xab, 0x64, 0x46, 0x56, 0x68, 0x4d, 0xcc, 0x09, 0xd8, 0x3f, 0x52, 0x84, 0x32, 0x5f,
- 0xb6, 0xab, 0x4e, 0xeb, 0x14, 0xe6, 0x62, 0x05, 0x4a, 0x8c, 0x3a, 0xef, 0xf8, 0xb3, 0xd9, 0x1d,
- 0x17, 0xdd, 0x99, 0xa5, 0x72, 0x1a, 0x67, 0x05, 0xd5, 0xd5, 0x40, 0x8b, 0x30, 0x23, 0x81, 0x1c,
- 0x80, 0x0d, 0xd7, 0x77, 0xc2, 0x7d, 0x5a, 0x36, 0x5d, 0x64, 0x04, 0x5f, 0xec, 0x4e, 0x70, 0x41,
- 0xe1, 0x73, 0xb2, 0xaa, 0xaf, 0x09, 0x00, 0x6b, 0x44, 0x67, 0x5e, 0x83, 0xb2, 0x42, 0x3e, 0x0e,
- 0x8f, 0x33, 0xf3, 0x39, 0x98, 0x48, 0xb5, 0xd5, 0xab, 0xfa, 0xa8, 0xce, 0x22, 0x7d, 0x8d, 0x9d,
- 0x02, 0xa2, 0xd7, 0x4b, 0xfe, 0x9e, 0x38, 0x45, 0xdf, 0x87, 0xb3, 0x5e, 0xc6, 0xe1, 0x24, 0xa6,
- 0xaa, 0xff, 0xc3, 0xec, 0x29, 0xf1, 0xd9, 0x67, 0xb3, 0xa0, 0x38, 0xb3, 0x0d, 0x7a, 0xed, 0x07,
- 0x2d, 0xba, 0xe6, 0x1d, 0x8f, 0xf5, 0x57, 0x48, 0xdf, 0x77, 0x44, 0x19, 0x56, 0x50, 0x7a, 0x84,
- 0x9d, 0x55, 0x9d, 0xbf, 0x45, 0xf6, 0xeb, 0xc4, 0x23, 0x8d, 0x38, 0x08, 0x3f, 0xd4, 0xee, 0x5f,
- 0xe4, 0xa3, 0xcf, 0x4f, 0xc0, 0x11, 0x41, 0xa0, 0x78, 0x8b, 0xec, 0xf3, 0xa9, 0xd0, 0xbf, 0xae,
- 0xd8, 0xf5, 0xeb, 0x7e, 0xde, 0x82, 0x31, 0xf5, 0x75, 0xa7, 0xb0, 0xd5, 0x17, 0xcc, 0xad, 0x7e,
- 0xb1, 0xeb, 0x02, 0xcf, 0xd9, 0xe4, 0x5f, 0x2f, 0xc0, 0x05, 0x85, 0x43, 0xd9, 0x7d, 0xfe, 0x47,
- 0xac, 0xaa, 0x39, 0x28, 0xfb, 0x4a, 0x7b, 0x60, 0x99, 0x62, 0x7b, 0xa2, 0x3b, 0x48, 0x70, 0x28,
- 0xd7, 0xe6, 0x27, 0x22, 0xfe, 0xa8, 0xae, 0x56, 0x13, 0x2a, 0xb4, 0x05, 0x28, 0xb6, 0xdd, 0xa6,
- 0xb8, 0x33, 0x3e, 0x25, 0x47, 0xfb, 0xee, 0x4a, 0xf5, 0xe8, 0xa0, 0xf2, 0x74, 0x9e, 0x4a, 0x97,
- 0x5e, 0x56, 0xd1, 0xec, 0xdd, 0x95, 0x2a, 0xa6, 0x95, 0xd1, 0x3c, 0x4c, 0x48, 0xad, 0xf5, 0x3d,
- 0xca, 0x41, 0x05, 0xbe, 0xb8, 0x5a, 0x94, 0x6e, 0x0c, 0x9b, 0x60, 0x9c, 0xc6, 0x47, 0x55, 0x98,
- 0xdc, 0x69, 0x6f, 0x10, 0x8f, 0xc4, 0xfc, 0x83, 0x6f, 0x11, 0xae, 0x39, 0x2a, 0x27, 0xa2, 0xe5,
- 0xad, 0x14, 0x1c, 0x77, 0xd4, 0xb0, 0xff, 0x84, 0x1d, 0xf1, 0x62, 0xf4, 0x6a, 0x61, 0x40, 0x17,
- 0x16, 0xa5, 0xfe, 0x61, 0x2e, 0xe7, 0x7e, 0x56, 0xc5, 0x2d, 0xb2, 0xbf, 0x1e, 0x50, 0x66, 0x3b,
- 0x7b, 0x55, 0x18, 0x6b, 0xbe, 0xd4, 0x75, 0xcd, 0xff, 0x62, 0x01, 0xce, 0xa9, 0x11, 0x30, 0xf8,
- 0xba, 0x3f, 0xed, 0x63, 0xf0, 0x12, 0x8c, 0x34, 0xc9, 0xa6, 0xd3, 0xf6, 0x62, 0xa5, 0xc6, 0x1c,
- 0xe0, 0xaa, 0xec, 0x6a, 0x52, 0x8c, 0x75, 0x9c, 0x63, 0x0c, 0xdb, 0x4f, 0x8d, 0xb0, 0xbb, 0x35,
- 0x76, 0xe8, 0x1a, 0x57, 0xbb, 0xc6, 0xca, 0xdd, 0x35, 0xcf, 0xc0, 0x80, 0xbb, 0x4b, 0x79, 0xad,
- 0x82, 0xc9, 0x42, 0xad, 0xd0, 0x42, 0xcc, 0x61, 0xe8, 0x13, 0x30, 0xd4, 0x08, 0x76, 0x77, 0x1d,
- 0xbf, 0xc9, 0xae, 0xbc, 0xf2, 0xc2, 0x08, 0x65, 0xc7, 0x16, 0x79, 0x11, 0x96, 0x30, 0xf4, 0x14,
- 0x94, 0x9c, 0x70, 0x2b, 0x9a, 0x2e, 0x31, 0x9c, 0x61, 0xda, 0xd2, 0x7c, 0xb8, 0x15, 0x61, 0x56,
- 0x4a, 0xa5, 0xaa, 0x07, 0x41, 0xb8, 0xe3, 0xfa, 0x5b, 0x55, 0x37, 0x14, 0x5b, 0x42, 0xdd, 0x85,
- 0xf7, 0x15, 0x04, 0x6b, 0x58, 0x68, 0x19, 0x06, 0x5a, 0x41, 0x18, 0x47, 0xd3, 0x83, 0x6c, 0xb8,
- 0x9f, 0xce, 0x39, 0x88, 0xf8, 0xd7, 0xd6, 0x82, 0x30, 0x4e, 0x3e, 0x80, 0xfe, 0x8b, 0x30, 0xaf,
- 0x8e, 0xbe, 0x0d, 0x8a, 0xc4, 0xdf, 0x9b, 0x1e, 0x62, 0x54, 0x66, 0xb2, 0xa8, 0x2c, 0xf9, 0x7b,
- 0xf7, 0x9c, 0x30, 0x39, 0xa5, 0x97, 0xfc, 0x3d, 0x4c, 0xeb, 0xa0, 0x2f, 0x40, 0x59, 0x6e, 0xf1,
- 0x48, 0xa8, 0x39, 0x32, 0x97, 0x98, 0x3c, 0x18, 0x30, 0x79, 0xaf, 0xed, 0x86, 0x64, 0x97, 0xf8,
- 0x71, 0x94, 0x9c, 0x69, 0x12, 0x1a, 0xe1, 0x84, 0x1a, 0xfa, 0x82, 0xd4, 0xad, 0xad, 0x06, 0x6d,
- 0x3f, 0x8e, 0xa6, 0xcb, 0xac, 0x7b, 0x99, 0xaf, 0x1e, 0xf7, 0x12, 0xbc, 0xb4, 0xf2, 0x8d, 0x57,
- 0xc6, 0x06, 0x29, 0x84, 0x61, 0xcc, 0x73, 0xf7, 0x88, 0x4f, 0xa2, 0xa8, 0x16, 0x06, 0x1b, 0x64,
- 0x1a, 0x58, 0xcf, 0x2f, 0x64, 0x3f, 0x06, 0x04, 0x1b, 0x64, 0x61, 0xea, 0xf0, 0xa0, 0x32, 0x76,
- 0x5b, 0xaf, 0x83, 0x4d, 0x12, 0xe8, 0x2e, 0x8c, 0x53, 0xb9, 0xc6, 0x4d, 0x88, 0x8e, 0xf4, 0x22,
- 0xca, 0xa4, 0x0f, 0x6c, 0x54, 0xc2, 0x29, 0x22, 0xe8, 0x4d, 0x28, 0x7b, 0xee, 0x26, 0x69, 0xec,
- 0x37, 0x3c, 0x32, 0x3d, 0xca, 0x28, 0x66, 0x6e, 0xab, 0xdb, 0x12, 0x89, 0xcb, 0x45, 0xea, 0x2f,
- 0x4e, 0xaa, 0xa3, 0x7b, 0x70, 0x3e, 0x26, 0xe1, 0xae, 0xeb, 0x3b, 0x74, 0x3b, 0x08, 0x79, 0x81,
- 0x3d, 0xa9, 0x8c, 0xb1, 0xf5, 0x76, 0x49, 0x0c, 0xdd, 0xf9, 0xf5, 0x4c, 0x2c, 0x9c, 0x53, 0x1b,
- 0xdd, 0x81, 0x09, 0xb6, 0x13, 0x6a, 0x6d, 0xcf, 0xab, 0x05, 0x9e, 0xdb, 0xd8, 0x9f, 0x1e, 0x67,
- 0x04, 0x3f, 0x21, 0xef, 0x85, 0x15, 0x13, 0x7c, 0x74, 0x50, 0x81, 0xe4, 0x1f, 0x4e, 0xd7, 0x46,
- 0x1b, 0x4c, 0x87, 0xde, 0x0e, 0xdd, 0x78, 0x9f, 0xae, 0x5f, 0xf2, 0x30, 0x9e, 0x9e, 0xe8, 0x2a,
- 0x0a, 0xeb, 0xa8, 0x4a, 0xd1, 0xae, 0x17, 0xe2, 0x34, 0x41, 0xba, 0xb5, 0xa3, 0xb8, 0xe9, 0xfa,
- 0xd3, 0x93, 0xec, 0xc4, 0x50, 0x3b, 0xa3, 0x4e, 0x0b, 0x31, 0x87, 0x31, 0xfd, 0x39, 0xfd, 0x71,
- 0x87, 0x9e, 0xa0, 0x53, 0x0c, 0x31, 0xd1, 0x9f, 0x4b, 0x00, 0x4e, 0x70, 0x28, 0x53, 0x13, 0xc7,
- 0xfb, 0xd3, 0x88, 0xa1, 0xaa, 0xed, 0xb2, 0xbe, 0xfe, 0x05, 0x4c, 0xcb, 0xd1, 0x6d, 0x18, 0x22,
- 0xfe, 0xde, 0x72, 0x18, 0xec, 0x4e, 0x9f, 0xc9, 0xdf, 0xb3, 0x4b, 0x1c, 0x85, 0x1f, 0xe8, 0x89,
- 0x80, 0x27, 0x8a, 0xb1, 0x24, 0x81, 0x1e, 0xc2, 0x74, 0xc6, 0x8c, 0xf0, 0x09, 0x38, 0xcb, 0x26,
- 0xe0, 0xb3, 0xa2, 0xee, 0xf4, 0x7a, 0x0e, 0xde, 0x51, 0x17, 0x18, 0xce, 0xa5, 0x8e, 0xbe, 0x08,
- 0x63, 0x7c, 0x43, 0xf1, 0xc7, 0xb7, 0x68, 0xfa, 0x1c, 0xfb, 0x9a, 0xcb, 0xf9, 0x9b, 0x93, 0x23,
- 0x2e, 0x9c, 0x13, 0x1d, 0x1a, 0xd3, 0x4b, 0x23, 0x6c, 0x52, 0xb3, 0x37, 0x60, 0x5c, 0x9d, 0x5b,
- 0x6c, 0xe9, 0xa0, 0x0a, 0x0c, 0x30, 0x6e, 0x47, 0xe8, 0xb7, 0xca, 0x74, 0xa6, 0x18, 0x27, 0x84,
- 0x79, 0x39, 0x9b, 0x29, 0xf7, 0x7d, 0xb2, 0xb0, 0x1f, 0x13, 0x2e, 0x55, 0x17, 0xb5, 0x99, 0x92,
- 0x00, 0x9c, 0xe0, 0xd8, 0xff, 0x8f, 0x73, 0x8d, 0xc9, 0xe1, 0xd8, 0xc7, 0x75, 0xf0, 0x02, 0x0c,
- 0x6f, 0x07, 0x51, 0x4c, 0xb1, 0x59, 0x1b, 0x03, 0x09, 0x9f, 0x78, 0x53, 0x94, 0x63, 0x85, 0x81,
- 0x5e, 0x87, 0xb1, 0x86, 0xde, 0x80, 0xb8, 0xcb, 0xd4, 0x10, 0x18, 0xad, 0x63, 0x13, 0x17, 0x5d,
- 0x87, 0x61, 0xf6, 0x74, 0xde, 0x08, 0x3c, 0xc1, 0x64, 0xc9, 0x0b, 0x79, 0xb8, 0x26, 0xca, 0x8f,
- 0xb4, 0xdf, 0x58, 0x61, 0xa3, 0x2b, 0x30, 0x48, 0xbb, 0xb0, 0x52, 0x13, 0xb7, 0x88, 0x52, 0xd5,
- 0xdc, 0x64, 0xa5, 0x58, 0x40, 0xed, 0xbf, 0x5a, 0xd0, 0x46, 0x99, 0x4a, 0xa4, 0x04, 0xd5, 0x60,
- 0xe8, 0x81, 0xe3, 0xc6, 0xae, 0xbf, 0x25, 0xd8, 0x85, 0xe7, 0xba, 0x5e, 0x29, 0xac, 0xd2, 0x7d,
- 0x5e, 0x81, 0x5f, 0x7a, 0xe2, 0x0f, 0x96, 0x64, 0x28, 0xc5, 0xb0, 0xed, 0xfb, 0x94, 0x62, 0xa1,
- 0x5f, 0x8a, 0x98, 0x57, 0xe0, 0x14, 0xc5, 0x1f, 0x2c, 0xc9, 0xa0, 0x77, 0x00, 0xe4, 0xb2, 0x24,
- 0x4d, 0xf1, 0x64, 0xfd, 0x42, 0x6f, 0xa2, 0xeb, 0xaa, 0xce, 0xc2, 0x38, 0xbd, 0x52, 0x93, 0xff,
- 0x58, 0xa3, 0x67, 0xc7, 0x8c, 0xad, 0xea, 0xec, 0x0c, 0xfa, 0x4e, 0x7a, 0x12, 0x38, 0x61, 0x4c,
- 0x9a, 0xf3, 0xb1, 0x18, 0x9c, 0x4f, 0xf6, 0x27, 0x53, 0xac, 0xbb, 0xbb, 0x44, 0x3f, 0x35, 0x04,
- 0x11, 0x9c, 0xd0, 0xb3, 0x7f, 0xb9, 0x08, 0xd3, 0x79, 0xdd, 0xa5, 0x8b, 0x8e, 0x3c, 0x74, 0xe3,
- 0x45, 0xca, 0x0d, 0x59, 0xe6, 0xa2, 0x5b, 0x12, 0xe5, 0x58, 0x61, 0xd0, 0xd9, 0x8f, 0xdc, 0x2d,
- 0x29, 0x12, 0x0e, 0x24, 0xb3, 0x5f, 0x67, 0xa5, 0x58, 0x40, 0x29, 0x5e, 0x48, 0x9c, 0x48, 0xd8,
- 0x44, 0x68, 0xab, 0x04, 0xb3, 0x52, 0x2c, 0xa0, 0xba, 0xbe, 0xa9, 0xd4, 0x43, 0xdf, 0x64, 0x0c,
- 0xd1, 0xc0, 0xc9, 0x0e, 0x11, 0xfa, 0x12, 0xc0, 0xa6, 0xeb, 0xbb, 0xd1, 0x36, 0xa3, 0x3e, 0x78,
- 0x6c, 0xea, 0x8a, 0x97, 0x5a, 0x56, 0x54, 0xb0, 0x46, 0x11, 0xbd, 0x0a, 0x23, 0x6a, 0x03, 0xae,
- 0x54, 0xd9, 0x03, 0x91, 0xf6, 0xe0, 0x9e, 0x9c, 0x46, 0x55, 0xac, 0xe3, 0xd9, 0xef, 0xa6, 0xd7,
- 0x8b, 0xd8, 0x01, 0xda, 0xf8, 0x5a, 0xfd, 0x8e, 0x6f, 0xa1, 0xfb, 0xf8, 0xda, 0xbf, 0x5e, 0x84,
- 0x09, 0xa3, 0xb1, 0x76, 0xd4, 0xc7, 0x99, 0x75, 0x83, 0xde, 0x73, 0x4e, 0x4c, 0xc4, 0xfe, 0xb3,
- 0x7b, 0x6f, 0x15, 0xfd, 0x2e, 0xa4, 0x3b, 0x80, 0xd7, 0x47, 0x5f, 0x82, 0xb2, 0xe7, 0x44, 0x4c,
- 0x77, 0x45, 0xc4, 0xbe, 0xeb, 0x87, 0x58, 0x22, 0x47, 0x38, 0x51, 0xac, 0x5d, 0x35, 0x9c, 0x76,
- 0x42, 0x92, 0x5e, 0xc8, 0x94, 0xf7, 0x91, 0x46, 0x37, 0xaa, 0x13, 0x94, 0x41, 0xda, 0xc7, 0x1c,
- 0x86, 0xae, 0xc3, 0x68, 0x48, 0xd8, 0xaa, 0x58, 0xa4, 0xac, 0x1c, 0x5b, 0x66, 0x03, 0x09, 0xcf,
- 0x87, 0x35, 0x18, 0x36, 0x30, 0x13, 0x56, 0x7e, 0xb0, 0x0b, 0x2b, 0xff, 0x1c, 0x0c, 0xb1, 0x1f,
- 0x6a, 0x05, 0xa8, 0xd9, 0x58, 0xe1, 0xc5, 0x58, 0xc2, 0xd3, 0x0b, 0x66, 0xb8, 0xcf, 0x05, 0xf3,
- 0x49, 0x18, 0xaf, 0x3a, 0x64, 0x37, 0xf0, 0x97, 0xfc, 0x66, 0x2b, 0x70, 0xfd, 0x18, 0x4d, 0x43,
- 0x89, 0xdd, 0x0e, 0x7c, 0x6f, 0x97, 0x28, 0x05, 0x5c, 0xa2, 0x8c, 0xb9, 0xbd, 0x05, 0xe7, 0xaa,
- 0xc1, 0x03, 0xff, 0x81, 0x13, 0x36, 0xe7, 0x6b, 0x2b, 0x9a, 0x9c, 0xbb, 0x26, 0xe5, 0x2c, 0x6e,
- 0xc4, 0x92, 0x79, 0xa6, 0x6a, 0x35, 0xf9, 0x5d, 0xbb, 0xec, 0x7a, 0x24, 0x47, 0x1b, 0xf1, 0xd7,
- 0x0b, 0x46, 0x4b, 0x09, 0xbe, 0x7a, 0x30, 0xb2, 0x72, 0x1f, 0x8c, 0xde, 0x82, 0xe1, 0x4d, 0x97,
- 0x78, 0x4d, 0x4c, 0x36, 0xc5, 0x12, 0x7b, 0x36, 0xff, 0x5d, 0x7e, 0x99, 0x62, 0x4a, 0xed, 0x13,
- 0x97, 0xd2, 0x96, 0x45, 0x65, 0xac, 0xc8, 0xa0, 0x1d, 0x98, 0x94, 0x62, 0x80, 0x84, 0x8a, 0x05,
- 0xf7, 0x5c, 0x37, 0xd9, 0xc2, 0x24, 0x7e, 0xf6, 0xf0, 0xa0, 0x32, 0x89, 0x53, 0x64, 0x70, 0x07,
- 0x61, 0x2a, 0x96, 0xed, 0xd2, 0xa3, 0xb5, 0xc4, 0x86, 0x9f, 0x89, 0x65, 0x4c, 0xc2, 0x64, 0xa5,
- 0xf6, 0x4f, 0x58, 0xf0, 0x44, 0xc7, 0xc8, 0x08, 0x49, 0xfb, 0x84, 0x67, 0x21, 0x2d, 0xf9, 0x16,
- 0x7a, 0x4b, 0xbe, 0xf6, 0xdf, 0xb7, 0xe0, 0xec, 0xd2, 0x6e, 0x2b, 0xde, 0xaf, 0xba, 0xe6, 0xeb,
- 0xce, 0x6b, 0x30, 0xb8, 0x4b, 0x9a, 0x6e, 0x7b, 0x57, 0xcc, 0x5c, 0x45, 0x1e, 0x3f, 0xab, 0xac,
- 0xf4, 0xe8, 0xa0, 0x32, 0x56, 0x8f, 0x83, 0xd0, 0xd9, 0x22, 0xbc, 0x00, 0x0b, 0x74, 0x76, 0x88,
- 0xbb, 0xef, 0x93, 0xdb, 0xee, 0xae, 0x2b, 0xed, 0x2c, 0xba, 0xea, 0xce, 0x66, 0xe5, 0x80, 0xce,
- 0xbe, 0xd5, 0x76, 0xfc, 0xd8, 0x8d, 0xf7, 0xc5, 0xc3, 0x8c, 0x24, 0x82, 0x13, 0x7a, 0xf6, 0x37,
- 0x2d, 0x98, 0x90, 0xeb, 0x7e, 0xbe, 0xd9, 0x0c, 0x49, 0x14, 0xa1, 0x19, 0x28, 0xb8, 0x2d, 0xd1,
- 0x4b, 0x10, 0xbd, 0x2c, 0xac, 0xd4, 0x70, 0xc1, 0x6d, 0xa1, 0x1a, 0x94, 0xb9, 0xb9, 0x46, 0xb2,
- 0xb8, 0xfa, 0x32, 0xfa, 0x60, 0x3d, 0x58, 0x97, 0x35, 0x71, 0x42, 0x44, 0x72, 0x70, 0xec, 0xcc,
- 0x2c, 0x9a, 0xaf, 0x5e, 0x37, 0x45, 0x39, 0x56, 0x18, 0xe8, 0x2a, 0x0c, 0xfb, 0x41, 0x93, 0x5b,
- 0xcf, 0xf0, 0xdb, 0x8f, 0x2d, 0xd9, 0x35, 0x51, 0x86, 0x15, 0xd4, 0xfe, 0x61, 0x0b, 0x46, 0xe5,
- 0x97, 0xf5, 0xc9, 0x4c, 0xd2, 0xad, 0x95, 0x30, 0x92, 0xc9, 0xd6, 0xa2, 0xcc, 0x20, 0x83, 0x18,
- 0x3c, 0x60, 0xf1, 0x38, 0x3c, 0xa0, 0xfd, 0xe3, 0x05, 0x18, 0x97, 0xdd, 0xa9, 0xb7, 0x37, 0x22,
- 0x12, 0xa3, 0x75, 0x28, 0x3b, 0x7c, 0xc8, 0x89, 0x5c, 0xb1, 0xcf, 0x64, 0x0b, 0x1f, 0xc6, 0xfc,
- 0x24, 0xd7, 0xf2, 0xbc, 0xac, 0x8d, 0x13, 0x42, 0xc8, 0x83, 0x29, 0x3f, 0x88, 0xd9, 0x11, 0xad,
- 0xe0, 0xdd, 0x9e, 0x40, 0xd2, 0xd4, 0x2f, 0x08, 0xea, 0x53, 0x6b, 0x69, 0x2a, 0xb8, 0x93, 0x30,
- 0x5a, 0x92, 0x0a, 0x8f, 0x62, 0xbe, 0xb8, 0xa1, 0xcf, 0x42, 0xb6, 0xbe, 0xc3, 0xfe, 0x55, 0x0b,
- 0xca, 0x12, 0xed, 0x34, 0x5e, 0xbb, 0x56, 0x61, 0x28, 0x62, 0x93, 0x20, 0x87, 0xc6, 0xee, 0xd6,
- 0x71, 0x3e, 0x5f, 0xc9, 0xcd, 0xc3, 0xff, 0x47, 0x58, 0xd2, 0x60, 0xfa, 0x6e, 0xd5, 0xfd, 0x8f,
- 0x88, 0xbe, 0x5b, 0xf5, 0x27, 0xe7, 0x86, 0xf9, 0xaf, 0xac, 0xcf, 0x9a, 0x58, 0x4b, 0x19, 0xa4,
- 0x56, 0x48, 0x36, 0xdd, 0x87, 0x69, 0x06, 0xa9, 0xc6, 0x4a, 0xb1, 0x80, 0xa2, 0x77, 0x60, 0xb4,
- 0x21, 0x15, 0x9d, 0xc9, 0x31, 0x70, 0xa5, 0xab, 0xd2, 0x5d, 0xbd, 0xcf, 0x70, 0xcb, 0xda, 0x45,
- 0xad, 0x3e, 0x36, 0xa8, 0x99, 0xcf, 0xed, 0xc5, 0x5e, 0xcf, 0xed, 0x09, 0xdd, 0xfc, 0xc7, 0xe7,
- 0x9f, 0xb4, 0x60, 0x90, 0xab, 0xcb, 0xfa, 0xd3, 0x2f, 0x6a, 0xcf, 0x55, 0xc9, 0xd8, 0xdd, 0xa3,
- 0x85, 0xe2, 0xf9, 0x09, 0xad, 0x42, 0x99, 0xfd, 0x60, 0x6a, 0x83, 0x62, 0xbe, 0x49, 0x31, 0x6f,
- 0x55, 0xef, 0xe0, 0x3d, 0x59, 0x0d, 0x27, 0x14, 0xec, 0x1f, 0x2d, 0xd2, 0xa3, 0x2a, 0x41, 0x35,
- 0x6e, 0x70, 0xeb, 0xf1, 0xdd, 0xe0, 0x85, 0xc7, 0x75, 0x83, 0x6f, 0xc1, 0x44, 0x43, 0x7b, 0xdc,
- 0x4a, 0x66, 0xf2, 0x6a, 0xd7, 0x45, 0xa2, 0xbd, 0x83, 0x71, 0x95, 0xd1, 0xa2, 0x49, 0x04, 0xa7,
- 0xa9, 0xa2, 0xef, 0x84, 0x51, 0x3e, 0xcf, 0xa2, 0x15, 0x6e, 0xb1, 0xf0, 0x89, 0xfc, 0xf5, 0xa2,
- 0x37, 0xc1, 0x56, 0x62, 0x5d, 0xab, 0x8e, 0x0d, 0x62, 0xf6, 0x2f, 0x0f, 0xc3, 0xc0, 0xd2, 0x1e,
- 0xf1, 0xe3, 0x53, 0x38, 0x90, 0x1a, 0x30, 0xee, 0xfa, 0x7b, 0x81, 0xb7, 0x47, 0x9a, 0x1c, 0x7e,
- 0x9c, 0xcb, 0xf5, 0xbc, 0x20, 0x3d, 0xbe, 0x62, 0x90, 0xc0, 0x29, 0x92, 0x8f, 0x43, 0xc2, 0xbc,
- 0x01, 0x83, 0x7c, 0xee, 0x85, 0x78, 0x99, 0xa9, 0x0c, 0x66, 0x83, 0x28, 0x76, 0x41, 0x22, 0xfd,
- 0x72, 0xed, 0xb3, 0xa8, 0x8e, 0xde, 0x85, 0xf1, 0x4d, 0x37, 0x8c, 0x62, 0x2a, 0x1a, 0x46, 0xb1,
- 0xb3, 0xdb, 0x7a, 0x04, 0x89, 0x52, 0x8d, 0xc3, 0xb2, 0x41, 0x09, 0xa7, 0x28, 0xa3, 0x2d, 0x18,
- 0xa3, 0x42, 0x4e, 0xd2, 0xd4, 0xd0, 0xb1, 0x9b, 0x52, 0x2a, 0xa3, 0xdb, 0x3a, 0x21, 0x6c, 0xd2,
- 0xa5, 0x87, 0x49, 0x83, 0x09, 0x45, 0xc3, 0x8c, 0xa3, 0x50, 0x87, 0x09, 0x97, 0x86, 0x38, 0x8c,
- 0x9e, 0x49, 0xcc, 0x6c, 0xa5, 0x6c, 0x9e, 0x49, 0x9a, 0x71, 0xca, 0x97, 0xa1, 0x4c, 0xe8, 0x10,
- 0x52, 0xc2, 0x42, 0x31, 0x3e, 0xd7, 0x5f, 0x5f, 0x57, 0xdd, 0x46, 0x18, 0x98, 0xb2, 0xfc, 0x92,
- 0xa4, 0x84, 0x13, 0xa2, 0x68, 0x11, 0x06, 0x23, 0x12, 0xba, 0x24, 0x12, 0x2a, 0xf2, 0x2e, 0xd3,
- 0xc8, 0xd0, 0xb8, 0xed, 0x39, 0xff, 0x8d, 0x45, 0x55, 0xba, 0xbc, 0x1c, 0x26, 0x0d, 0x31, 0xad,
- 0xb8, 0xb6, 0xbc, 0xe6, 0x59, 0x29, 0x16, 0x50, 0xf4, 0x26, 0x0c, 0x85, 0xc4, 0x63, 0xca, 0xa2,
- 0xb1, 0xfe, 0x17, 0x39, 0xd7, 0x3d, 0xf1, 0x7a, 0x58, 0x12, 0x40, 0xb7, 0x00, 0x85, 0x84, 0xf2,
- 0x10, 0xae, 0xbf, 0xa5, 0x8c, 0x39, 0x84, 0xae, 0xfb, 0x49, 0xd1, 0xfe, 0x19, 0x9c, 0x60, 0x48,
- 0xab, 0x54, 0x9c, 0x51, 0x0d, 0xdd, 0x80, 0x29, 0x55, 0xba, 0xe2, 0x47, 0xb1, 0xe3, 0x37, 0x08,
- 0x53, 0x73, 0x97, 0x13, 0xae, 0x08, 0xa7, 0x11, 0x70, 0x67, 0x1d, 0xfb, 0x67, 0x29, 0x3b, 0x43,
- 0x47, 0xeb, 0x14, 0x78, 0x81, 0x37, 0x4c, 0x5e, 0xe0, 0x42, 0xee, 0xcc, 0xe5, 0xf0, 0x01, 0x87,
- 0x16, 0x8c, 0x68, 0x33, 0x9b, 0xac, 0x59, 0xab, 0xcb, 0x9a, 0x6d, 0xc3, 0x24, 0x5d, 0xe9, 0x77,
- 0x36, 0x98, 0x1b, 0x56, 0x93, 0x2d, 0xcc, 0xc2, 0xa3, 0x2d, 0x4c, 0xf5, 0xca, 0x7c, 0x3b, 0x45,
- 0x10, 0x77, 0x34, 0x81, 0x5e, 0x93, 0x9a, 0x93, 0xa2, 0x61, 0xa4, 0xc5, 0xb5, 0x22, 0x47, 0x07,
- 0x95, 0x49, 0xed, 0x43, 0x74, 0x4d, 0x89, 0xfd, 0x65, 0xf9, 0x8d, 0xea, 0x35, 0xbf, 0xa1, 0x16,
- 0x4b, 0xea, 0x35, 0x5f, 0x2d, 0x07, 0x9c, 0xe0, 0xd0, 0x3d, 0x4a, 0x45, 0x90, 0xf4, 0x6b, 0x3e,
- 0x15, 0x50, 0x30, 0x83, 0xd8, 0x2f, 0x03, 0x2c, 0x3d, 0x24, 0x0d, 0xbe, 0xd4, 0xf5, 0x07, 0x48,
- 0x2b, 0xff, 0x01, 0xd2, 0xfe, 0xf7, 0x16, 0x8c, 0x2f, 0x2f, 0x1a, 0x62, 0xe2, 0x2c, 0x00, 0x97,
- 0x8d, 0xee, 0xdf, 0x5f, 0x93, 0xba, 0x75, 0xae, 0x1e, 0x55, 0xa5, 0x58, 0xc3, 0x40, 0x17, 0xa0,
- 0xe8, 0xb5, 0x7d, 0x21, 0xb2, 0x0c, 0x1d, 0x1e, 0x54, 0x8a, 0xb7, 0xdb, 0x3e, 0xa6, 0x65, 0x9a,
- 0x85, 0x60, 0xb1, 0x6f, 0x0b, 0xc1, 0x9e, 0xee, 0x55, 0xa8, 0x02, 0x03, 0x0f, 0x1e, 0xb8, 0x4d,
- 0x6e, 0xc4, 0x2e, 0xf4, 0xfe, 0xf7, 0xef, 0xaf, 0x54, 0x23, 0xcc, 0xcb, 0xed, 0xaf, 0x16, 0x61,
- 0x66, 0xd9, 0x23, 0x0f, 0x3f, 0xa0, 0x21, 0x7f, 0xbf, 0xf6, 0x8d, 0xc7, 0xe3, 0x17, 0x8f, 0x6b,
- 0xc3, 0xda, 0x7b, 0x3c, 0x36, 0x61, 0x88, 0x3f, 0x66, 0x4b, 0xb3, 0xfe, 0xd7, 0xb3, 0x5a, 0xcf,
- 0x1f, 0x90, 0x59, 0xfe, 0x28, 0x2e, 0xcc, 0xf9, 0xd5, 0x4d, 0x2b, 0x4a, 0xb1, 0x24, 0x3e, 0xf3,
- 0x19, 0x18, 0xd5, 0x31, 0x8f, 0x65, 0x4d, 0xfe, 0x17, 0x8a, 0x30, 0x49, 0x7b, 0xf0, 0x58, 0x27,
- 0xe2, 0x6e, 0xe7, 0x44, 0x9c, 0xb4, 0x45, 0x71, 0xef, 0xd9, 0x78, 0x27, 0x3d, 0x1b, 0x2f, 0xe5,
- 0xcd, 0xc6, 0x69, 0xcf, 0xc1, 0xf7, 0x5a, 0x70, 0x66, 0xd9, 0x0b, 0x1a, 0x3b, 0x29, 0xab, 0xdf,
- 0x57, 0x61, 0x84, 0x9e, 0xe3, 0x91, 0xe1, 0x45, 0x64, 0xf8, 0x95, 0x09, 0x10, 0xd6, 0xf1, 0xb4,
- 0x6a, 0x77, 0xef, 0xae, 0x54, 0xb3, 0xdc, 0xd1, 0x04, 0x08, 0xeb, 0x78, 0xf6, 0x37, 0x2c, 0xb8,
- 0x78, 0x63, 0x71, 0x29, 0x59, 0x8a, 0x1d, 0x1e, 0x71, 0x54, 0x0a, 0x6c, 0x6a, 0x5d, 0x49, 0xa4,
- 0xc0, 0x2a, 0xeb, 0x85, 0x80, 0x7e, 0x54, 0xbc, 0x3d, 0x7f, 0xc6, 0x82, 0x33, 0x37, 0xdc, 0x98,
- 0x5e, 0xcb, 0x69, 0xdf, 0x2c, 0x7a, 0x2f, 0x47, 0x6e, 0x1c, 0x84, 0xfb, 0x69, 0xdf, 0x2c, 0xac,
- 0x20, 0x58, 0xc3, 0xe2, 0x2d, 0xef, 0xb9, 0xcc, 0x8c, 0xaa, 0x60, 0xaa, 0xa2, 0xb0, 0x28, 0xc7,
- 0x0a, 0x83, 0x7e, 0x58, 0xd3, 0x0d, 0x99, 0x28, 0xb1, 0x2f, 0x4e, 0x58, 0xf5, 0x61, 0x55, 0x09,
- 0xc0, 0x09, 0x8e, 0xfd, 0x13, 0x16, 0x9c, 0xbb, 0xe1, 0xb5, 0xa3, 0x98, 0x84, 0x9b, 0x91, 0xd1,
- 0xd9, 0x97, 0xa1, 0x4c, 0xa4, 0xb8, 0x2e, 0xfa, 0xaa, 0x18, 0x4c, 0x25, 0xc7, 0x73, 0xc7, 0x30,
- 0x85, 0xd7, 0x87, 0xe7, 0xc0, 0xf1, 0x5c, 0xc7, 0x7e, 0xa1, 0x00, 0x63, 0x37, 0xd7, 0xd7, 0x6b,
- 0x37, 0x48, 0x2c, 0x6e, 0xb1, 0xde, 0xaa, 0x66, 0xac, 0x69, 0xcc, 0xba, 0x09, 0x45, 0xed, 0xd8,
- 0xf5, 0x66, 0xb9, 0x27, 0xf2, 0xec, 0x8a, 0x1f, 0xdf, 0x09, 0xeb, 0x71, 0xe8, 0xfa, 0x5b, 0x99,
- 0x3a, 0x36, 0x79, 0xd7, 0x16, 0xf3, 0xee, 0x5a, 0xf4, 0x32, 0x0c, 0x32, 0x57, 0x68, 0x29, 0x9e,
- 0x3c, 0xa9, 0x64, 0x0a, 0x56, 0x7a, 0x74, 0x50, 0x29, 0xdf, 0xc5, 0x2b, 0xfc, 0x0f, 0x16, 0xa8,
- 0xe8, 0x2e, 0x8c, 0x6c, 0xc7, 0x71, 0xeb, 0x26, 0x71, 0x9a, 0x24, 0x94, 0xa7, 0xc3, 0xa5, 0xac,
- 0xd3, 0x81, 0x0e, 0x02, 0x47, 0x4b, 0x36, 0x54, 0x52, 0x16, 0x61, 0x9d, 0x8e, 0x5d, 0x07, 0x48,
- 0x60, 0x27, 0xa4, 0x5f, 0xb0, 0x7f, 0xcf, 0x82, 0x21, 0xee, 0x95, 0x16, 0xa2, 0xcf, 0x42, 0x89,
- 0x3c, 0x24, 0x0d, 0xc1, 0x39, 0x66, 0x76, 0x38, 0x61, 0x3c, 0xb8, 0xb6, 0x9c, 0xfe, 0xc7, 0xac,
- 0x16, 0xba, 0x09, 0x43, 0xb4, 0xb7, 0x37, 0x94, 0x8b, 0xde, 0xd3, 0x79, 0x5f, 0xac, 0xa6, 0x9d,
- 0xf3, 0x2a, 0xa2, 0x08, 0xcb, 0xea, 0x4c, 0xf3, 0xdb, 0x68, 0xd5, 0xe9, 0x01, 0x16, 0x77, 0xbb,
- 0x67, 0xd7, 0x17, 0x6b, 0x1c, 0x49, 0x50, 0xe3, 0x9a, 0x5f, 0x59, 0x88, 0x13, 0x22, 0xf6, 0x3a,
- 0x94, 0xe9, 0xa4, 0xce, 0x7b, 0xae, 0xd3, 0x5d, 0xe9, 0xfc, 0x3c, 0x94, 0xa5, 0x02, 0x38, 0x12,
- 0x8e, 0x4d, 0x8c, 0xaa, 0xd4, 0x0f, 0x47, 0x38, 0x81, 0xdb, 0x9b, 0x70, 0x96, 0xbd, 0xfc, 0x3b,
- 0xf1, 0xb6, 0xb1, 0xc7, 0x7a, 0x2f, 0xe6, 0x17, 0x84, 0x20, 0xc6, 0x67, 0x66, 0x5a, 0xf3, 0x1d,
- 0x18, 0x95, 0x14, 0x13, 0xa1, 0xcc, 0xfe, 0x83, 0x12, 0x3c, 0xb9, 0x52, 0xcf, 0x77, 0x58, 0xbc,
- 0x0e, 0xa3, 0x9c, 0x4d, 0xa3, 0x4b, 0xdb, 0xf1, 0x44, 0xbb, 0xea, 0x5d, 0x6c, 0x5d, 0x83, 0x61,
- 0x03, 0x13, 0x5d, 0x84, 0xa2, 0xfb, 0x9e, 0x9f, 0x36, 0xc3, 0x5d, 0x79, 0x6b, 0x0d, 0xd3, 0x72,
- 0x0a, 0xa6, 0x1c, 0x1f, 0x3f, 0x4a, 0x15, 0x58, 0x71, 0x7d, 0x6f, 0xc0, 0xb8, 0x1b, 0x35, 0x22,
- 0x77, 0xc5, 0xa7, 0xe7, 0x4c, 0xe2, 0xec, 0x9a, 0x28, 0x09, 0x68, 0xa7, 0x15, 0x14, 0xa7, 0xb0,
- 0xb5, 0x73, 0x7d, 0xa0, 0x6f, 0xae, 0xb1, 0xa7, 0xa7, 0x0f, 0x65, 0x88, 0x5b, 0xec, 0xeb, 0x22,
- 0x66, 0xd4, 0x26, 0x18, 0x62, 0xfe, 0xc1, 0x11, 0x96, 0x30, 0x2a, 0x81, 0x35, 0xb6, 0x9d, 0xd6,
- 0x7c, 0x3b, 0xde, 0xae, 0xba, 0x51, 0x23, 0xd8, 0x23, 0xe1, 0x3e, 0x13, 0x9e, 0x87, 0x13, 0x09,
- 0x4c, 0x01, 0x16, 0x6f, 0xce, 0xd7, 0x28, 0x26, 0xee, 0xac, 0x63, 0x72, 0x85, 0x70, 0x12, 0x5c,
- 0xe1, 0x3c, 0x4c, 0xc8, 0x66, 0xea, 0x24, 0x62, 0x77, 0xc4, 0x08, 0xeb, 0x98, 0x32, 0xb5, 0x15,
- 0xc5, 0xaa, 0x5b, 0x69, 0x7c, 0xf4, 0x1a, 0x8c, 0xb9, 0xbe, 0x1b, 0xbb, 0x4e, 0x1c, 0x84, 0xec,
- 0x86, 0xe5, 0x72, 0x32, 0xb3, 0x64, 0x5b, 0xd1, 0x01, 0xd8, 0xc4, 0xb3, 0x7f, 0xbf, 0x04, 0x53,
- 0x6c, 0xda, 0xbe, 0xb5, 0xc2, 0x3e, 0x32, 0x2b, 0xec, 0x6e, 0xe7, 0x0a, 0x3b, 0x09, 0x76, 0xf7,
- 0xc3, 0x5c, 0x66, 0xef, 0x42, 0x59, 0xd9, 0x02, 0x4b, 0x67, 0x00, 0x2b, 0xc7, 0x19, 0xa0, 0x37,
- 0xf7, 0x21, 0x9f, 0x71, 0x8b, 0x99, 0xcf, 0xb8, 0x7f, 0xd3, 0x82, 0xc4, 0x24, 0x12, 0xdd, 0x84,
- 0x72, 0x2b, 0x60, 0x66, 0x07, 0xa1, 0xb4, 0xe5, 0x79, 0x32, 0xf3, 0xa2, 0xe2, 0x97, 0x22, 0x1f,
- 0xbf, 0x9a, 0xac, 0x81, 0x93, 0xca, 0x68, 0x01, 0x86, 0x5a, 0x21, 0xa9, 0xc7, 0xcc, 0x05, 0xb6,
- 0x27, 0x1d, 0xbe, 0x46, 0x38, 0x3e, 0x96, 0x15, 0xed, 0x5f, 0xb4, 0x00, 0xf8, 0x4b, 0xa9, 0xe3,
- 0x6f, 0x91, 0x53, 0xd0, 0xfe, 0x56, 0xa1, 0x14, 0xb5, 0x48, 0xa3, 0x9b, 0x41, 0x48, 0xd2, 0x9f,
- 0x7a, 0x8b, 0x34, 0x92, 0x01, 0xa7, 0xff, 0x30, 0xab, 0x6d, 0x7f, 0x1f, 0xc0, 0x78, 0x82, 0xb6,
- 0x12, 0x93, 0x5d, 0xf4, 0xa2, 0xe1, 0x12, 0x77, 0x21, 0xe5, 0x12, 0x57, 0x66, 0xd8, 0x9a, 0xa2,
- 0xf1, 0x5d, 0x28, 0xee, 0x3a, 0x0f, 0x85, 0x26, 0xe9, 0xf9, 0xee, 0xdd, 0xa0, 0xf4, 0x67, 0x57,
- 0x9d, 0x87, 0x5c, 0x66, 0x7a, 0x5e, 0x2e, 0x90, 0x55, 0xe7, 0xe1, 0x11, 0x37, 0xfb, 0x60, 0x87,
- 0xd4, 0x6d, 0x37, 0x8a, 0xbf, 0xf2, 0x9f, 0x92, 0xff, 0x6c, 0xd9, 0xd1, 0x46, 0x58, 0x5b, 0xae,
- 0x2f, 0xde, 0x0d, 0xfb, 0x6a, 0xcb, 0xf5, 0xd3, 0x6d, 0xb9, 0x7e, 0x1f, 0x6d, 0xb9, 0x3e, 0x7a,
- 0x1f, 0x86, 0xc4, 0x1b, 0x3d, 0xb3, 0xf5, 0x36, 0xb5, 0x54, 0x79, 0xed, 0x89, 0x27, 0x7e, 0xde,
- 0xe6, 0x9c, 0x94, 0x09, 0x45, 0x69, 0xcf, 0x76, 0x65, 0x83, 0xe8, 0xaf, 0x59, 0x30, 0x2e, 0x7e,
- 0x63, 0xf2, 0x5e, 0x9b, 0x44, 0xb1, 0xe0, 0x3d, 0x3f, 0xdd, 0x7f, 0x1f, 0x44, 0x45, 0xde, 0x95,
- 0x4f, 0xcb, 0x63, 0xd6, 0x04, 0xf6, 0xec, 0x51, 0xaa, 0x17, 0xe8, 0x1f, 0x5a, 0x70, 0x76, 0xd7,
- 0x79, 0xc8, 0x5b, 0xe4, 0x65, 0xd8, 0x89, 0xdd, 0x40, 0xd8, 0xae, 0x7f, 0xb6, 0xbf, 0xe9, 0xef,
- 0xa8, 0xce, 0x3b, 0x29, 0xcd, 0x5c, 0xcf, 0x66, 0xa1, 0xf4, 0xec, 0x6a, 0x66, 0xbf, 0x66, 0x36,
- 0x61, 0x58, 0xae, 0xb7, 0x0c, 0xc9, 0xbb, 0xaa, 0x33, 0xd6, 0xc7, 0x36, 0x91, 0xd0, 0xfd, 0xd2,
- 0x68, 0x3b, 0x62, 0xad, 0x3d, 0xd6, 0x76, 0xde, 0x85, 0x51, 0x7d, 0x8d, 0x3d, 0xd6, 0xb6, 0xde,
- 0x83, 0x33, 0x19, 0x6b, 0xe9, 0xb1, 0x36, 0xf9, 0x00, 0x2e, 0xe4, 0xae, 0x8f, 0xc7, 0xd9, 0xb0,
- 0xfd, 0x0b, 0x96, 0x7e, 0x0e, 0x9e, 0x82, 0x0a, 0x7e, 0xd1, 0x54, 0xc1, 0x5f, 0xea, 0xbe, 0x73,
- 0x72, 0xf4, 0xf0, 0xef, 0xe8, 0x9d, 0xa6, 0xa7, 0x3a, 0x7a, 0x13, 0x06, 0x3d, 0x5a, 0x22, 0x8d,
- 0x43, 0xec, 0xde, 0x3b, 0x32, 0xe1, 0xa5, 0x58, 0x79, 0x84, 0x05, 0x05, 0xfb, 0x57, 0x2c, 0x28,
- 0x9d, 0xc2, 0x48, 0x60, 0x73, 0x24, 0x5e, 0xcc, 0x25, 0x2d, 0x42, 0x9a, 0xcd, 0x62, 0xe7, 0xc1,
- 0x92, 0x0c, 0xdb, 0x96, 0x33, 0x30, 0xdf, 0x05, 0x67, 0x6e, 0x07, 0x4e, 0x73, 0xc1, 0xf1, 0x1c,
- 0xbf, 0x41, 0xc2, 0x15, 0x7f, 0xab, 0xa7, 0x95, 0x92, 0x6e, 0x53, 0x54, 0xe8, 0x65, 0x53, 0x64,
- 0x6f, 0x03, 0xd2, 0x1b, 0x10, 0x76, 0x9c, 0x18, 0x86, 0x5c, 0xde, 0x94, 0x18, 0xfe, 0x67, 0xb3,
- 0xb9, 0xbb, 0x8e, 0x9e, 0x69, 0x16, 0x8a, 0xbc, 0x00, 0x4b, 0x42, 0xf6, 0x75, 0xc8, 0xf4, 0xdd,
- 0xea, 0xad, 0x36, 0xb0, 0x5f, 0x85, 0x29, 0x56, 0xf3, 0x78, 0x22, 0xad, 0xfd, 0x03, 0x16, 0x4c,
- 0xac, 0xa5, 0x62, 0x53, 0x5c, 0x61, 0x6f, 0x7d, 0x19, 0x7a, 0xdf, 0x3a, 0x2b, 0xc5, 0x02, 0x7a,
- 0xe2, 0xfa, 0xa5, 0x3f, 0xb1, 0x20, 0x71, 0x95, 0x3c, 0x05, 0xa6, 0x6a, 0xd1, 0x60, 0xaa, 0x32,
- 0xf5, 0x1e, 0xaa, 0x3b, 0x79, 0x3c, 0x15, 0xba, 0xa5, 0xe2, 0x02, 0x74, 0x51, 0x79, 0x24, 0x64,
- 0xb8, 0x17, 0xf9, 0xb8, 0x19, 0x3c, 0x40, 0x46, 0x0a, 0x60, 0x66, 0x42, 0x0a, 0xf7, 0x23, 0x62,
- 0x26, 0xa4, 0xfa, 0x93, 0xb3, 0xfb, 0x6a, 0x5a, 0x97, 0xd9, 0xa9, 0xf4, 0xed, 0xcc, 0xec, 0xdb,
- 0xf1, 0xdc, 0xf7, 0x89, 0x0a, 0x6e, 0x52, 0x11, 0x66, 0xdc, 0xa2, 0xf4, 0xe8, 0xa0, 0x32, 0xa6,
- 0xfe, 0xf1, 0x08, 0x58, 0x49, 0x15, 0xfb, 0x26, 0x4c, 0xa4, 0x06, 0x0c, 0xbd, 0x0a, 0x03, 0xad,
- 0x6d, 0x27, 0x22, 0x29, 0xd3, 0xc8, 0x81, 0x1a, 0x2d, 0x3c, 0x3a, 0xa8, 0x8c, 0xab, 0x0a, 0xac,
- 0x04, 0x73, 0x6c, 0xfb, 0x7f, 0x5a, 0x50, 0x5a, 0x0b, 0x9a, 0xa7, 0xb1, 0x98, 0xde, 0x30, 0x16,
- 0xd3, 0x53, 0x79, 0xf1, 0x03, 0x73, 0xd7, 0xd1, 0x72, 0x6a, 0x1d, 0x5d, 0xca, 0xa5, 0xd0, 0x7d,
- 0x09, 0xed, 0xc2, 0x08, 0x8b, 0x4a, 0x28, 0x4c, 0x35, 0x5f, 0x36, 0xf8, 0xfb, 0x4a, 0x8a, 0xbf,
- 0x9f, 0xd0, 0x50, 0x35, 0x2e, 0xff, 0x39, 0x18, 0x12, 0xe6, 0x82, 0x69, 0x03, 0x77, 0x81, 0x8b,
- 0x25, 0xdc, 0xfe, 0xc9, 0x22, 0x18, 0x51, 0x10, 0xd1, 0xaf, 0x5a, 0x30, 0x1b, 0x72, 0x8f, 0xc1,
- 0x66, 0xb5, 0x1d, 0xba, 0xfe, 0x56, 0xbd, 0xb1, 0x4d, 0x9a, 0x6d, 0xcf, 0xf5, 0xb7, 0x56, 0xb6,
- 0xfc, 0x40, 0x15, 0x2f, 0x3d, 0x24, 0x8d, 0x36, 0xd3, 0xf9, 0xf7, 0x08, 0xb9, 0xa8, 0xcc, 0x71,
- 0xae, 0x1d, 0x1e, 0x54, 0x66, 0xf1, 0xb1, 0x68, 0xe3, 0x63, 0xf6, 0x05, 0x7d, 0xc3, 0x82, 0x39,
- 0x1e, 0x1c, 0xb0, 0xff, 0xfe, 0x77, 0x91, 0x86, 0x6a, 0x92, 0x54, 0x42, 0x64, 0x9d, 0x84, 0xbb,
- 0x0b, 0xaf, 0x89, 0x01, 0x9d, 0xab, 0x1d, 0xaf, 0x2d, 0x7c, 0xdc, 0xce, 0xd9, 0xff, 0xb2, 0x08,
- 0x63, 0xc2, 0x59, 0x5d, 0x44, 0x41, 0x79, 0xd5, 0x58, 0x12, 0x4f, 0xa7, 0x96, 0xc4, 0x94, 0x81,
- 0x7c, 0x32, 0x01, 0x50, 0x22, 0x98, 0xf2, 0x9c, 0x28, 0xbe, 0x49, 0x9c, 0x30, 0xde, 0x20, 0x0e,
- 0x37, 0x53, 0x29, 0x1e, 0xdb, 0xa4, 0x46, 0xa9, 0x5f, 0x6e, 0xa7, 0x89, 0xe1, 0x4e, 0xfa, 0x68,
- 0x0f, 0x10, 0xb3, 0xb5, 0x09, 0x1d, 0x3f, 0xe2, 0xdf, 0xe2, 0x8a, 0xf7, 0x80, 0xe3, 0xb5, 0x3a,
- 0x23, 0x5a, 0x45, 0xb7, 0x3b, 0xa8, 0xe1, 0x8c, 0x16, 0x34, 0x1b, 0xaa, 0x81, 0x7e, 0x6d, 0xa8,
- 0x06, 0x7b, 0x78, 0x91, 0xf8, 0x30, 0xd9, 0x11, 0x6f, 0xe0, 0x6d, 0x28, 0x2b, 0x5b, 0x37, 0x71,
- 0xe8, 0x74, 0x0f, 0xdb, 0x91, 0xa6, 0xc0, 0x55, 0x24, 0x89, 0x9d, 0x65, 0x42, 0xce, 0xfe, 0x47,
- 0x05, 0xa3, 0x41, 0x3e, 0x89, 0x6b, 0x30, 0xec, 0x44, 0x91, 0xbb, 0xe5, 0x93, 0xa6, 0xd8, 0xb1,
- 0x1f, 0xcf, 0xdb, 0xb1, 0x46, 0x33, 0xcc, 0xde, 0x70, 0x5e, 0xd4, 0xc4, 0x8a, 0x06, 0xba, 0xc9,
- 0x8d, 0x81, 0xf6, 0x24, 0x3f, 0xdf, 0x1f, 0x35, 0x90, 0xe6, 0x42, 0x7b, 0x04, 0x8b, 0xfa, 0xe8,
- 0x8b, 0xdc, 0x5a, 0xeb, 0x96, 0x1f, 0x3c, 0xf0, 0x6f, 0x04, 0x81, 0xf4, 0x30, 0xeb, 0x8f, 0xe0,
- 0x94, 0xb4, 0xd1, 0x52, 0xd5, 0xb1, 0x49, 0xad, 0xbf, 0x98, 0x3c, 0xdf, 0x0d, 0x67, 0x28, 0x69,
- 0xd3, 0x4f, 0x24, 0x42, 0x04, 0x26, 0x44, 0x24, 0x04, 0x59, 0x26, 0xc6, 0x2e, 0x93, 0x55, 0x37,
- 0x6b, 0x27, 0x0a, 0xbd, 0x5b, 0x26, 0x09, 0x9c, 0xa6, 0x69, 0xff, 0xb4, 0x05, 0xcc, 0xc2, 0xfd,
- 0x14, 0x58, 0x86, 0xcf, 0x99, 0x2c, 0xc3, 0x74, 0xde, 0x20, 0xe7, 0x70, 0x0b, 0xaf, 0xf0, 0x95,
- 0x55, 0x0b, 0x83, 0x87, 0xfb, 0xe2, 0xa5, 0xbc, 0x0f, 0x2e, 0xf5, 0xff, 0x5a, 0xfc, 0x10, 0x53,
- 0x4e, 0xe7, 0xe8, 0x7b, 0x60, 0xb8, 0xe1, 0xb4, 0x9c, 0x06, 0x0f, 0xd9, 0x9b, 0xab, 0xb1, 0x31,
- 0x2a, 0xcd, 0x2e, 0x8a, 0x1a, 0x5c, 0x03, 0x21, 0x23, 0x6a, 0x0c, 0xcb, 0xe2, 0x9e, 0x5a, 0x07,
- 0xd5, 0xe4, 0xcc, 0x0e, 0x8c, 0x19, 0xc4, 0x1e, 0xab, 0xb8, 0xfa, 0x3d, 0xfc, 0x8a, 0x55, 0x11,
- 0x60, 0x76, 0x61, 0xca, 0xd7, 0xfe, 0xd3, 0x0b, 0x45, 0x8a, 0x20, 0x1f, 0xef, 0x75, 0x89, 0xb2,
- 0xdb, 0x47, 0xb3, 0xe0, 0x4f, 0x91, 0xc1, 0x9d, 0x94, 0xed, 0xbf, 0x6d, 0xc1, 0x13, 0x3a, 0xa2,
- 0x16, 0x0f, 0xa0, 0x97, 0x0e, 0xb8, 0x0a, 0xc3, 0x41, 0x8b, 0x84, 0x4e, 0x1c, 0x84, 0xe2, 0xd6,
- 0xb8, 0x2a, 0x07, 0xfd, 0x8e, 0x28, 0x3f, 0x12, 0xb1, 0x13, 0x25, 0x75, 0x59, 0x8e, 0x55, 0x4d,
- 0x64, 0xc3, 0x20, 0x1b, 0x8c, 0x48, 0xc4, 0x6a, 0x60, 0x67, 0x00, 0x7b, 0x0e, 0x8d, 0xb0, 0x80,
- 0xd8, 0x7f, 0x60, 0xf1, 0x85, 0xa5, 0x77, 0x1d, 0xbd, 0x07, 0x93, 0xbb, 0x4e, 0xdc, 0xd8, 0x5e,
- 0x7a, 0xd8, 0x0a, 0xb9, 0xea, 0x5b, 0x8e, 0xd3, 0xf3, 0xbd, 0xc6, 0x49, 0xfb, 0xc8, 0xc4, 0x00,
- 0x6d, 0x35, 0x45, 0x0c, 0x77, 0x90, 0x47, 0x1b, 0x30, 0xc2, 0xca, 0x98, 0xa5, 0x73, 0xd4, 0x8d,
- 0x35, 0xc8, 0x6b, 0x4d, 0xbd, 0x28, 0xaf, 0x26, 0x74, 0xb0, 0x4e, 0xd4, 0xfe, 0x4a, 0x91, 0xef,
- 0x76, 0xc6, 0x6d, 0x3f, 0x07, 0x43, 0xad, 0xa0, 0xb9, 0xb8, 0x52, 0xc5, 0x62, 0x16, 0xd4, 0x35,
- 0x52, 0xe3, 0xc5, 0x58, 0xc2, 0xd1, 0xeb, 0x00, 0xe4, 0x61, 0x4c, 0x42, 0xdf, 0xf1, 0x94, 0x41,
- 0x88, 0x32, 0x81, 0xac, 0x06, 0x6b, 0x41, 0x7c, 0x37, 0x22, 0xdf, 0xb5, 0xa4, 0x50, 0xb0, 0x86,
- 0x8e, 0xae, 0x01, 0xb4, 0xc2, 0x60, 0xcf, 0x6d, 0x32, 0xd7, 0xb9, 0xa2, 0x69, 0x2e, 0x51, 0x53,
- 0x10, 0xac, 0x61, 0xa1, 0xd7, 0x61, 0xac, 0xed, 0x47, 0x9c, 0x43, 0x71, 0x36, 0x44, 0xe4, 0xc1,
- 0xe1, 0xc4, 0x72, 0xe1, 0xae, 0x0e, 0xc4, 0x26, 0x2e, 0x9a, 0x87, 0xc1, 0xd8, 0x61, 0xf6, 0x0e,
- 0x03, 0xf9, 0x76, 0x8b, 0xeb, 0x14, 0x43, 0x0f, 0x18, 0x4b, 0x2b, 0x60, 0x51, 0x11, 0xbd, 0x2d,
- 0xfd, 0x10, 0xf8, 0x59, 0x2f, 0x0c, 0x86, 0xfb, 0xbb, 0x17, 0x34, 0x2f, 0x04, 0x61, 0x88, 0x6c,
- 0xd0, 0xb2, 0xbf, 0x51, 0x06, 0x48, 0xd8, 0x71, 0xf4, 0x7e, 0xc7, 0x79, 0xf4, 0x42, 0x77, 0x06,
- 0xfe, 0xe4, 0x0e, 0x23, 0xf4, 0xfd, 0x16, 0x8c, 0x38, 0x9e, 0x17, 0x34, 0x9c, 0x98, 0x8d, 0x72,
- 0xa1, 0xfb, 0x79, 0x28, 0xda, 0x9f, 0x4f, 0x6a, 0xf0, 0x2e, 0xbc, 0x2c, 0x17, 0x9e, 0x06, 0xe9,
- 0xd9, 0x0b, 0xbd, 0x61, 0xf4, 0x29, 0x29, 0xa5, 0xf1, 0xe5, 0x31, 0x93, 0x96, 0xd2, 0xca, 0xec,
- 0xe8, 0xd7, 0x04, 0x34, 0x74, 0xd7, 0x08, 0x2a, 0x57, 0xca, 0x8f, 0xaf, 0x60, 0x70, 0xa5, 0xbd,
- 0xe2, 0xc9, 0xa1, 0x9a, 0xee, 0x38, 0x35, 0x90, 0x1f, 0x84, 0x44, 0x13, 0x7f, 0x7a, 0x38, 0x4d,
- 0xbd, 0x0b, 0x13, 0x4d, 0xf3, 0x6e, 0x17, 0xab, 0xe9, 0xd9, 0x3c, 0xba, 0x29, 0x56, 0x20, 0xb9,
- 0xcd, 0x53, 0x00, 0x9c, 0x26, 0x8c, 0x6a, 0xdc, 0x85, 0x6d, 0xc5, 0xdf, 0x0c, 0x84, 0xe1, 0xb9,
- 0x9d, 0x3b, 0x97, 0xfb, 0x51, 0x4c, 0x76, 0x29, 0x66, 0x72, 0x69, 0xaf, 0x89, 0xba, 0x58, 0x51,
- 0x41, 0x6f, 0xc2, 0x20, 0xf3, 0x81, 0x8d, 0xa6, 0x87, 0xf3, 0x15, 0x85, 0x66, 0xf8, 0x86, 0x64,
- 0x53, 0xb1, 0xbf, 0x11, 0x16, 0x14, 0xd0, 0x4d, 0x19, 0xe3, 0x25, 0x5a, 0xf1, 0xef, 0x46, 0x84,
- 0xc5, 0x78, 0x29, 0x2f, 0x7c, 0x3c, 0x09, 0xdf, 0xc2, 0xcb, 0x33, 0x43, 0xc3, 0x1b, 0x35, 0x29,
- 0x73, 0x24, 0xfe, 0xcb, 0x88, 0xf3, 0xd3, 0x90, 0xdf, 0x3d, 0x33, 0x2a, 0x7d, 0x32, 0x9c, 0xf7,
- 0x4c, 0x12, 0x38, 0x4d, 0x93, 0x32, 0x9a, 0x7c, 0xe7, 0x0a, 0xd3, 0xf5, 0x5e, 0xfb, 0x9f, 0xcb,
- 0xd7, 0xec, 0x92, 0xe1, 0x25, 0x58, 0xd4, 0x3f, 0xd5, 0x5b, 0x7f, 0xc6, 0x87, 0xc9, 0xf4, 0x16,
- 0x7d, 0xac, 0x5c, 0xc6, 0xef, 0x95, 0x60, 0xdc, 0x5c, 0x52, 0x68, 0x0e, 0xca, 0x82, 0x88, 0x0a,
- 0x38, 0xaa, 0x76, 0xc9, 0xaa, 0x04, 0xe0, 0x04, 0x87, 0xc5, 0x99, 0x65, 0xd5, 0x35, 0x93, 0xc3,
- 0x24, 0xce, 0xac, 0x82, 0x60, 0x0d, 0x8b, 0xca, 0x4b, 0x1b, 0x41, 0x10, 0xab, 0x4b, 0x45, 0xad,
- 0xbb, 0x05, 0x56, 0x8a, 0x05, 0x94, 0x5e, 0x26, 0x3b, 0x24, 0xf4, 0x89, 0x67, 0xc6, 0x31, 0x53,
- 0x97, 0xc9, 0x2d, 0x1d, 0x88, 0x4d, 0x5c, 0x7a, 0x4b, 0x06, 0x11, 0x5b, 0xc8, 0x42, 0x2a, 0x4b,
- 0x4c, 0x38, 0xeb, 0xdc, 0x9b, 0x5c, 0xc2, 0xd1, 0x17, 0xe0, 0x09, 0xe5, 0xfc, 0x8d, 0xb9, 0x12,
- 0x5a, 0xb6, 0x38, 0x68, 0x28, 0x51, 0x9e, 0x58, 0xcc, 0x46, 0xc3, 0x79, 0xf5, 0xd1, 0x1b, 0x30,
- 0x2e, 0x38, 0x77, 0x49, 0x71, 0xc8, 0xb4, 0x8b, 0xb8, 0x65, 0x40, 0x71, 0x0a, 0x5b, 0x46, 0x62,
- 0x63, 0xcc, 0xb3, 0xa4, 0x30, 0xdc, 0x19, 0x89, 0x4d, 0x87, 0xe3, 0x8e, 0x1a, 0x68, 0x1e, 0x26,
- 0x38, 0x6b, 0xe5, 0xfa, 0x5b, 0x7c, 0x4e, 0x84, 0x67, 0x89, 0xda, 0x52, 0x77, 0x4c, 0x30, 0x4e,
- 0xe3, 0xa3, 0xeb, 0x30, 0xea, 0x84, 0x8d, 0x6d, 0x37, 0x26, 0x8d, 0xb8, 0x1d, 0x72, 0x97, 0x13,
- 0xcd, 0xb0, 0x64, 0x5e, 0x83, 0x61, 0x03, 0xd3, 0x7e, 0x1f, 0xce, 0x64, 0x38, 0xa5, 0xd1, 0x85,
- 0xe3, 0xb4, 0x5c, 0xf9, 0x4d, 0x29, 0x63, 0xcc, 0xf9, 0xda, 0x8a, 0xfc, 0x1a, 0x0d, 0x8b, 0xae,
- 0x4e, 0xe6, 0xbc, 0xa6, 0x25, 0x98, 0x50, 0xab, 0x73, 0x59, 0x02, 0x70, 0x82, 0x63, 0xff, 0xaf,
- 0x02, 0x4c, 0x64, 0x28, 0xd6, 0x59, 0x92, 0x83, 0x94, 0xec, 0x91, 0xe4, 0x34, 0x30, 0x03, 0xfb,
- 0x15, 0x8e, 0x11, 0xd8, 0xaf, 0xd8, 0x2b, 0xb0, 0x5f, 0xe9, 0x83, 0x04, 0xf6, 0x33, 0x47, 0x6c,
- 0xa0, 0xaf, 0x11, 0xcb, 0x08, 0x06, 0x38, 0x78, 0xcc, 0x60, 0x80, 0xc6, 0xa0, 0x0f, 0xf5, 0x31,
- 0xe8, 0x3f, 0x5a, 0x80, 0xc9, 0xb4, 0x01, 0xdc, 0x29, 0xa8, 0x63, 0xdf, 0x34, 0xd4, 0xb1, 0xd9,
- 0x29, 0x43, 0xd2, 0x66, 0x79, 0x79, 0xaa, 0x59, 0x9c, 0x52, 0xcd, 0x7e, 0xb2, 0x2f, 0x6a, 0xdd,
- 0xd5, 0xb4, 0x7f, 0xa7, 0x00, 0xe7, 0xd2, 0x55, 0x16, 0x3d, 0xc7, 0xdd, 0x3d, 0x85, 0xb1, 0xb9,
- 0x63, 0x8c, 0xcd, 0x8b, 0xfd, 0x7c, 0x0d, 0xeb, 0x5a, 0xee, 0x00, 0xdd, 0x4f, 0x0d, 0xd0, 0x5c,
- 0xff, 0x24, 0xbb, 0x8f, 0xd2, 0x37, 0x8b, 0x70, 0x29, 0xb3, 0x5e, 0xa2, 0xcd, 0x5c, 0x36, 0xb4,
- 0x99, 0xd7, 0x52, 0xda, 0x4c, 0xbb, 0x7b, 0xed, 0x93, 0x51, 0x6f, 0x0a, 0x6f, 0x41, 0x16, 0xfc,
- 0xed, 0x11, 0x55, 0x9b, 0x86, 0xb7, 0xa0, 0x22, 0x84, 0x4d, 0xba, 0x7f, 0x96, 0x54, 0x9a, 0xff,
- 0xc6, 0x82, 0x0b, 0x99, 0x73, 0x73, 0x0a, 0x2a, 0xac, 0x35, 0x53, 0x85, 0xf5, 0x5c, 0xdf, 0xab,
- 0x35, 0x47, 0xa7, 0xf5, 0xfb, 0xc5, 0x9c, 0x6f, 0x61, 0x02, 0xfa, 0x1d, 0x18, 0x71, 0x1a, 0x0d,
- 0x12, 0x45, 0xab, 0x41, 0x53, 0x05, 0x43, 0x7b, 0x91, 0xc9, 0x59, 0x49, 0xf1, 0xd1, 0x41, 0x65,
- 0x26, 0x4d, 0x22, 0x01, 0x63, 0x9d, 0x82, 0x19, 0xbf, 0xb1, 0x70, 0xa2, 0xf1, 0x1b, 0xaf, 0x01,
- 0xec, 0x29, 0x6e, 0x3d, 0x2d, 0xe4, 0x6b, 0x7c, 0xbc, 0x86, 0x85, 0xbe, 0x08, 0xc3, 0x91, 0xb8,
- 0xc6, 0xc5, 0x52, 0x7c, 0xb9, 0xcf, 0xb9, 0x72, 0x36, 0x88, 0x67, 0xba, 0xa5, 0x2b, 0x7d, 0x88,
- 0x22, 0x89, 0xbe, 0x03, 0x26, 0x23, 0x1e, 0xf5, 0x64, 0xd1, 0x73, 0x22, 0xe6, 0xe3, 0x20, 0x56,
- 0x21, 0xf3, 0x35, 0xaf, 0xa7, 0x60, 0xb8, 0x03, 0x1b, 0x2d, 0xcb, 0x8f, 0x62, 0x21, 0x5a, 0xf8,
- 0xc2, 0xbc, 0x92, 0x7c, 0x90, 0x48, 0xb1, 0x74, 0x36, 0x3d, 0xfc, 0x6c, 0xe0, 0xb5, 0x9a, 0xf6,
- 0x8f, 0x96, 0xe0, 0xc9, 0x2e, 0x87, 0x18, 0x9a, 0x37, 0xdf, 0x28, 0x9f, 0x4f, 0x4b, 0xbf, 0x33,
- 0x99, 0x95, 0x0d, 0x71, 0x38, 0xb5, 0x56, 0x0a, 0x1f, 0x78, 0xad, 0xfc, 0x90, 0xa5, 0xe9, 0x25,
- 0xb8, 0x25, 0xdd, 0xe7, 0x8e, 0x79, 0x38, 0x9f, 0xa0, 0xa2, 0x62, 0x33, 0x43, 0xda, 0xbf, 0xd6,
- 0x77, 0x77, 0xfa, 0x16, 0xff, 0x4f, 0x57, 0x3b, 0xfb, 0x15, 0x0b, 0x9e, 0xce, 0xec, 0xaf, 0x61,
- 0x53, 0x31, 0x07, 0xe5, 0x06, 0x2d, 0xd4, 0xfc, 0xa6, 0x12, 0x87, 0x52, 0x09, 0xc0, 0x09, 0x8e,
- 0x61, 0x3a, 0x51, 0xe8, 0x69, 0x3a, 0xf1, 0x2f, 0x2c, 0xe8, 0x58, 0xc0, 0xa7, 0x70, 0x92, 0xae,
- 0x98, 0x27, 0xe9, 0xc7, 0xfb, 0x99, 0xcb, 0x9c, 0x43, 0xf4, 0x3f, 0x4f, 0xc0, 0xf9, 0x1c, 0x47,
- 0x89, 0x3d, 0x98, 0xda, 0x6a, 0x10, 0xd3, 0x23, 0x4d, 0x7c, 0x4c, 0xa6, 0xf3, 0x5e, 0x57, 0xf7,
- 0x35, 0x96, 0x1b, 0x67, 0xaa, 0x03, 0x05, 0x77, 0x36, 0x81, 0xbe, 0x62, 0xc1, 0x59, 0xe7, 0x41,
- 0xd4, 0x91, 0x01, 0x51, 0xac, 0x99, 0x57, 0x32, 0xb5, 0x14, 0x3d, 0x32, 0x26, 0xf2, 0x64, 0x41,
- 0x59, 0x58, 0x38, 0xb3, 0x2d, 0x84, 0x45, 0xfc, 0x4a, 0xca, 0x6f, 0x77, 0xf1, 0x99, 0xcc, 0xf2,
- 0x68, 0xe1, 0x67, 0xaa, 0x84, 0x60, 0x45, 0x07, 0xdd, 0x83, 0xf2, 0x96, 0x74, 0x33, 0x13, 0x67,
- 0x76, 0xe6, 0x25, 0x98, 0xe9, 0x8b, 0xc6, 0xdf, 0x0d, 0x15, 0x08, 0x27, 0xa4, 0xd0, 0x1b, 0x50,
- 0xf4, 0x37, 0xa3, 0x6e, 0x59, 0x76, 0x52, 0xa6, 0x46, 0xdc, 0x1f, 0x79, 0x6d, 0xb9, 0x8e, 0x69,
- 0x45, 0x74, 0x13, 0x8a, 0xe1, 0x46, 0x53, 0x28, 0xd6, 0x32, 0xf9, 0x52, 0xbc, 0x50, 0xcd, 0x5e,
- 0x24, 0x9c, 0x12, 0x5e, 0xa8, 0x62, 0x4a, 0x02, 0xd5, 0x60, 0x80, 0xf9, 0x14, 0x08, 0xfd, 0x59,
- 0x26, 0x43, 0xda, 0xc5, 0x37, 0x87, 0x3b, 0x2d, 0x33, 0x04, 0xcc, 0x09, 0xa1, 0x75, 0x18, 0x6c,
- 0xb0, 0x8c, 0x2c, 0x22, 0x64, 0xf2, 0xa7, 0x32, 0x55, 0x68, 0x5d, 0x52, 0xd5, 0x08, 0x8d, 0x12,
- 0xc3, 0xc0, 0x82, 0x16, 0xa3, 0x4a, 0x5a, 0xdb, 0x9b, 0x11, 0x13, 0xc1, 0xf3, 0xa8, 0x76, 0xc9,
- 0xc0, 0x24, 0xa8, 0x32, 0x0c, 0x2c, 0x68, 0xa1, 0xcf, 0x40, 0x61, 0xb3, 0x21, 0x5c, 0x0e, 0x32,
- 0x75, 0x69, 0xa6, 0x4b, 0xf9, 0xc2, 0xe0, 0xe1, 0x41, 0xa5, 0xb0, 0xbc, 0x88, 0x0b, 0x9b, 0x0d,
- 0xb4, 0x06, 0x43, 0x9b, 0xdc, 0x09, 0x55, 0xa8, 0xcb, 0x9e, 0xcd, 0xf6, 0x8f, 0xed, 0xf0, 0x53,
- 0xe5, 0xa6, 0xf2, 0x02, 0x80, 0x25, 0x11, 0x16, 0x04, 0x52, 0x39, 0xd3, 0x8a, 0x68, 0xc8, 0xb3,
- 0xc7, 0x73, 0x80, 0xe6, 0xee, 0xed, 0x89, 0x4b, 0x2e, 0xd6, 0x28, 0xa2, 0x2f, 0x43, 0xd9, 0x91,
- 0xb9, 0xf7, 0x44, 0xb4, 0x88, 0x97, 0x33, 0x37, 0x66, 0xf7, 0xb4, 0x84, 0x7c, 0x55, 0x2b, 0x24,
- 0x9c, 0x10, 0x45, 0x3b, 0x30, 0xb6, 0x17, 0xb5, 0xb6, 0x89, 0xdc, 0xc8, 0x2c, 0x78, 0x44, 0xce,
- 0xc5, 0x75, 0x4f, 0x20, 0xba, 0x61, 0xdc, 0x76, 0xbc, 0x8e, 0xb3, 0x87, 0x3d, 0x36, 0xdf, 0xd3,
- 0x89, 0x61, 0x93, 0x36, 0x1d, 0xfe, 0xf7, 0xda, 0xc1, 0xc6, 0x7e, 0x4c, 0x44, 0xf8, 0xe4, 0xcc,
- 0xe1, 0x7f, 0x8b, 0xa3, 0x74, 0x0e, 0xbf, 0x00, 0x60, 0x49, 0x84, 0x6e, 0x75, 0x47, 0xe6, 0xb5,
- 0x64, 0x61, 0x93, 0x73, 0xb6, 0x7a, 0x66, 0xf2, 0x4b, 0x6d, 0x50, 0xd8, 0x19, 0x99, 0x90, 0x62,
- 0x67, 0x63, 0x6b, 0x3b, 0x88, 0x03, 0x3f, 0x75, 0x2e, 0x4f, 0xe5, 0x9f, 0x8d, 0xb5, 0x0c, 0xfc,
- 0xce, 0xb3, 0x31, 0x0b, 0x0b, 0x67, 0xb6, 0x85, 0x9a, 0x30, 0xde, 0x0a, 0xc2, 0xf8, 0x41, 0x10,
- 0xca, 0xf5, 0x85, 0xba, 0x88, 0xfb, 0x06, 0xa6, 0x68, 0x91, 0x85, 0xf3, 0x36, 0x21, 0x38, 0x45,
- 0x13, 0x7d, 0x1e, 0x86, 0xa2, 0x86, 0xe3, 0x91, 0x95, 0x3b, 0xd3, 0x67, 0xf2, 0x2f, 0x9d, 0x3a,
- 0x47, 0xc9, 0x59, 0x5d, 0x6c, 0x72, 0x04, 0x0a, 0x96, 0xe4, 0xd0, 0x32, 0x0c, 0xb0, 0x98, 0xfc,
- 0x2c, 0xf2, 0x73, 0x4e, 0x54, 0xa2, 0x0e, 0xa3, 0x4e, 0x7e, 0x36, 0xb1, 0x62, 0xcc, 0xab, 0xd3,
- 0x3d, 0x20, 0xb8, 0xde, 0x20, 0x9a, 0x3e, 0x97, 0xbf, 0x07, 0x04, 0xb3, 0x7c, 0xa7, 0xde, 0x6d,
- 0x0f, 0x28, 0x24, 0x9c, 0x10, 0xa5, 0x27, 0x33, 0x3d, 0x4d, 0xcf, 0x77, 0xb1, 0x33, 0xc9, 0x3d,
- 0x4b, 0xd9, 0xc9, 0x4c, 0x4f, 0x52, 0x4a, 0xc2, 0xfe, 0x9d, 0xa1, 0x4e, 0x4e, 0x85, 0xc9, 0x49,
- 0x7f, 0xd1, 0xea, 0x78, 0x42, 0xfb, 0x74, 0xbf, 0x6a, 0x9b, 0x13, 0xe4, 0x51, 0xbf, 0x62, 0xc1,
- 0xf9, 0x56, 0xe6, 0x87, 0x88, 0x6b, 0xbf, 0x3f, 0xed, 0x0f, 0xff, 0x74, 0x15, 0x9d, 0x3d, 0x1b,
- 0x8e, 0x73, 0x5a, 0x4a, 0xcb, 0x01, 0xc5, 0x0f, 0x2c, 0x07, 0xac, 0xc2, 0x30, 0x63, 0x2d, 0x7b,
- 0x64, 0x28, 0x4b, 0x7b, 0xa1, 0x31, 0x06, 0x62, 0x51, 0x54, 0xc4, 0x8a, 0x04, 0xfa, 0x61, 0x0b,
- 0x2e, 0xa6, 0xbb, 0x8e, 0x09, 0x03, 0x8b, 0x58, 0xe6, 0x5c, 0x44, 0x5b, 0x16, 0xdf, 0x7f, 0xb1,
- 0xd6, 0x0d, 0xf9, 0xa8, 0x17, 0x02, 0xee, 0xde, 0x18, 0xaa, 0x66, 0xc8, 0x88, 0x83, 0xa6, 0x5e,
- 0xbc, 0x0f, 0x39, 0xf1, 0x15, 0x18, 0xdd, 0x0d, 0xda, 0x7e, 0x2c, 0xcc, 0x52, 0x84, 0x93, 0x20,
- 0x7b, 0x07, 0x5e, 0xd5, 0xca, 0xb1, 0x81, 0x95, 0x92, 0x2e, 0x87, 0x1f, 0x55, 0xba, 0x44, 0xef,
- 0xa4, 0xf2, 0x50, 0x97, 0xf3, 0x63, 0xe6, 0x09, 0x41, 0xfc, 0x18, 0xd9, 0xa8, 0x4f, 0x57, 0x22,
- 0xfa, 0x59, 0x2b, 0x83, 0x95, 0xe7, 0x32, 0xf2, 0x67, 0x4d, 0x19, 0xf9, 0x4a, 0x5a, 0x46, 0xee,
- 0xd0, 0x89, 0x1a, 0xe2, 0x71, 0xff, 0x81, 0x97, 0xfb, 0x8d, 0x64, 0x66, 0x7b, 0x70, 0xb9, 0xd7,
- 0xb5, 0xc4, 0xec, 0x93, 0x9a, 0xea, 0x05, 0x2c, 0xb1, 0x4f, 0x6a, 0xae, 0x54, 0x31, 0x83, 0xf4,
- 0x1b, 0xea, 0xc2, 0xfe, 0x6f, 0x16, 0x14, 0x6b, 0x41, 0xf3, 0x14, 0x74, 0xbc, 0x9f, 0x33, 0x74,
- 0xbc, 0x4f, 0xe6, 0xe4, 0x07, 0xcf, 0xd5, 0xe8, 0x2e, 0xa5, 0x34, 0xba, 0x17, 0xf3, 0x08, 0x74,
- 0xd7, 0xdf, 0xfe, 0x54, 0x11, 0xf4, 0x6c, 0xe6, 0xe8, 0x5f, 0x3d, 0x8a, 0x71, 0x70, 0xb1, 0x5b,
- 0x82, 0x73, 0x41, 0x99, 0x99, 0x35, 0x49, 0xbf, 0xb7, 0x3f, 0x65, 0x36, 0xc2, 0xf7, 0x89, 0xbb,
- 0xb5, 0x1d, 0x93, 0x66, 0xfa, 0x73, 0x4e, 0xcf, 0x46, 0xf8, 0xbf, 0x58, 0x30, 0x91, 0x6a, 0x1d,
- 0x79, 0x30, 0xe6, 0xe9, 0x0a, 0x3a, 0xb1, 0x4e, 0x1f, 0x49, 0xb7, 0x27, 0x6c, 0x2c, 0xb5, 0x22,
- 0x6c, 0x12, 0x47, 0xb3, 0x00, 0xea, 0x01, 0x4d, 0xea, 0xbd, 0x18, 0xd7, 0xaf, 0x5e, 0xd8, 0x22,
- 0xac, 0x61, 0xa0, 0x57, 0x61, 0x24, 0x0e, 0x5a, 0x81, 0x17, 0x6c, 0xed, 0xdf, 0x22, 0x32, 0xb8,
- 0x8a, 0xb2, 0x9c, 0x5a, 0x4f, 0x40, 0x58, 0xc7, 0xb3, 0x7f, 0xa6, 0x08, 0xe9, 0x0c, 0xf8, 0xdf,
- 0x5a, 0x93, 0x1f, 0xcd, 0x35, 0xf9, 0x4d, 0x0b, 0x26, 0x69, 0xeb, 0xcc, 0x8a, 0x43, 0x5e, 0xb6,
- 0x2a, 0x01, 0x8c, 0xd5, 0x25, 0x01, 0xcc, 0x15, 0x7a, 0x76, 0x35, 0x83, 0x76, 0x2c, 0xf4, 0x66,
- 0xda, 0xe1, 0x44, 0x4b, 0xb1, 0x80, 0x0a, 0x3c, 0x12, 0x86, 0xc2, 0x35, 0x49, 0xc7, 0x23, 0x61,
- 0x88, 0x05, 0x54, 0xe6, 0x87, 0x29, 0xe5, 0xe4, 0x87, 0x61, 0xa1, 0xe2, 0xc4, 0x7b, 0xbf, 0x60,
- 0x7b, 0xb4, 0x50, 0x71, 0xd2, 0x10, 0x20, 0xc1, 0xb1, 0x7f, 0xa1, 0x08, 0xa3, 0xb5, 0xa0, 0x99,
- 0x3c, 0x61, 0xbd, 0x62, 0x3c, 0x61, 0x5d, 0x4e, 0x3d, 0x61, 0x4d, 0xea, 0xb8, 0xdf, 0x7a, 0xb0,
- 0xfa, 0xb0, 0x1e, 0xac, 0xfe, 0xb9, 0xc5, 0x66, 0xad, 0xba, 0x56, 0x17, 0xf9, 0x69, 0x5f, 0x82,
- 0x11, 0x76, 0x20, 0x31, 0x5f, 0x38, 0xf9, 0xae, 0xc3, 0x42, 0xbf, 0xaf, 0x25, 0xc5, 0x58, 0xc7,
- 0x41, 0x57, 0x61, 0x38, 0x22, 0x4e, 0xd8, 0xd8, 0x56, 0x67, 0x9c, 0x78, 0xf5, 0xe0, 0x65, 0x58,
- 0x41, 0xd1, 0x5b, 0x49, 0x94, 0xb2, 0x62, 0x7e, 0xa6, 0x55, 0xbd, 0x3f, 0x7c, 0x8b, 0xe4, 0x87,
- 0x26, 0xb3, 0xef, 0x03, 0xea, 0xc4, 0xef, 0x23, 0x1e, 0x51, 0xc5, 0x8c, 0x47, 0x54, 0xee, 0x88,
- 0x45, 0xf4, 0xc7, 0x16, 0x8c, 0xd7, 0x82, 0x26, 0xdd, 0xba, 0x7f, 0x96, 0xf6, 0xa9, 0x1e, 0xa2,
- 0x71, 0xb0, 0x4b, 0x88, 0xc6, 0xbf, 0x6b, 0xc1, 0x50, 0x2d, 0x68, 0x9e, 0x82, 0xb6, 0xfd, 0xb3,
- 0xa6, 0xb6, 0xfd, 0x89, 0x9c, 0x25, 0x91, 0xa3, 0x60, 0xff, 0xa5, 0x22, 0x8c, 0xd1, 0x7e, 0x06,
- 0x5b, 0x72, 0x96, 0x8c, 0x11, 0xb1, 0xfa, 0x18, 0x11, 0xca, 0xe6, 0x06, 0x9e, 0x17, 0x3c, 0x48,
- 0xcf, 0xd8, 0x32, 0x2b, 0xc5, 0x02, 0x8a, 0x5e, 0x80, 0xe1, 0x56, 0x48, 0xf6, 0xdc, 0x40, 0xf0,
- 0x8f, 0xda, 0xdb, 0x45, 0x4d, 0x94, 0x63, 0x85, 0x41, 0xe5, 0xae, 0xc8, 0xf5, 0x1b, 0x44, 0xa6,
- 0x79, 0x2e, 0xb1, 0x4c, 0x50, 0x3c, 0xf6, 0xb2, 0x56, 0x8e, 0x0d, 0x2c, 0x74, 0x1f, 0xca, 0xec,
- 0x3f, 0x3b, 0x51, 0x8e, 0x9f, 0xb9, 0x46, 0x24, 0x3c, 0x10, 0x04, 0x70, 0x42, 0x0b, 0x5d, 0x03,
- 0x88, 0x65, 0x7c, 0xde, 0x48, 0x84, 0x95, 0x51, 0xbc, 0xb6, 0x8a, 0xdc, 0x1b, 0x61, 0x0d, 0x0b,
- 0x3d, 0x0f, 0xe5, 0xd8, 0x71, 0xbd, 0xdb, 0xae, 0x4f, 0x22, 0xa6, 0x72, 0x2e, 0xca, 0x7c, 0x06,
- 0xa2, 0x10, 0x27, 0x70, 0xca, 0xeb, 0x30, 0x9f, 0x6b, 0x9e, 0xf7, 0x6a, 0x98, 0x61, 0x33, 0x5e,
- 0xe7, 0xb6, 0x2a, 0xc5, 0x1a, 0x86, 0x7d, 0x1d, 0xce, 0xd5, 0x82, 0x66, 0x2d, 0x08, 0xe3, 0xe5,
- 0x20, 0x7c, 0xe0, 0x84, 0x4d, 0x39, 0x7f, 0x15, 0x19, 0x5a, 0x9f, 0x9e, 0x3d, 0x03, 0x7c, 0x67,
- 0x1a, 0x41, 0xf3, 0x5f, 0x66, 0xdc, 0xce, 0x31, 0x7d, 0x2d, 0x1a, 0xec, 0xde, 0x55, 0x29, 0xee,
- 0x6e, 0x38, 0x31, 0x41, 0x77, 0x58, 0x5a, 0xac, 0xe4, 0x0a, 0x12, 0xd5, 0x9f, 0xd3, 0xd2, 0x62,
- 0x25, 0xc0, 0xcc, 0x3b, 0xcb, 0xac, 0x6f, 0xff, 0x9f, 0x02, 0x3b, 0x8d, 0x52, 0x19, 0xdf, 0xd0,
- 0x97, 0x60, 0x3c, 0x22, 0xb7, 0x5d, 0xbf, 0xfd, 0x50, 0x0a, 0xe1, 0x5d, 0xbc, 0x65, 0xea, 0x4b,
- 0x3a, 0x26, 0x57, 0xe5, 0x99, 0x65, 0x38, 0x45, 0x8d, 0xce, 0x53, 0xd8, 0xf6, 0xe7, 0xa3, 0xbb,
- 0x11, 0x09, 0x45, 0xc6, 0x31, 0x36, 0x4f, 0x58, 0x16, 0xe2, 0x04, 0x4e, 0xd7, 0x25, 0xfb, 0xb3,
- 0x16, 0xf8, 0x38, 0x08, 0x62, 0xb9, 0x92, 0x59, 0xce, 0x1a, 0xad, 0x1c, 0x1b, 0x58, 0x68, 0x19,
- 0x50, 0xd4, 0x6e, 0xb5, 0x3c, 0xf6, 0xde, 0xee, 0x78, 0x37, 0xc2, 0xa0, 0xdd, 0xe2, 0x6f, 0x9d,
- 0xc5, 0x85, 0xf3, 0xf4, 0x0a, 0xab, 0x77, 0x40, 0x71, 0x46, 0x0d, 0x7a, 0xfa, 0x6c, 0x46, 0xec,
- 0x37, 0x5b, 0xdd, 0x45, 0xa1, 0x5e, 0xaf, 0xb3, 0x22, 0x2c, 0x61, 0x74, 0x31, 0xb1, 0xe6, 0x39,
- 0xe6, 0x60, 0xb2, 0x98, 0xb0, 0x2a, 0xc5, 0x1a, 0x86, 0xfd, 0x3d, 0xec, 0x16, 0x63, 0x89, 0xa5,
- 0xe2, 0x76, 0x48, 0xd0, 0x2e, 0x8c, 0xb5, 0xd8, 0x5c, 0x89, 0xb0, 0xc7, 0x62, 0xc0, 0x5f, 0xe9,
- 0x53, 0x1c, 0x7d, 0x40, 0x4f, 0x08, 0xa5, 0x2e, 0x62, 0x7c, 0x7e, 0x4d, 0x27, 0x87, 0x4d, 0xea,
- 0xf6, 0x0f, 0x4e, 0xb1, 0xc3, 0xb2, 0xce, 0x65, 0xcc, 0x21, 0x61, 0xaa, 0x2b, 0x18, 0xea, 0x99,
- 0x7c, 0x65, 0x47, 0x72, 0xaf, 0x09, 0x73, 0x5f, 0x2c, 0xeb, 0xa2, 0xb7, 0xd8, 0xa3, 0x32, 0x3f,
- 0xa1, 0x7a, 0xe5, 0xf7, 0xe5, 0x58, 0xc6, 0xfb, 0xb1, 0xa8, 0x88, 0x35, 0x22, 0xe8, 0x36, 0x8c,
- 0x89, 0x3c, 0x44, 0x42, 0x9b, 0x55, 0x34, 0xb4, 0x15, 0x63, 0x58, 0x07, 0x1e, 0xa5, 0x0b, 0xb0,
- 0x59, 0x19, 0x6d, 0xc1, 0x45, 0x2d, 0x29, 0xdf, 0x8d, 0xd0, 0x61, 0x0f, 0x8d, 0x2e, 0x5b, 0xfd,
- 0xda, 0x81, 0xf7, 0xf4, 0xe1, 0x41, 0xe5, 0xe2, 0x7a, 0x37, 0x44, 0xdc, 0x9d, 0x0e, 0xba, 0x03,
- 0xe7, 0xb8, 0x47, 0x5c, 0x95, 0x38, 0x4d, 0xcf, 0xf5, 0xd5, 0x89, 0xca, 0x17, 0xd0, 0x85, 0xc3,
- 0x83, 0xca, 0xb9, 0xf9, 0x2c, 0x04, 0x9c, 0x5d, 0x0f, 0x7d, 0x16, 0xca, 0x4d, 0x3f, 0x12, 0x63,
- 0x30, 0x68, 0xe4, 0x9b, 0x2c, 0x57, 0xd7, 0xea, 0xea, 0xfb, 0x93, 0x3f, 0x38, 0xa9, 0x80, 0xb6,
- 0xb8, 0x46, 0x4b, 0x09, 0x90, 0x43, 0xf9, 0xb9, 0xc5, 0xc5, 0x92, 0x30, 0x7c, 0x62, 0xb8, 0x2a,
- 0x57, 0xd9, 0x94, 0x1a, 0xee, 0x32, 0x06, 0x61, 0xf4, 0x26, 0x20, 0xca, 0x61, 0xb9, 0x0d, 0x32,
- 0xdf, 0x60, 0xd1, 0xa7, 0x99, 0x02, 0x70, 0xd8, 0xf0, 0x41, 0x40, 0xf5, 0x0e, 0x0c, 0x9c, 0x51,
- 0x0b, 0xdd, 0xa4, 0x27, 0x90, 0x5e, 0x2a, 0x6c, 0x63, 0x25, 0x57, 0x3e, 0x5d, 0x25, 0xad, 0x90,
- 0x34, 0x9c, 0x98, 0x34, 0x4d, 0x8a, 0x38, 0x55, 0x8f, 0x5e, 0x82, 0x2a, 0x11, 0x0d, 0x98, 0x21,
- 0x26, 0x3a, 0x93, 0xd1, 0x50, 0x81, 0x76, 0x3b, 0x88, 0xe2, 0x35, 0x12, 0x3f, 0x08, 0xc2, 0x1d,
- 0x11, 0xd1, 0x2b, 0x09, 0x2e, 0x99, 0x80, 0xb0, 0x8e, 0x47, 0x19, 0x58, 0xf6, 0xaa, 0xbb, 0x52,
- 0x65, 0x4f, 0x6b, 0xc3, 0xc9, 0x3e, 0xb9, 0xc9, 0x8b, 0xb1, 0x84, 0x4b, 0xd4, 0x95, 0xda, 0x22,
- 0x7b, 0x26, 0x4b, 0xa1, 0xae, 0xd4, 0x16, 0xb1, 0x84, 0x23, 0xd2, 0x99, 0xcb, 0x73, 0x3c, 0x5f,
- 0x1d, 0xd9, 0x79, 0x8e, 0xf7, 0x99, 0xce, 0xd3, 0x87, 0x49, 0x95, 0x45, 0x94, 0x87, 0x3a, 0x8b,
- 0xa6, 0x27, 0xd8, 0x22, 0xe9, 0x3f, 0x4e, 0x9a, 0x52, 0xf0, 0xae, 0xa4, 0x28, 0xe1, 0x0e, 0xda,
- 0x46, 0xd0, 0x8f, 0xc9, 0x9e, 0x89, 0x84, 0xe6, 0xa0, 0x1c, 0xb5, 0x37, 0x9a, 0xc1, 0xae, 0xe3,
- 0xfa, 0xec, 0x55, 0x4b, 0xe3, 0x8e, 0xea, 0x12, 0x80, 0x13, 0x1c, 0xb4, 0x0c, 0xc3, 0x8e, 0xd4,
- 0xde, 0xa2, 0xfc, 0x28, 0x00, 0x4a, 0x67, 0xcb, 0x1d, 0x63, 0xa5, 0xbe, 0x56, 0xd5, 0x45, 0xaf,
- 0xc3, 0x98, 0xf0, 0x83, 0xe2, 0xb1, 0x11, 0xd8, 0xab, 0x93, 0x66, 0xe8, 0x5e, 0xd7, 0x81, 0xd8,
- 0xc4, 0x45, 0x5f, 0x84, 0x71, 0x4a, 0x25, 0x39, 0xd8, 0xa6, 0xcf, 0xf6, 0x73, 0x22, 0x6a, 0x09,
- 0x22, 0xf4, 0xca, 0x38, 0x45, 0x0c, 0x35, 0xe1, 0x29, 0xa7, 0x1d, 0x07, 0x4c, 0x03, 0x6e, 0xae,
- 0xff, 0xf5, 0x60, 0x87, 0xf8, 0xec, 0xf1, 0x69, 0x78, 0xe1, 0xf2, 0xe1, 0x41, 0xe5, 0xa9, 0xf9,
- 0x2e, 0x78, 0xb8, 0x2b, 0x15, 0x74, 0x17, 0x46, 0xe2, 0xc0, 0x63, 0x26, 0xe7, 0x94, 0x07, 0x38,
- 0x9f, 0x1f, 0x34, 0x67, 0x5d, 0xa1, 0xe9, 0xda, 0x1f, 0x55, 0x15, 0xeb, 0x74, 0xd0, 0x3a, 0xdf,
- 0x63, 0x2c, 0x9c, 0x28, 0x89, 0xa6, 0x9f, 0xc8, 0x1f, 0x18, 0x15, 0x75, 0xd4, 0xdc, 0x82, 0xa2,
- 0x26, 0xd6, 0xc9, 0xa0, 0x1b, 0x30, 0xd5, 0x0a, 0xdd, 0x80, 0x2d, 0x6c, 0xf5, 0xfa, 0x30, 0x6d,
- 0xe6, 0x04, 0xa8, 0xa5, 0x11, 0x70, 0x67, 0x1d, 0x2a, 0x1d, 0xca, 0xc2, 0xe9, 0x0b, 0x3c, 0xc1,
- 0x14, 0xe7, 0x98, 0x79, 0x19, 0x56, 0x50, 0xb4, 0xca, 0xce, 0x65, 0x2e, 0xc7, 0x4d, 0xcf, 0xe4,
- 0x47, 0x4f, 0xd0, 0xe5, 0x3d, 0xce, 0xe8, 0xa8, 0xbf, 0x38, 0xa1, 0x40, 0xef, 0x8d, 0x68, 0xdb,
- 0x09, 0x49, 0x2d, 0x0c, 0x1a, 0x84, 0x77, 0x86, 0x5b, 0xbb, 0x3f, 0xc9, 0xa3, 0x1e, 0xd2, 0x7b,
- 0xa3, 0x9e, 0x85, 0x80, 0xb3, 0xeb, 0xa1, 0xa6, 0x96, 0x57, 0x99, 0xf2, 0x8f, 0xd1, 0xf4, 0x53,
- 0x5d, 0xec, 0x83, 0x52, 0xcc, 0x66, 0xb2, 0x16, 0x8d, 0xe2, 0x08, 0xa7, 0x68, 0xce, 0x7c, 0x3b,
- 0x4c, 0x75, 0xdc, 0x17, 0xc7, 0x0a, 0xb8, 0xfd, 0x47, 0x03, 0x50, 0x56, 0x3a, 0x6c, 0x34, 0x67,
- 0x3e, 0x4d, 0x5c, 0x48, 0x3f, 0x4d, 0x0c, 0x53, 0x56, 0x5a, 0x7f, 0x8d, 0x58, 0x37, 0xac, 0xd9,
- 0x0a, 0xf9, 0xe9, 0xad, 0x74, 0x66, 0xb8, 0xa7, 0xeb, 0x9a, 0xa6, 0x92, 0x28, 0xf6, 0xfd, 0xc6,
- 0x51, 0xea, 0xaa, 0xe5, 0xe8, 0x33, 0xbb, 0x2c, 0x95, 0xda, 0x5b, 0x41, 0x73, 0xa5, 0x96, 0x4e,
- 0xb7, 0x58, 0xa3, 0x85, 0x98, 0xc3, 0x98, 0xdc, 0x45, 0x99, 0x1b, 0x26, 0x77, 0x0d, 0x3d, 0xa2,
- 0xdc, 0x25, 0x09, 0xe0, 0x84, 0x16, 0xf2, 0x60, 0xaa, 0x61, 0x66, 0xca, 0x54, 0xee, 0x6a, 0xcf,
- 0xf4, 0xcc, 0x59, 0xd9, 0xd6, 0xd2, 0x92, 0x2d, 0xa6, 0xa9, 0xe0, 0x4e, 0xc2, 0xe8, 0x75, 0x18,
- 0x7e, 0x2f, 0x88, 0xd8, 0xe6, 0x13, 0x37, 0xbc, 0x74, 0xeb, 0x19, 0x7e, 0xeb, 0x4e, 0x9d, 0x95,
- 0x1f, 0x1d, 0x54, 0x46, 0x6a, 0x41, 0x53, 0xfe, 0xc5, 0xaa, 0x02, 0x7a, 0x08, 0xe7, 0x8c, 0x73,
- 0x51, 0x75, 0x17, 0xfa, 0xef, 0xee, 0x45, 0xd1, 0xdc, 0xb9, 0x95, 0x2c, 0x4a, 0x38, 0xbb, 0x01,
- 0x7a, 0xd8, 0xf8, 0x81, 0xc8, 0x32, 0x2b, 0xb9, 0x08, 0xc6, 0x2c, 0x94, 0x75, 0xa7, 0xee, 0x14,
- 0x02, 0xee, 0xac, 0x63, 0x7f, 0x8d, 0xab, 0xfc, 0x85, 0x62, 0x90, 0x44, 0x6d, 0xef, 0x34, 0x92,
- 0x18, 0x2d, 0x19, 0x3a, 0xcb, 0x47, 0x7e, 0x56, 0xfa, 0x75, 0x8b, 0x3d, 0x2b, 0xad, 0x93, 0xdd,
- 0x96, 0x47, 0xc5, 0xd3, 0xc7, 0xdf, 0xf1, 0xb7, 0x60, 0x38, 0x16, 0xad, 0x75, 0xcb, 0xbb, 0xa4,
- 0x75, 0x8a, 0x3d, 0xad, 0x29, 0xfe, 0x42, 0x96, 0x62, 0x45, 0xc6, 0xfe, 0x27, 0x7c, 0x06, 0x24,
- 0xe4, 0x14, 0xf4, 0x47, 0x55, 0x53, 0x7f, 0x54, 0xe9, 0xf1, 0x05, 0x39, 0x7a, 0xa4, 0x7f, 0x6c,
- 0xf6, 0x9b, 0x89, 0x72, 0x1f, 0xf5, 0xf7, 0x4c, 0xfb, 0xc7, 0x2c, 0x38, 0x9b, 0x65, 0x00, 0x44,
- 0x79, 0x42, 0x2e, 0x48, 0xaa, 0xf7, 0x5d, 0x35, 0x82, 0xf7, 0x44, 0x39, 0x56, 0x18, 0x7d, 0xa7,
- 0x34, 0x38, 0x5e, 0xdc, 0xb3, 0x3b, 0x30, 0x56, 0x0b, 0x89, 0x76, 0x07, 0xbc, 0xc1, 0xfd, 0xc3,
- 0x78, 0x7f, 0x5e, 0x38, 0xb6, 0x6f, 0x98, 0xfd, 0x73, 0x05, 0x38, 0xcb, 0x1f, 0x68, 0xe6, 0xf7,
- 0x02, 0xb7, 0x59, 0x0b, 0x9a, 0x22, 0x1d, 0xc5, 0xdb, 0x30, 0xda, 0xd2, 0xa4, 0xff, 0x6e, 0x91,
- 0x97, 0x74, 0x2d, 0x41, 0x22, 0x85, 0xe9, 0xa5, 0xd8, 0xa0, 0x85, 0x9a, 0x30, 0x4a, 0xf6, 0xdc,
- 0x86, 0xd2, 0xf2, 0x17, 0x8e, 0x7d, 0x37, 0xa8, 0x56, 0x96, 0x34, 0x3a, 0xd8, 0xa0, 0xfa, 0x18,
- 0x32, 0x94, 0xd9, 0x3f, 0x6e, 0xc1, 0x13, 0x39, 0x71, 0x9a, 0x68, 0x73, 0x0f, 0xd8, 0x53, 0x98,
- 0x48, 0x76, 0xa4, 0x9a, 0xe3, 0x0f, 0x64, 0x58, 0x40, 0xd1, 0xe7, 0x01, 0xf8, 0x03, 0x17, 0x15,
- 0x4a, 0x7a, 0x05, 0xb4, 0x31, 0x62, 0x71, 0x68, 0x31, 0x14, 0x64, 0x7d, 0xac, 0xd1, 0xb2, 0x7f,
- 0xba, 0x08, 0x03, 0xec, 0x41, 0x05, 0x2d, 0xc3, 0xd0, 0x36, 0x8f, 0x4a, 0xdc, 0x4f, 0x00, 0xe4,
- 0x44, 0xba, 0xe3, 0x05, 0x58, 0x56, 0x46, 0xab, 0x70, 0x86, 0x47, 0x75, 0xf6, 0xaa, 0xc4, 0x73,
- 0xf6, 0xa5, 0x92, 0x80, 0x27, 0x08, 0x52, 0xf1, 0x20, 0x56, 0x3a, 0x51, 0x70, 0x56, 0x3d, 0xf4,
- 0x06, 0x8c, 0xc7, 0xee, 0x2e, 0x09, 0xda, 0xb1, 0xa4, 0xc4, 0xe3, 0x39, 0x2b, 0x36, 0x6e, 0xdd,
- 0x80, 0xe2, 0x14, 0x36, 0x15, 0x77, 0x5a, 0x1d, 0xea, 0x10, 0x2d, 0xe5, 0xbe, 0xa9, 0x02, 0x31,
- 0x71, 0x99, 0xe5, 0x4f, 0x9b, 0xd9, 0x39, 0xad, 0x6f, 0x87, 0x24, 0xda, 0x0e, 0xbc, 0xa6, 0xc8,
- 0x2f, 0x9d, 0x58, 0xfe, 0xa4, 0xe0, 0xb8, 0xa3, 0x06, 0xa5, 0xb2, 0xe9, 0xb8, 0x5e, 0x3b, 0x24,
- 0x09, 0x95, 0x41, 0x93, 0xca, 0x72, 0x0a, 0x8e, 0x3b, 0x6a, 0xd0, 0x75, 0x74, 0x4e, 0x24, 0x7c,
- 0x96, 0x5e, 0xea, 0xca, 0x9c, 0x6b, 0x48, 0xfa, 0xeb, 0x74, 0x09, 0xd3, 0x22, 0x0c, 0x5e, 0x54,
- 0xca, 0x68, 0x2d, 0x9d, 0xa8, 0xf0, 0xd4, 0x91, 0x54, 0x1e, 0x25, 0xed, 0xf0, 0xef, 0x58, 0x70,
- 0x26, 0xc3, 0x6c, 0x94, 0x1f, 0x55, 0x5b, 0x6e, 0x14, 0xab, 0x24, 0x28, 0xda, 0x51, 0xc5, 0xcb,
- 0xb1, 0xc2, 0xa0, 0xfb, 0x81, 0x1f, 0x86, 0xe9, 0x03, 0x50, 0x98, 0x65, 0x09, 0xe8, 0xf1, 0x0e,
- 0x40, 0x74, 0x19, 0x4a, 0xed, 0x88, 0xc8, 0x00, 0x4b, 0xea, 0xfc, 0x66, 0x0a, 0x59, 0x06, 0xa1,
- 0xac, 0xe9, 0x96, 0xd2, 0x85, 0x6a, 0xac, 0x29, 0x57, 0x70, 0x72, 0x98, 0xfd, 0xd5, 0x22, 0x5c,
- 0xc8, 0x35, 0x10, 0xa7, 0x5d, 0xda, 0x0d, 0x7c, 0x37, 0x0e, 0xd4, 0x63, 0x1d, 0x0f, 0xf1, 0x41,
- 0x5a, 0xdb, 0xab, 0xa2, 0x1c, 0x2b, 0x0c, 0x74, 0x45, 0xa6, 0x1e, 0x4f, 0xa7, 0x79, 0x59, 0xa8,
- 0x1a, 0xd9, 0xc7, 0xfb, 0x4d, 0xa1, 0xf5, 0x0c, 0x94, 0x5a, 0x41, 0xe0, 0xa5, 0x0f, 0x23, 0xda,
- 0xdd, 0x20, 0xf0, 0x30, 0x03, 0xa2, 0x4f, 0x88, 0x71, 0x48, 0xbd, 0x4e, 0x61, 0xa7, 0x19, 0x44,
- 0xda, 0x60, 0x3c, 0x07, 0x43, 0x3b, 0x64, 0x3f, 0x74, 0xfd, 0xad, 0xf4, 0xab, 0xe5, 0x2d, 0x5e,
- 0x8c, 0x25, 0xdc, 0xcc, 0x72, 0x30, 0x74, 0xd2, 0xb9, 0xaf, 0x86, 0x7b, 0x5e, 0x6d, 0x3f, 0x54,
- 0x84, 0x09, 0xbc, 0x50, 0xfd, 0xd6, 0x44, 0xdc, 0xed, 0x9c, 0x88, 0x93, 0xce, 0x7d, 0xd5, 0x7b,
- 0x36, 0x7e, 0xc9, 0x82, 0x09, 0x16, 0x09, 0x58, 0x04, 0x96, 0x70, 0x03, 0xff, 0x14, 0x58, 0xb7,
- 0x67, 0x60, 0x20, 0xa4, 0x8d, 0xa6, 0x13, 0xda, 0xb0, 0x9e, 0x60, 0x0e, 0x43, 0x4f, 0x41, 0x89,
- 0x75, 0x81, 0x4e, 0xde, 0x28, 0xcf, 0x05, 0x50, 0x75, 0x62, 0x07, 0xb3, 0x52, 0xe6, 0x2d, 0x8d,
- 0x49, 0xcb, 0x73, 0x79, 0xa7, 0x93, 0x07, 0x85, 0x8f, 0x86, 0xb7, 0x74, 0x66, 0xd7, 0x3e, 0x98,
- 0xb7, 0x74, 0x36, 0xc9, 0xee, 0x62, 0xd1, 0x7f, 0x2f, 0xc0, 0xa5, 0xcc, 0x7a, 0x7d, 0x7b, 0x4b,
- 0x77, 0xaf, 0x7d, 0x32, 0xc6, 0x27, 0xd9, 0x36, 0x21, 0xc5, 0x53, 0xb4, 0x09, 0x29, 0xf5, 0xcb,
- 0x39, 0x0e, 0xf4, 0xe1, 0xc4, 0x9c, 0x39, 0x64, 0x1f, 0x11, 0x27, 0xe6, 0xcc, 0xbe, 0xe5, 0x88,
- 0x75, 0x7f, 0x52, 0xc8, 0xf9, 0x16, 0x26, 0xe0, 0x5d, 0xa5, 0xe7, 0x0c, 0x03, 0x46, 0x82, 0x13,
- 0x1e, 0xe5, 0x67, 0x0c, 0x2f, 0xc3, 0x0a, 0x8a, 0x5c, 0xcd, 0x1d, 0xb8, 0x90, 0x9f, 0xee, 0x30,
- 0xb7, 0xa9, 0x59, 0xf3, 0xfd, 0x47, 0x0d, 0x41, 0x86, 0x6b, 0xf0, 0xaa, 0x26, 0x94, 0x17, 0xfb,
- 0x17, 0xca, 0x47, 0xb3, 0x05, 0x72, 0x34, 0x0f, 0x13, 0xbb, 0xae, 0xcf, 0xd2, 0xd7, 0x9b, 0xac,
- 0xa8, 0x8a, 0x8e, 0xb1, 0x6a, 0x82, 0x71, 0x1a, 0x7f, 0xe6, 0x75, 0x18, 0x7b, 0x74, 0x75, 0xe4,
- 0x37, 0x8b, 0xf0, 0x64, 0x97, 0x6d, 0xcf, 0xcf, 0x7a, 0x63, 0x0e, 0xb4, 0xb3, 0xbe, 0x63, 0x1e,
- 0x6a, 0x70, 0x76, 0xb3, 0xed, 0x79, 0xfb, 0xcc, 0xec, 0x92, 0x34, 0x25, 0x86, 0xe0, 0x15, 0x9f,
- 0x92, 0xd9, 0x17, 0x96, 0x33, 0x70, 0x70, 0x66, 0x4d, 0xf4, 0x26, 0xa0, 0x40, 0xe4, 0x5a, 0xbd,
- 0x41, 0x7c, 0xa1, 0x55, 0x67, 0x03, 0x5f, 0x4c, 0x36, 0xe3, 0x9d, 0x0e, 0x0c, 0x9c, 0x51, 0x8b,
- 0x32, 0xfd, 0xf4, 0x56, 0xda, 0x57, 0xdd, 0x4a, 0x31, 0xfd, 0x58, 0x07, 0x62, 0x13, 0x17, 0xdd,
- 0x80, 0x29, 0x67, 0xcf, 0x71, 0x79, 0xd4, 0x38, 0x49, 0x80, 0x73, 0xfd, 0x4a, 0x09, 0x36, 0x9f,
- 0x46, 0xc0, 0x9d, 0x75, 0x52, 0xfe, 0xc8, 0x83, 0xf9, 0xfe, 0xc8, 0xdd, 0xcf, 0xc5, 0x5e, 0x3a,
- 0x5d, 0xfb, 0x3f, 0x5a, 0xf4, 0xfa, 0xca, 0xc8, 0x97, 0x4e, 0xc7, 0x41, 0xe9, 0x26, 0x35, 0xd7,
- 0xe0, 0x73, 0x9a, 0x61, 0x45, 0x02, 0xc4, 0x26, 0x2e, 0x5f, 0x10, 0x51, 0xe2, 0x9b, 0x62, 0xb0,
- 0xee, 0xc2, 0xf7, 0x5f, 0x61, 0xa0, 0x2f, 0xc0, 0x50, 0xd3, 0xdd, 0x73, 0xa3, 0x20, 0x14, 0x9b,
- 0xe5, 0x98, 0x16, 0xfe, 0xc9, 0x39, 0x58, 0xe5, 0x64, 0xb0, 0xa4, 0x67, 0xff, 0x50, 0x01, 0xc6,
- 0x64, 0x8b, 0x6f, 0xb5, 0x83, 0xd8, 0x39, 0x85, 0x6b, 0xf9, 0x86, 0x71, 0x2d, 0x7f, 0xa2, 0x5b,
- 0x00, 0x04, 0xd6, 0xa5, 0xdc, 0xeb, 0xf8, 0x4e, 0xea, 0x3a, 0x7e, 0xb6, 0x37, 0xa9, 0xee, 0xd7,
- 0xf0, 0x3f, 0xb5, 0x60, 0xca, 0xc0, 0x3f, 0x85, 0xdb, 0x60, 0xd9, 0xbc, 0x0d, 0x9e, 0xee, 0xf9,
- 0x0d, 0x39, 0xb7, 0xc0, 0xf7, 0x15, 0x53, 0x7d, 0x67, 0xa7, 0xff, 0x7b, 0x50, 0xda, 0x76, 0xc2,
- 0x66, 0xb7, 0x40, 0xab, 0x1d, 0x95, 0x66, 0x6f, 0x3a, 0x61, 0x93, 0x9f, 0xe1, 0x2f, 0xa8, 0x0c,
- 0x8d, 0x4e, 0xd8, 0xec, 0xe9, 0x8a, 0xc5, 0x9a, 0x42, 0xd7, 0x61, 0x30, 0x6a, 0x04, 0x2d, 0x65,
- 0x28, 0x79, 0x99, 0x67, 0x6f, 0xa4, 0x25, 0x47, 0x07, 0x15, 0x64, 0x36, 0x47, 0x8b, 0xb1, 0xc0,
- 0x47, 0x6f, 0xc3, 0x18, 0xfb, 0xa5, 0xec, 0x0e, 0x8a, 0xf9, 0xe1, 0xfd, 0xeb, 0x3a, 0x22, 0x37,
- 0x5f, 0x31, 0x8a, 0xb0, 0x49, 0x6a, 0x66, 0x0b, 0xca, 0xea, 0xb3, 0x1e, 0xab, 0x0b, 0xcd, 0xbf,
- 0x2b, 0xc2, 0x99, 0x8c, 0x35, 0x87, 0x22, 0x63, 0x26, 0x5e, 0xea, 0x73, 0xa9, 0x7e, 0xc0, 0xb9,
- 0x88, 0x98, 0x34, 0xd4, 0x14, 0x6b, 0xab, 0xef, 0x46, 0xef, 0x46, 0x24, 0xdd, 0x28, 0x2d, 0xea,
- 0xdd, 0x28, 0x6d, 0xec, 0xd4, 0x86, 0x9a, 0x36, 0xa4, 0x7a, 0xfa, 0x58, 0xe7, 0xf4, 0x0f, 0x8b,
- 0x70, 0x36, 0x2b, 0x26, 0x0b, 0xfa, 0xee, 0x54, 0x1a, 0x97, 0x57, 0xfa, 0x8d, 0xe6, 0xc2, 0x73,
- 0xbb, 0x88, 0xa4, 0xc4, 0xb3, 0x66, 0x62, 0x97, 0x9e, 0xc3, 0x2c, 0xda, 0x64, 0x7e, 0x97, 0x21,
- 0x4f, 0xbf, 0x23, 0x8f, 0x8f, 0x4f, 0xf7, 0xdd, 0x01, 0x91, 0xb7, 0x27, 0x4a, 0xf9, 0x5d, 0xca,
- 0xe2, 0xde, 0x7e, 0x97, 0xb2, 0xe5, 0x19, 0x17, 0x46, 0xb4, 0xaf, 0x79, 0xac, 0x33, 0xbe, 0x43,
- 0x6f, 0x2b, 0xad, 0xdf, 0x8f, 0x75, 0xd6, 0x7f, 0xdc, 0x82, 0x94, 0x55, 0xa2, 0x52, 0x77, 0x59,
- 0xb9, 0xea, 0xae, 0xcb, 0x50, 0x0a, 0x03, 0x8f, 0xa4, 0x33, 0xab, 0xe0, 0xc0, 0x23, 0x98, 0x41,
- 0x28, 0x46, 0x9c, 0x28, 0x3b, 0x46, 0x75, 0x41, 0x4e, 0x88, 0x68, 0xcf, 0xc0, 0x80, 0x47, 0xf6,
- 0x88, 0x97, 0x0e, 0x5b, 0x7e, 0x9b, 0x16, 0x62, 0x0e, 0xb3, 0x7f, 0xa9, 0x04, 0x17, 0xbb, 0x7a,
- 0x2e, 0x53, 0x71, 0x68, 0xcb, 0x89, 0xc9, 0x03, 0x67, 0x3f, 0x1d, 0x5f, 0xf8, 0x06, 0x2f, 0xc6,
- 0x12, 0xce, 0x0c, 0xb5, 0x79, 0x3c, 0xc1, 0x94, 0x72, 0x50, 0x84, 0x11, 0x14, 0xd0, 0xc7, 0x90,
- 0x90, 0xfd, 0x1a, 0x40, 0x14, 0x79, 0x4b, 0x3e, 0xe5, 0xee, 0x9a, 0xc2, 0x02, 0x3c, 0x89, 0x3b,
- 0x59, 0xbf, 0x2d, 0x20, 0x58, 0xc3, 0x42, 0x55, 0x98, 0x6c, 0x85, 0x41, 0xcc, 0x75, 0xad, 0x55,
- 0x6e, 0xe6, 0x33, 0x60, 0x3a, 0x8d, 0xd6, 0x52, 0x70, 0xdc, 0x51, 0x03, 0xbd, 0x0a, 0x23, 0xc2,
- 0x91, 0xb4, 0x16, 0x04, 0x9e, 0x50, 0x03, 0x29, 0xa3, 0x91, 0x7a, 0x02, 0xc2, 0x3a, 0x9e, 0x56,
- 0x8d, 0x29, 0x70, 0x87, 0x32, 0xab, 0x71, 0x25, 0xae, 0x86, 0x97, 0x8a, 0xcf, 0x34, 0xdc, 0x57,
- 0x7c, 0xa6, 0x44, 0x31, 0x56, 0xee, 0xfb, 0xcd, 0x0a, 0x7a, 0xaa, 0x92, 0x7e, 0xbe, 0x04, 0x67,
- 0xc4, 0xc2, 0x79, 0xdc, 0xcb, 0xe5, 0x31, 0xa5, 0x8d, 0xff, 0xd6, 0x9a, 0x39, 0xed, 0x35, 0xf3,
- 0xc3, 0x16, 0x98, 0xec, 0x15, 0xfa, 0x73, 0xb9, 0x01, 0xda, 0x5f, 0xcd, 0x65, 0xd7, 0x9a, 0xf2,
- 0x02, 0xf9, 0x80, 0xa1, 0xda, 0xed, 0xff, 0x60, 0xc1, 0xd3, 0x3d, 0x29, 0xa2, 0x25, 0x28, 0x33,
- 0x1e, 0x50, 0x93, 0xce, 0x9e, 0x55, 0x66, 0x80, 0x12, 0x90, 0xc3, 0x92, 0x26, 0x35, 0xd1, 0x52,
- 0x47, 0x24, 0xfc, 0xe7, 0x32, 0x22, 0xe1, 0x9f, 0x33, 0x86, 0xe7, 0x11, 0x43, 0xe1, 0x7f, 0xad,
- 0x08, 0x83, 0x7c, 0xc5, 0x9f, 0x82, 0x18, 0xb6, 0x2c, 0xf4, 0xb6, 0x5d, 0x02, 0x40, 0xf1, 0xbe,
- 0xcc, 0x56, 0x9d, 0xd8, 0xe1, 0x6c, 0x82, 0xba, 0xad, 0x12, 0x0d, 0x2f, 0x9a, 0x35, 0xee, 0xb3,
- 0x99, 0x94, 0x62, 0x12, 0x38, 0x0d, 0xed, 0x76, 0xfb, 0x12, 0x40, 0xc4, 0x32, 0xc4, 0x53, 0x1a,
- 0x22, 0x94, 0xd8, 0x27, 0xbb, 0xb4, 0x5e, 0x57, 0xc8, 0xbc, 0x0f, 0xc9, 0x4e, 0x57, 0x00, 0xac,
- 0x51, 0x9c, 0x79, 0x0d, 0xca, 0x0a, 0xb9, 0x97, 0x16, 0x67, 0x54, 0x67, 0x2e, 0x3e, 0x07, 0x13,
- 0xa9, 0xb6, 0x8e, 0xa5, 0x04, 0xfa, 0x65, 0x0b, 0x26, 0x78, 0x97, 0x97, 0xfc, 0x3d, 0x71, 0xa6,
- 0xbe, 0x0f, 0x67, 0xbd, 0x8c, 0xb3, 0x4d, 0xcc, 0x68, 0xff, 0x67, 0xa1, 0x52, 0xfa, 0x64, 0x41,
- 0x71, 0x66, 0x1b, 0xe8, 0x2a, 0x5d, 0xb7, 0xf4, 0xec, 0x72, 0x3c, 0xe1, 0xf4, 0x33, 0xca, 0xd7,
- 0x2c, 0x2f, 0xc3, 0x0a, 0x6a, 0xff, 0x96, 0x05, 0x53, 0xbc, 0xe7, 0xb7, 0xc8, 0xbe, 0xda, 0xe1,
- 0x1f, 0x66, 0xdf, 0x45, 0x72, 0x8a, 0x42, 0x4e, 0x72, 0x0a, 0xfd, 0xd3, 0x8a, 0x5d, 0x3f, 0xed,
- 0xe7, 0x2c, 0x10, 0x2b, 0xf0, 0x14, 0x44, 0xf9, 0x6f, 0x37, 0x45, 0xf9, 0x99, 0xfc, 0x45, 0x9d,
- 0x23, 0xc3, 0xff, 0xb1, 0x05, 0x93, 0x1c, 0x21, 0x79, 0x4b, 0xfe, 0x50, 0xe7, 0xa1, 0x9f, 0x2c,
- 0x73, 0x2a, 0xad, 0x74, 0xf6, 0x47, 0x19, 0x93, 0x55, 0xea, 0x3a, 0x59, 0x4d, 0xb9, 0x81, 0x8e,
- 0x91, 0x3d, 0xf1, 0xd8, 0x41, 0x9e, 0xed, 0x3f, 0xb0, 0x00, 0xf1, 0x66, 0x0c, 0xf6, 0x87, 0x32,
- 0x15, 0xac, 0x54, 0xbb, 0x2e, 0x92, 0xa3, 0x46, 0x41, 0xb0, 0x86, 0x75, 0x22, 0xc3, 0x93, 0x32,
- 0x08, 0x28, 0xf6, 0x36, 0x08, 0x38, 0xc6, 0x88, 0x7e, 0xad, 0x04, 0x69, 0x63, 0x7e, 0x74, 0x0f,
- 0x46, 0x1b, 0x4e, 0xcb, 0xd9, 0x70, 0x3d, 0x37, 0x76, 0x49, 0xd4, 0xcd, 0x92, 0x68, 0x51, 0xc3,
- 0x13, 0x4f, 0xbd, 0x5a, 0x09, 0x36, 0xe8, 0xa0, 0x59, 0x80, 0x56, 0xe8, 0xee, 0xb9, 0x1e, 0xd9,
- 0x62, 0x1a, 0x07, 0xe6, 0x66, 0xc8, 0xcd, 0x63, 0x64, 0x29, 0xd6, 0x30, 0x32, 0x3c, 0xc6, 0x8a,
- 0x8f, 0xcf, 0x63, 0xac, 0x74, 0x4c, 0x8f, 0xb1, 0x81, 0xbe, 0x3c, 0xc6, 0x30, 0x9c, 0x97, 0x2c,
- 0x12, 0xfd, 0xbf, 0xec, 0x7a, 0x44, 0xf0, 0xc5, 0xdc, 0xf9, 0x70, 0xe6, 0xf0, 0xa0, 0x72, 0x1e,
- 0x67, 0x62, 0xe0, 0x9c, 0x9a, 0xe8, 0xf3, 0x30, 0xed, 0x78, 0x5e, 0xf0, 0x40, 0x8d, 0xda, 0x52,
- 0xd4, 0x70, 0x3c, 0xae, 0xb1, 0x1f, 0x62, 0x54, 0x9f, 0x3a, 0x3c, 0xa8, 0x4c, 0xcf, 0xe7, 0xe0,
- 0xe0, 0xdc, 0xda, 0x29, 0x87, 0xb3, 0xe1, 0x9e, 0x0e, 0x67, 0x3b, 0x70, 0xa6, 0x4e, 0x42, 0x97,
- 0xe5, 0x76, 0x6c, 0x26, 0x5b, 0x72, 0x1d, 0xca, 0x61, 0xea, 0x10, 0xea, 0x2b, 0x22, 0x91, 0x16,
- 0xbf, 0x56, 0x1e, 0x3a, 0x09, 0x21, 0xfb, 0x8f, 0x2c, 0x18, 0x12, 0x0e, 0x05, 0xa7, 0xc0, 0xfb,
- 0xcc, 0x1b, 0x2a, 0xe8, 0x4a, 0xf6, 0x41, 0xcd, 0x3a, 0x93, 0xab, 0x7c, 0x5e, 0x49, 0x29, 0x9f,
- 0x9f, 0xee, 0x46, 0xa4, 0xbb, 0xda, 0xf9, 0x6f, 0x14, 0x61, 0xdc, 0x74, 0xa6, 0x38, 0x85, 0x21,
- 0x58, 0x83, 0xa1, 0x48, 0x78, 0xee, 0x14, 0xf2, 0x6d, 0x9f, 0xd3, 0x93, 0x98, 0x18, 0x36, 0x09,
- 0x5f, 0x1d, 0x49, 0x24, 0xd3, 0x25, 0xa8, 0xf8, 0x18, 0x5d, 0x82, 0x7a, 0xf9, 0xb3, 0x94, 0x4e,
- 0xc2, 0x9f, 0xc5, 0xfe, 0x3a, 0xbb, 0x2c, 0xf4, 0xf2, 0x53, 0xe0, 0x23, 0x6e, 0x98, 0xd7, 0x8a,
- 0xdd, 0x65, 0x65, 0x89, 0x4e, 0xe5, 0xf0, 0x13, 0xbf, 0x68, 0xc1, 0xc5, 0x8c, 0xaf, 0xd2, 0x98,
- 0x8b, 0x17, 0x60, 0xd8, 0x69, 0x37, 0x5d, 0xb5, 0x97, 0xb5, 0x87, 0xa8, 0x79, 0x51, 0x8e, 0x15,
- 0x06, 0x5a, 0x84, 0x29, 0xf2, 0xb0, 0xe5, 0xf2, 0x97, 0x40, 0xdd, 0xfa, 0xb0, 0xc8, 0x63, 0xb3,
- 0x2e, 0xa5, 0x81, 0xb8, 0x13, 0x5f, 0xf9, 0x31, 0x17, 0x73, 0xfd, 0x98, 0xff, 0x81, 0x05, 0x23,
- 0xa2, 0xdb, 0xa7, 0x30, 0xda, 0xdf, 0x61, 0x8e, 0xf6, 0x93, 0x5d, 0x46, 0x3b, 0x67, 0x98, 0xff,
- 0x56, 0x41, 0xf5, 0xb7, 0x16, 0x84, 0x71, 0x1f, 0x4c, 0xcb, 0x75, 0x18, 0x6e, 0x85, 0x41, 0x1c,
- 0x34, 0x02, 0x4f, 0xf0, 0x2c, 0x4f, 0x25, 0x6e, 0xf6, 0xbc, 0xfc, 0x48, 0xfb, 0x8d, 0x15, 0x36,
- 0x1b, 0xbd, 0x20, 0x8c, 0x05, 0x9f, 0x90, 0x8c, 0x5e, 0x10, 0xc6, 0x98, 0x41, 0x50, 0x13, 0x20,
- 0x76, 0xc2, 0x2d, 0x12, 0xd3, 0x32, 0x11, 0xb1, 0x23, 0xff, 0xf0, 0x68, 0xc7, 0xae, 0x37, 0xeb,
- 0xfa, 0x71, 0x14, 0x87, 0xb3, 0x2b, 0x7e, 0x7c, 0x27, 0xe4, 0x22, 0x90, 0xe6, 0x37, 0xaf, 0x68,
- 0x61, 0x8d, 0xae, 0xf4, 0x91, 0x64, 0x6d, 0x0c, 0x98, 0x4f, 0xda, 0x6b, 0xa2, 0x1c, 0x2b, 0x0c,
- 0xfb, 0x35, 0x76, 0x95, 0xb0, 0x01, 0x3a, 0x9e, 0x4b, 0xfb, 0x37, 0x86, 0xd5, 0xd0, 0xb2, 0xf7,
- 0xac, 0xaa, 0xee, 0x38, 0xdf, 0xfd, 0xe4, 0xa6, 0x0d, 0xeb, 0x9e, 0x30, 0x89, 0x77, 0x3d, 0xfa,
- 0xce, 0x0e, 0x4b, 0x87, 0x17, 0x7b, 0x5c, 0x01, 0xc7, 0xb0, 0x6d, 0x60, 0xf1, 0xa2, 0x59, 0x5c,
- 0xdd, 0x95, 0x9a, 0x58, 0xe4, 0x5a, 0xbc, 0x68, 0x01, 0xc0, 0x09, 0x0e, 0x9a, 0x13, 0x02, 0x74,
- 0xc9, 0x48, 0xeb, 0x26, 0x05, 0x68, 0xf9, 0xf9, 0x9a, 0x04, 0xfd, 0x12, 0x8c, 0xa8, 0xf4, 0x6e,
- 0x35, 0x9e, 0x25, 0x4b, 0xc4, 0x2f, 0x59, 0x4a, 0x8a, 0xb1, 0x8e, 0x83, 0xd6, 0x61, 0x22, 0xe2,
- 0xda, 0x13, 0x15, 0xa6, 0x8e, 0x6b, 0xa1, 0x3e, 0x29, 0x2d, 0x24, 0xea, 0x26, 0xf8, 0x88, 0x15,
- 0xf1, 0xa3, 0x43, 0x3a, 0x3a, 0xa6, 0x49, 0xa0, 0x37, 0x60, 0xdc, 0xd3, 0x93, 0xa4, 0xd7, 0x84,
- 0x92, 0x4a, 0x19, 0x10, 0x1b, 0x29, 0xd4, 0x6b, 0x38, 0x85, 0x4d, 0x79, 0x1d, 0xbd, 0x44, 0x84,
- 0x56, 0x74, 0xfc, 0x2d, 0x12, 0x89, 0xe4, 0x54, 0x8c, 0xd7, 0xb9, 0x9d, 0x83, 0x83, 0x73, 0x6b,
- 0xa3, 0xeb, 0x30, 0x2a, 0x3f, 0x5f, 0x73, 0xe3, 0x4d, 0xcc, 0xd4, 0x35, 0x18, 0x36, 0x30, 0xd1,
- 0x03, 0x38, 0x27, 0xff, 0xaf, 0x87, 0xce, 0xe6, 0xa6, 0xdb, 0x10, 0x5e, 0xd4, 0xdc, 0x57, 0x67,
- 0x5e, 0x3a, 0xff, 0x2c, 0x65, 0x21, 0x1d, 0x1d, 0x54, 0x2e, 0x8b, 0x51, 0xcb, 0x84, 0xb3, 0x49,
- 0xcc, 0xa6, 0x8f, 0x56, 0xe1, 0xcc, 0x36, 0x71, 0xbc, 0x78, 0x7b, 0x71, 0x9b, 0x34, 0x76, 0xe4,
- 0x26, 0x62, 0xce, 0xc1, 0x9a, 0x71, 0xf7, 0xcd, 0x4e, 0x14, 0x9c, 0x55, 0x0f, 0xbd, 0x03, 0xd3,
- 0xad, 0xf6, 0x86, 0xe7, 0x46, 0xdb, 0x6b, 0x41, 0xcc, 0x8c, 0x32, 0x54, 0x76, 0x34, 0xe1, 0x45,
- 0xac, 0x1c, 0xa3, 0x6b, 0x39, 0x78, 0x38, 0x97, 0x02, 0x7a, 0x1f, 0xce, 0xa5, 0x16, 0x83, 0xf0,
- 0x69, 0x1c, 0xcf, 0x0f, 0x54, 0x5b, 0xcf, 0xaa, 0x20, 0x7c, 0x14, 0xb3, 0x40, 0x38, 0xbb, 0x89,
- 0x0f, 0x66, 0xaa, 0xf3, 0x1e, 0xad, 0xac, 0x31, 0x65, 0xe8, 0xcb, 0x30, 0xaa, 0xaf, 0x22, 0x71,
- 0xc1, 0x5c, 0xc9, 0xe6, 0x59, 0xb4, 0xd5, 0xc6, 0x59, 0x3a, 0xb5, 0xa2, 0x74, 0x18, 0x36, 0x28,
- 0xda, 0x04, 0xb2, 0xbf, 0x0f, 0xdd, 0x86, 0xe1, 0x86, 0xe7, 0x12, 0x3f, 0x5e, 0xa9, 0x75, 0x8b,
- 0x96, 0xb1, 0x28, 0x70, 0xc4, 0x80, 0x89, 0xc8, 0x9e, 0xbc, 0x0c, 0x2b, 0x0a, 0xf6, 0xaf, 0x15,
- 0xa0, 0xd2, 0x23, 0x4c, 0x6c, 0x4a, 0xa3, 0x6c, 0xf5, 0xa5, 0x51, 0x9e, 0x97, 0xb9, 0xde, 0xd6,
- 0x52, 0x62, 0x76, 0x2a, 0x8f, 0x5b, 0x22, 0x6c, 0xa7, 0xf1, 0xfb, 0xb6, 0xf0, 0xd5, 0x95, 0xd2,
- 0xa5, 0x9e, 0xb6, 0xe7, 0xc6, 0x63, 0xd4, 0x40, 0xff, 0x82, 0x48, 0xee, 0xc3, 0x82, 0xfd, 0xf5,
- 0x02, 0x9c, 0x53, 0x43, 0xf8, 0x67, 0x77, 0xe0, 0xee, 0x76, 0x0e, 0xdc, 0x09, 0x3c, 0xcb, 0xd8,
- 0x77, 0x60, 0xb0, 0xbe, 0x1f, 0x35, 0x62, 0xaf, 0x0f, 0x06, 0xe8, 0x19, 0x33, 0x34, 0x95, 0xba,
- 0xa6, 0x8d, 0xf0, 0x54, 0x7f, 0xc9, 0x82, 0x89, 0xf5, 0xc5, 0x5a, 0x3d, 0x68, 0xec, 0x90, 0x78,
- 0x9e, 0x33, 0xac, 0x58, 0xf0, 0x3f, 0xd6, 0x23, 0xf2, 0x35, 0x59, 0x1c, 0xd3, 0x65, 0x28, 0x6d,
- 0x07, 0x51, 0x9c, 0x7e, 0xb3, 0xbd, 0x19, 0x44, 0x31, 0x66, 0x10, 0xfb, 0xb7, 0x2d, 0x18, 0x60,
- 0x19, 0x4a, 0x7b, 0xa5, 0xcd, 0xed, 0xe7, 0xbb, 0xd0, 0xab, 0x30, 0x48, 0x36, 0x37, 0x49, 0x23,
- 0x16, 0xb3, 0x2a, 0x1d, 0x4a, 0x07, 0x97, 0x58, 0x29, 0xbd, 0xf4, 0x59, 0x63, 0xfc, 0x2f, 0x16,
- 0xc8, 0xe8, 0x3e, 0x94, 0x63, 0x77, 0x97, 0xcc, 0x37, 0x9b, 0xe2, 0xd5, 0xeb, 0x11, 0xfc, 0x77,
- 0xd7, 0x25, 0x01, 0x9c, 0xd0, 0xb2, 0xbf, 0x5a, 0x00, 0x48, 0x5c, 0xef, 0x7b, 0x7d, 0xe2, 0x42,
- 0xc7, 0x7b, 0xc8, 0x95, 0x8c, 0xf7, 0x10, 0x94, 0x10, 0xcc, 0x78, 0x0c, 0x51, 0xc3, 0x54, 0xec,
- 0x6b, 0x98, 0x4a, 0xc7, 0x19, 0xa6, 0x45, 0x98, 0x4a, 0x42, 0x07, 0x98, 0x71, 0x54, 0x98, 0x90,
- 0xb2, 0x9e, 0x06, 0xe2, 0x4e, 0x7c, 0xfb, 0xfb, 0x2d, 0x10, 0x8e, 0x31, 0x7d, 0x2c, 0xe6, 0xb7,
- 0x65, 0x5e, 0x4d, 0x23, 0xda, 0xf4, 0xe5, 0x7c, 0x4f, 0x21, 0x11, 0x63, 0x5a, 0x5d, 0x1e, 0x46,
- 0x64, 0x69, 0x83, 0x96, 0xdd, 0x04, 0x01, 0xad, 0x12, 0xa6, 0x1b, 0xe9, 0xdd, 0x9b, 0x6b, 0x00,
- 0x4d, 0x86, 0xab, 0x65, 0xd7, 0x53, 0x47, 0x55, 0x55, 0x41, 0xb0, 0x86, 0x65, 0xff, 0x48, 0x01,
- 0x46, 0x64, 0x74, 0xe3, 0xb6, 0xdf, 0x8f, 0x04, 0x73, 0xac, 0x24, 0x27, 0x2c, 0x1d, 0x25, 0x25,
- 0x5c, 0x4b, 0x04, 0xbf, 0x24, 0x1d, 0xa5, 0x04, 0xe0, 0x04, 0x07, 0x3d, 0x07, 0x43, 0x51, 0x7b,
- 0x83, 0xa1, 0xa7, 0xdc, 0x3d, 0xea, 0xbc, 0x18, 0x4b, 0x38, 0xfa, 0x3c, 0x4c, 0xf2, 0x7a, 0x61,
- 0xd0, 0x72, 0xb6, 0xb8, 0xa2, 0x6c, 0x40, 0xf9, 0x5f, 0x4e, 0xae, 0xa6, 0x60, 0x47, 0x07, 0x95,
- 0xb3, 0xe9, 0x32, 0xa6, 0x62, 0xed, 0xa0, 0x62, 0x7f, 0x19, 0x50, 0x67, 0xc0, 0x66, 0xf4, 0x26,
- 0x37, 0xba, 0x71, 0x43, 0x95, 0x4d, 0xff, 0x72, 0x2f, 0x77, 0x41, 0x69, 0x72, 0xcd, 0x6b, 0x61,
- 0x55, 0xdf, 0xfe, 0x2b, 0x45, 0x98, 0x4c, 0x3b, 0x8f, 0xa1, 0x9b, 0x30, 0xc8, 0x0f, 0xd5, 0x6e,
- 0xc9, 0xfa, 0xd3, 0xcf, 0x04, 0xfc, 0x3d, 0x51, 0x9c, 0xcb, 0xa2, 0x3e, 0x7a, 0x07, 0x46, 0x9a,
- 0xc1, 0x03, 0xff, 0x81, 0x13, 0x36, 0xe7, 0x6b, 0x2b, 0x62, 0x5d, 0x66, 0xf2, 0x66, 0xd5, 0x04,
- 0x4d, 0x77, 0x63, 0x63, 0x6a, 0xe8, 0x04, 0x84, 0x75, 0x72, 0x68, 0x9d, 0x05, 0xa1, 0xdb, 0x74,
- 0xb7, 0x56, 0x9d, 0x56, 0x37, 0x0b, 0xcc, 0x45, 0x89, 0xa4, 0x51, 0x1e, 0x13, 0x91, 0xea, 0x38,
- 0x00, 0x27, 0x84, 0xd0, 0x77, 0xc3, 0x99, 0x28, 0x47, 0x9d, 0x93, 0x17, 0xbf, 0xbf, 0x9b, 0x86,
- 0x63, 0xe1, 0x09, 0xca, 0x35, 0x67, 0x29, 0x7e, 0xb2, 0x9a, 0xb1, 0xbf, 0x72, 0x06, 0x8c, 0xdd,
- 0x68, 0x24, 0x71, 0xb1, 0x4e, 0x28, 0x89, 0x0b, 0x86, 0x61, 0xb2, 0xdb, 0x8a, 0xf7, 0xab, 0x6e,
- 0xd8, 0x2d, 0x0b, 0xd8, 0x92, 0xc0, 0xe9, 0xa4, 0x29, 0x21, 0x58, 0xd1, 0xc9, 0xce, 0xb4, 0x53,
- 0xfc, 0x10, 0x33, 0xed, 0x94, 0x4e, 0x31, 0xd3, 0xce, 0x1a, 0x0c, 0x6d, 0xb9, 0x31, 0x26, 0xad,
- 0x40, 0xb0, 0x33, 0x99, 0xeb, 0xf0, 0x06, 0x47, 0xe9, 0xcc, 0xee, 0x20, 0x00, 0x58, 0x12, 0x41,
- 0x6f, 0xaa, 0x1d, 0x38, 0x98, 0x2f, 0x0d, 0x74, 0xbe, 0x21, 0x65, 0xee, 0x41, 0x91, 0x59, 0x67,
- 0xe8, 0x51, 0x33, 0xeb, 0x2c, 0xcb, 0x7c, 0x38, 0xc3, 0xf9, 0xe6, 0xd2, 0x2c, 0xdd, 0x4d, 0x8f,
- 0x2c, 0x38, 0x46, 0xe6, 0xa0, 0xf2, 0xc9, 0x65, 0x0e, 0xfa, 0x7e, 0x0b, 0xce, 0xb5, 0xb2, 0x92,
- 0x68, 0x89, 0x2c, 0x36, 0xaf, 0xf6, 0x9d, 0x25, 0xcc, 0x68, 0x90, 0x89, 0x85, 0x99, 0x68, 0x38,
- 0xbb, 0x39, 0x3a, 0xd0, 0xe1, 0x46, 0x53, 0xa4, 0xbe, 0x79, 0x26, 0x27, 0x05, 0x51, 0x97, 0xc4,
- 0x43, 0xeb, 0x19, 0xe9, 0x6e, 0x3e, 0x9e, 0x97, 0xee, 0xa6, 0xef, 0x24, 0x37, 0x6f, 0xaa, 0xe4,
- 0x43, 0x63, 0xf9, 0x4b, 0x89, 0xa7, 0x16, 0xea, 0x99, 0x72, 0xe8, 0x4d, 0x95, 0x72, 0xa8, 0x4b,
- 0x4c, 0x2f, 0x9e, 0x50, 0xa8, 0x67, 0xa2, 0x21, 0x2d, 0x59, 0xd0, 0xc4, 0xc9, 0x24, 0x0b, 0x32,
- 0xae, 0x1a, 0x9e, 0xaf, 0xe6, 0xf9, 0x1e, 0x57, 0x8d, 0x41, 0xb7, 0xfb, 0x65, 0xc3, 0x13, 0x23,
- 0x4d, 0x3d, 0x52, 0x62, 0xa4, 0x7b, 0x7a, 0xa2, 0x21, 0xd4, 0x23, 0x93, 0x0e, 0x45, 0xea, 0x33,
- 0xbd, 0xd0, 0x3d, 0xfd, 0x02, 0x3c, 0x93, 0x4f, 0x57, 0xdd, 0x73, 0x9d, 0x74, 0x33, 0xaf, 0xc0,
- 0x8e, 0xb4, 0x45, 0x67, 0x4f, 0x27, 0x6d, 0xd1, 0xb9, 0x13, 0x4f, 0x5b, 0x74, 0xfe, 0x14, 0xd2,
- 0x16, 0x3d, 0xf1, 0xa1, 0xa6, 0x2d, 0x9a, 0x7e, 0x0c, 0x69, 0x8b, 0xd6, 0x92, 0xb4, 0x45, 0x17,
- 0xf2, 0xa7, 0x24, 0xc3, 0x86, 0x33, 0x27, 0x59, 0xd1, 0x3d, 0x28, 0xb7, 0x64, 0x74, 0x03, 0x11,
- 0x74, 0x2c, 0x3b, 0x73, 0x6a, 0x56, 0x08, 0x04, 0x3e, 0x25, 0x0a, 0x84, 0x13, 0x52, 0x94, 0x6e,
- 0x92, 0xbc, 0xe8, 0xc9, 0x2e, 0x8a, 0xbf, 0x2c, 0x95, 0x4a, 0x7e, 0xca, 0x22, 0xfb, 0x2f, 0x17,
- 0xe0, 0x52, 0xf7, 0x75, 0x9d, 0xe8, 0x63, 0x6a, 0xc9, 0xfb, 0x41, 0x4a, 0x1f, 0xc3, 0x85, 0x9c,
- 0x04, 0xab, 0xef, 0x10, 0x30, 0x37, 0x60, 0x4a, 0x19, 0x6f, 0x7a, 0x6e, 0x63, 0x5f, 0xcb, 0xa8,
- 0xaa, 0x9c, 0xd4, 0xea, 0x69, 0x04, 0xdc, 0x59, 0x07, 0xcd, 0xc3, 0x84, 0x51, 0xb8, 0x52, 0x15,
- 0xc2, 0x8c, 0x52, 0x00, 0xd5, 0x4d, 0x30, 0x4e, 0xe3, 0xdb, 0x3f, 0x6b, 0xc1, 0x13, 0x39, 0x11,
- 0xfd, 0xfb, 0x8e, 0x70, 0xb2, 0x09, 0x13, 0x2d, 0xb3, 0x6a, 0x8f, 0x40, 0x48, 0x46, 0xde, 0x00,
- 0xd5, 0xd7, 0x14, 0x00, 0xa7, 0x89, 0x2e, 0x5c, 0xfd, 0x8d, 0xdf, 0xbd, 0xf4, 0xb1, 0xdf, 0xfc,
- 0xdd, 0x4b, 0x1f, 0xfb, 0xad, 0xdf, 0xbd, 0xf4, 0xb1, 0x3f, 0x7f, 0x78, 0xc9, 0xfa, 0x8d, 0xc3,
- 0x4b, 0xd6, 0x6f, 0x1e, 0x5e, 0xb2, 0x7e, 0xeb, 0xf0, 0x92, 0xf5, 0x3b, 0x87, 0x97, 0xac, 0xaf,
- 0xfe, 0xde, 0xa5, 0x8f, 0xbd, 0x5d, 0xd8, 0x7b, 0xe9, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x7a,
- 0x9b, 0xf5, 0x19, 0x7a, 0xe4, 0x00, 0x00,
+ // 12675 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x6c, 0x24, 0x57,
+ 0x76, 0x18, 0xbc, 0xd5, 0xdd, 0x7c, 0xf4, 0xe1, 0xfb, 0xce, 0x70, 0xc4, 0xa1, 0x34, 0xd3, 0xa3,
+ 0xd2, 0xee, 0x68, 0xb4, 0x92, 0xc8, 0xd5, 0x48, 0x5a, 0xc9, 0xab, 0x5d, 0xd9, 0x24, 0x9b, 0x9c,
+ 0xa1, 0x66, 0xc8, 0x69, 0xdd, 0xe6, 0x8c, 0x76, 0x65, 0xed, 0x7a, 0x8b, 0xdd, 0x97, 0x64, 0x89,
+ 0xc5, 0xaa, 0x56, 0x55, 0x35, 0x67, 0xa8, 0xcf, 0x06, 0xbe, 0xac, 0x63, 0x27, 0x7e, 0x20, 0x58,
+ 0xc4, 0x46, 0x1e, 0xb6, 0xe1, 0x00, 0x8e, 0x03, 0xdb, 0x71, 0x12, 0xc4, 0xb1, 0x63, 0x3b, 0xbb,
+ 0x4e, 0xe2, 0x38, 0xf9, 0xe1, 0xfc, 0xd9, 0x38, 0x01, 0x82, 0x35, 0x60, 0x84, 0xb1, 0x69, 0x27,
+ 0x81, 0x7f, 0xe4, 0x81, 0x38, 0x08, 0x60, 0xc6, 0x88, 0x83, 0xfb, 0xac, 0x7b, 0xab, 0xab, 0xba,
+ 0x9b, 0x23, 0x0e, 0x25, 0x1b, 0xfb, 0xaf, 0xfb, 0x9e, 0x73, 0xcf, 0xbd, 0x75, 0x9f, 0xe7, 0x9c,
+ 0x7b, 0x1e, 0xf0, 0xda, 0xee, 0xab, 0xd1, 0x9c, 0x1b, 0xcc, 0xef, 0xb6, 0x37, 0x49, 0xe8, 0x93,
+ 0x98, 0x44, 0xf3, 0xfb, 0xc4, 0x6f, 0x06, 0xe1, 0xbc, 0x00, 0x38, 0x2d, 0x77, 0xbe, 0x11, 0x84,
+ 0x64, 0x7e, 0xff, 0x85, 0xf9, 0x6d, 0xe2, 0x93, 0xd0, 0x89, 0x49, 0x73, 0xae, 0x15, 0x06, 0x71,
+ 0x80, 0x10, 0xc7, 0x99, 0x73, 0x5a, 0xee, 0x1c, 0xc5, 0x99, 0xdb, 0x7f, 0x61, 0xf6, 0xf9, 0x6d,
+ 0x37, 0xde, 0x69, 0x6f, 0xce, 0x35, 0x82, 0xbd, 0xf9, 0xed, 0x60, 0x3b, 0x98, 0x67, 0xa8, 0x9b,
+ 0xed, 0x2d, 0xf6, 0x8f, 0xfd, 0x61, 0xbf, 0x38, 0x89, 0xd9, 0xb5, 0xa4, 0x19, 0xf2, 0x20, 0x26,
+ 0x7e, 0xe4, 0x06, 0x7e, 0xf4, 0xbc, 0xd3, 0x72, 0x23, 0x12, 0xee, 0x93, 0x70, 0xbe, 0xb5, 0xbb,
+ 0x4d, 0x61, 0x91, 0x89, 0x30, 0xbf, 0xff, 0xc2, 0x26, 0x89, 0x9d, 0x8e, 0x1e, 0xcd, 0xbe, 0x94,
+ 0x90, 0xdb, 0x73, 0x1a, 0x3b, 0xae, 0x4f, 0xc2, 0x03, 0x49, 0x63, 0x3e, 0x24, 0x51, 0xd0, 0x0e,
+ 0x1b, 0xe4, 0x44, 0xb5, 0xa2, 0xf9, 0x3d, 0x12, 0x3b, 0x19, 0x5f, 0x3f, 0x3b, 0x9f, 0x57, 0x2b,
+ 0x6c, 0xfb, 0xb1, 0xbb, 0xd7, 0xd9, 0xcc, 0xa7, 0x7b, 0x55, 0x88, 0x1a, 0x3b, 0x64, 0xcf, 0xe9,
+ 0xa8, 0xf7, 0x62, 0x5e, 0xbd, 0x76, 0xec, 0x7a, 0xf3, 0xae, 0x1f, 0x47, 0x71, 0x98, 0xae, 0x64,
+ 0x7f, 0xd3, 0x82, 0x2b, 0x0b, 0x6f, 0xd5, 0x97, 0x3d, 0x27, 0x8a, 0xdd, 0xc6, 0xa2, 0x17, 0x34,
+ 0x76, 0xeb, 0x71, 0x10, 0x92, 0x7b, 0x81, 0xd7, 0xde, 0x23, 0x75, 0x36, 0x10, 0xe8, 0x39, 0x18,
+ 0xde, 0x67, 0xff, 0x57, 0xab, 0x33, 0xd6, 0x15, 0xeb, 0x5a, 0x79, 0x71, 0xf2, 0x37, 0x0f, 0x2b,
+ 0x1f, 0x3b, 0x3a, 0xac, 0x0c, 0xdf, 0x13, 0xe5, 0x58, 0x61, 0xa0, 0xab, 0x30, 0xb8, 0x15, 0x6d,
+ 0x1c, 0xb4, 0xc8, 0x4c, 0x81, 0xe1, 0x8e, 0x0b, 0xdc, 0xc1, 0x95, 0x3a, 0x2d, 0xc5, 0x02, 0x8a,
+ 0xe6, 0xa1, 0xdc, 0x72, 0xc2, 0xd8, 0x8d, 0xdd, 0xc0, 0x9f, 0x29, 0x5e, 0xb1, 0xae, 0x0d, 0x2c,
+ 0x4e, 0x09, 0xd4, 0x72, 0x4d, 0x02, 0x70, 0x82, 0x43, 0xbb, 0x11, 0x12, 0xa7, 0x79, 0xc7, 0xf7,
+ 0x0e, 0x66, 0x4a, 0x57, 0xac, 0x6b, 0xc3, 0x49, 0x37, 0xb0, 0x28, 0xc7, 0x0a, 0xc3, 0xfe, 0xb1,
+ 0x02, 0x0c, 0x2f, 0x6c, 0x6d, 0xb9, 0xbe, 0x1b, 0x1f, 0xa0, 0x7b, 0x30, 0xea, 0x07, 0x4d, 0x22,
+ 0xff, 0xb3, 0xaf, 0x18, 0xb9, 0x7e, 0x65, 0xae, 0x73, 0x65, 0xce, 0xad, 0x6b, 0x78, 0x8b, 0x93,
+ 0x47, 0x87, 0x95, 0x51, 0xbd, 0x04, 0x1b, 0x74, 0x10, 0x86, 0x91, 0x56, 0xd0, 0x54, 0x64, 0x0b,
+ 0x8c, 0x6c, 0x25, 0x8b, 0x6c, 0x2d, 0x41, 0x5b, 0x9c, 0x38, 0x3a, 0xac, 0x8c, 0x68, 0x05, 0x58,
+ 0x27, 0x82, 0x36, 0x61, 0x82, 0xfe, 0xf5, 0x63, 0x57, 0xd1, 0x2d, 0x32, 0xba, 0x4f, 0xe5, 0xd1,
+ 0xd5, 0x50, 0x17, 0xcf, 0x1d, 0x1d, 0x56, 0x26, 0x52, 0x85, 0x38, 0x4d, 0xd0, 0x7e, 0x1f, 0xc6,
+ 0x17, 0xe2, 0xd8, 0x69, 0xec, 0x90, 0x26, 0x9f, 0x41, 0xf4, 0x12, 0x94, 0x7c, 0x67, 0x8f, 0x88,
+ 0xf9, 0xbd, 0x22, 0x06, 0xb6, 0xb4, 0xee, 0xec, 0x91, 0xe3, 0xc3, 0xca, 0xe4, 0x5d, 0xdf, 0x7d,
+ 0xaf, 0x2d, 0x56, 0x05, 0x2d, 0xc3, 0x0c, 0x1b, 0x5d, 0x07, 0x68, 0x92, 0x7d, 0xb7, 0x41, 0x6a,
+ 0x4e, 0xbc, 0x23, 0xe6, 0x1b, 0x89, 0xba, 0x50, 0x55, 0x10, 0xac, 0x61, 0xd9, 0x0f, 0xa0, 0xbc,
+ 0xb0, 0x1f, 0xb8, 0xcd, 0x5a, 0xd0, 0x8c, 0xd0, 0x2e, 0x4c, 0xb4, 0x42, 0xb2, 0x45, 0x42, 0x55,
+ 0x34, 0x63, 0x5d, 0x29, 0x5e, 0x1b, 0xb9, 0x7e, 0x2d, 0xf3, 0x63, 0x4d, 0xd4, 0x65, 0x3f, 0x0e,
+ 0x0f, 0x16, 0x1f, 0x13, 0xed, 0x4d, 0xa4, 0xa0, 0x38, 0x4d, 0xd9, 0xfe, 0x57, 0x05, 0x98, 0x5e,
+ 0x78, 0xbf, 0x1d, 0x92, 0xaa, 0x1b, 0xed, 0xa6, 0x57, 0x78, 0xd3, 0x8d, 0x76, 0xd7, 0x93, 0x11,
+ 0x50, 0x4b, 0xab, 0x2a, 0xca, 0xb1, 0xc2, 0x40, 0xcf, 0xc3, 0x10, 0xfd, 0x7d, 0x17, 0xaf, 0x8a,
+ 0x4f, 0x3e, 0x27, 0x90, 0x47, 0xaa, 0x4e, 0xec, 0x54, 0x39, 0x08, 0x4b, 0x1c, 0xb4, 0x06, 0x23,
+ 0x0d, 0xb6, 0x21, 0xb7, 0xd7, 0x82, 0x26, 0x61, 0x93, 0x59, 0x5e, 0x7c, 0x96, 0xa2, 0x2f, 0x25,
+ 0xc5, 0xc7, 0x87, 0x95, 0x19, 0xde, 0x37, 0x41, 0x42, 0x83, 0x61, 0xbd, 0x3e, 0xb2, 0xd5, 0xfe,
+ 0x2a, 0x31, 0x4a, 0x90, 0xb1, 0xb7, 0xae, 0x69, 0x5b, 0x65, 0x80, 0x6d, 0x95, 0xd1, 0xec, 0x6d,
+ 0x82, 0x5e, 0x80, 0xd2, 0xae, 0xeb, 0x37, 0x67, 0x06, 0x19, 0xad, 0x4b, 0x74, 0xce, 0x6f, 0xb9,
+ 0x7e, 0xf3, 0xf8, 0xb0, 0x32, 0x65, 0x74, 0x87, 0x16, 0x62, 0x86, 0x6a, 0xff, 0x91, 0x05, 0x15,
+ 0x06, 0x5b, 0x71, 0x3d, 0x52, 0x23, 0x61, 0xe4, 0x46, 0x31, 0xf1, 0x63, 0x63, 0x40, 0xaf, 0x03,
+ 0x44, 0xa4, 0x11, 0x92, 0x58, 0x1b, 0x52, 0xb5, 0x30, 0xea, 0x0a, 0x82, 0x35, 0x2c, 0x7a, 0x20,
+ 0x44, 0x3b, 0x4e, 0xc8, 0xd6, 0x97, 0x18, 0x58, 0x75, 0x20, 0xd4, 0x25, 0x00, 0x27, 0x38, 0xc6,
+ 0x81, 0x50, 0xec, 0x75, 0x20, 0xa0, 0xcf, 0xc1, 0x44, 0xd2, 0x58, 0xd4, 0x72, 0x1a, 0x72, 0x00,
+ 0xd9, 0x96, 0xa9, 0x9b, 0x20, 0x9c, 0xc6, 0xb5, 0xff, 0xae, 0x25, 0x16, 0x0f, 0xfd, 0xea, 0x8f,
+ 0xf8, 0xb7, 0xda, 0xbf, 0x6a, 0xc1, 0xd0, 0xa2, 0xeb, 0x37, 0x5d, 0x7f, 0x1b, 0x7d, 0x19, 0x86,
+ 0xe9, 0xdd, 0xd4, 0x74, 0x62, 0x47, 0x9c, 0x7b, 0x9f, 0xd2, 0xf6, 0x96, 0xba, 0x2a, 0xe6, 0x5a,
+ 0xbb, 0xdb, 0xb4, 0x20, 0x9a, 0xa3, 0xd8, 0x74, 0xb7, 0xdd, 0xd9, 0x7c, 0x97, 0x34, 0xe2, 0x35,
+ 0x12, 0x3b, 0xc9, 0xe7, 0x24, 0x65, 0x58, 0x51, 0x45, 0xb7, 0x60, 0x30, 0x76, 0xc2, 0x6d, 0x12,
+ 0x8b, 0x03, 0x30, 0xf3, 0xa0, 0xe2, 0x35, 0x31, 0xdd, 0x91, 0xc4, 0x6f, 0x90, 0xe4, 0x5a, 0xd8,
+ 0x60, 0x55, 0xb1, 0x20, 0x61, 0xff, 0xe0, 0x20, 0x5c, 0x5c, 0xaa, 0xaf, 0xe6, 0xac, 0xab, 0xab,
+ 0x30, 0xd8, 0x0c, 0xdd, 0x7d, 0x12, 0x8a, 0x71, 0x56, 0x54, 0xaa, 0xac, 0x14, 0x0b, 0x28, 0x7a,
+ 0x15, 0x46, 0xf9, 0x85, 0x74, 0xd3, 0xf1, 0x9b, 0x9e, 0x1c, 0xe2, 0xf3, 0x02, 0x7b, 0xf4, 0x9e,
+ 0x06, 0xc3, 0x06, 0xe6, 0x09, 0x17, 0xd5, 0xd5, 0xd4, 0x66, 0xcc, 0xbb, 0xec, 0x7e, 0xc0, 0x82,
+ 0x49, 0xde, 0xcc, 0x42, 0x1c, 0x87, 0xee, 0x66, 0x3b, 0x26, 0xd1, 0xcc, 0x00, 0x3b, 0xe9, 0x96,
+ 0xb2, 0x46, 0x2b, 0x77, 0x04, 0xe6, 0xee, 0xa5, 0xa8, 0xf0, 0x43, 0x70, 0x46, 0xb4, 0x3b, 0x99,
+ 0x06, 0xe3, 0x8e, 0x66, 0xd1, 0xf7, 0x5a, 0x30, 0xdb, 0x08, 0xfc, 0x38, 0x0c, 0x3c, 0x8f, 0x84,
+ 0xb5, 0xf6, 0xa6, 0xe7, 0x46, 0x3b, 0x7c, 0x9d, 0x62, 0xb2, 0xc5, 0x4e, 0x82, 0x9c, 0x39, 0x54,
+ 0x48, 0x62, 0x0e, 0x2f, 0x1f, 0x1d, 0x56, 0x66, 0x97, 0x72, 0x49, 0xe1, 0x2e, 0xcd, 0xa0, 0x5d,
+ 0x40, 0xf4, 0x2a, 0xad, 0xc7, 0xce, 0x36, 0x49, 0x1a, 0x1f, 0xea, 0xbf, 0xf1, 0x0b, 0x47, 0x87,
+ 0x15, 0xb4, 0xde, 0x41, 0x02, 0x67, 0x90, 0x45, 0xef, 0xc1, 0x79, 0x5a, 0xda, 0xf1, 0xad, 0xc3,
+ 0xfd, 0x37, 0x37, 0x73, 0x74, 0x58, 0x39, 0xbf, 0x9e, 0x41, 0x04, 0x67, 0x92, 0x9e, 0x5d, 0x82,
+ 0xe9, 0xcc, 0xa9, 0x42, 0x93, 0x50, 0xdc, 0x25, 0x9c, 0x05, 0x29, 0x63, 0xfa, 0x13, 0x9d, 0x87,
+ 0x81, 0x7d, 0xc7, 0x6b, 0x8b, 0x55, 0x8a, 0xf9, 0x9f, 0xcf, 0x14, 0x5e, 0xb5, 0xec, 0x06, 0x8c,
+ 0x2e, 0x39, 0x2d, 0x67, 0xd3, 0xf5, 0xdc, 0xd8, 0x25, 0x11, 0x7a, 0x1a, 0x8a, 0x4e, 0xb3, 0xc9,
+ 0xae, 0xc8, 0xf2, 0xe2, 0xf4, 0xd1, 0x61, 0xa5, 0xb8, 0xd0, 0xa4, 0x67, 0x35, 0x28, 0xac, 0x03,
+ 0x4c, 0x31, 0xd0, 0x27, 0xa1, 0xd4, 0x0c, 0x83, 0xd6, 0x4c, 0x81, 0x61, 0xd2, 0xa1, 0x2a, 0x55,
+ 0xc3, 0xa0, 0x95, 0x42, 0x65, 0x38, 0xf6, 0xaf, 0x17, 0xe0, 0x89, 0x25, 0xd2, 0xda, 0x59, 0xa9,
+ 0xe7, 0x6c, 0xba, 0x6b, 0x30, 0xbc, 0x17, 0xf8, 0x6e, 0x1c, 0x84, 0x91, 0x68, 0x9a, 0xdd, 0x26,
+ 0x6b, 0xa2, 0x0c, 0x2b, 0x28, 0xba, 0x02, 0xa5, 0x56, 0xc2, 0x09, 0x8c, 0x4a, 0x2e, 0x82, 0xf1,
+ 0x00, 0x0c, 0x42, 0x31, 0xda, 0x11, 0x09, 0xc5, 0x2d, 0xa8, 0x30, 0xee, 0x46, 0x24, 0xc4, 0x0c,
+ 0x92, 0x1c, 0xa7, 0xf4, 0xa0, 0x15, 0xdb, 0x2a, 0x75, 0x9c, 0x52, 0x08, 0xd6, 0xb0, 0x50, 0x0d,
+ 0xca, 0x91, 0x9a, 0xd4, 0x81, 0xfe, 0x27, 0x75, 0x8c, 0x9d, 0xb7, 0x6a, 0x26, 0x13, 0x22, 0xc6,
+ 0x31, 0x30, 0xd8, 0xf3, 0xbc, 0xfd, 0x7a, 0x01, 0x10, 0x1f, 0xc2, 0x3f, 0x63, 0x03, 0x77, 0xb7,
+ 0x73, 0xe0, 0x32, 0x39, 0xaf, 0xdb, 0x41, 0xc3, 0xf1, 0xd2, 0x47, 0xf8, 0x69, 0x8d, 0xde, 0xff,
+ 0xb2, 0xe0, 0x89, 0x25, 0xd7, 0x6f, 0x92, 0x30, 0x67, 0x01, 0x3e, 0x1a, 0x01, 0xe4, 0x64, 0x27,
+ 0xbd, 0xb1, 0xc4, 0x4a, 0xa7, 0xb0, 0xc4, 0xec, 0xff, 0x6e, 0x01, 0xe2, 0x9f, 0xfd, 0x91, 0xfb,
+ 0xd8, 0xbb, 0x9d, 0x1f, 0x7b, 0x0a, 0xcb, 0xc2, 0xbe, 0x0d, 0xe3, 0x4b, 0x9e, 0x4b, 0xfc, 0x78,
+ 0xb5, 0xb6, 0x14, 0xf8, 0x5b, 0xee, 0x36, 0xfa, 0x0c, 0x8c, 0x53, 0x99, 0x36, 0x68, 0xc7, 0x75,
+ 0xd2, 0x08, 0x7c, 0xc6, 0xfe, 0x53, 0x49, 0x10, 0x1d, 0x1d, 0x56, 0xc6, 0x37, 0x0c, 0x08, 0x4e,
+ 0x61, 0xda, 0xbf, 0x43, 0xc7, 0x2f, 0xd8, 0x6b, 0x05, 0x3e, 0xf1, 0xe3, 0xa5, 0xc0, 0x6f, 0x72,
+ 0x31, 0xf1, 0x33, 0x50, 0x8a, 0xe9, 0x78, 0xf0, 0xb1, 0xbb, 0x2a, 0x37, 0x0a, 0x1d, 0x85, 0xe3,
+ 0xc3, 0xca, 0x85, 0xce, 0x1a, 0x6c, 0x9c, 0x58, 0x1d, 0xf4, 0x6d, 0x30, 0x18, 0xc5, 0x4e, 0xdc,
+ 0x8e, 0xc4, 0x68, 0x3e, 0x29, 0x47, 0xb3, 0xce, 0x4a, 0x8f, 0x0f, 0x2b, 0x13, 0xaa, 0x1a, 0x2f,
+ 0xc2, 0xa2, 0x02, 0x7a, 0x06, 0x86, 0xf6, 0x48, 0x14, 0x39, 0xdb, 0x92, 0xc3, 0x9f, 0x10, 0x75,
+ 0x87, 0xd6, 0x78, 0x31, 0x96, 0x70, 0xf4, 0x14, 0x0c, 0x90, 0x30, 0x0c, 0x42, 0xb1, 0x47, 0xc7,
+ 0x04, 0xe2, 0xc0, 0x32, 0x2d, 0xc4, 0x1c, 0x66, 0xff, 0x1b, 0x0b, 0x26, 0x54, 0x5f, 0x79, 0x5b,
+ 0x67, 0xc0, 0xca, 0xbd, 0x0d, 0xd0, 0x90, 0x1f, 0x18, 0xb1, 0xdb, 0x63, 0xe4, 0xfa, 0xd5, 0x4c,
+ 0x06, 0xa5, 0x63, 0x18, 0x13, 0xca, 0xaa, 0x28, 0xc2, 0x1a, 0x35, 0xfb, 0x9f, 0x5a, 0x70, 0x2e,
+ 0xf5, 0x45, 0xb7, 0xdd, 0x28, 0x46, 0xef, 0x74, 0x7c, 0xd5, 0x5c, 0x7f, 0x5f, 0x45, 0x6b, 0xb3,
+ 0x6f, 0x52, 0x4b, 0x59, 0x96, 0x68, 0x5f, 0x74, 0x13, 0x06, 0xdc, 0x98, 0xec, 0xc9, 0x8f, 0x79,
+ 0xaa, 0xeb, 0xc7, 0xf0, 0x5e, 0x25, 0x33, 0xb2, 0x4a, 0x6b, 0x62, 0x4e, 0xc0, 0xfe, 0x91, 0x22,
+ 0x94, 0xf9, 0xb2, 0x5d, 0x73, 0x5a, 0x67, 0x30, 0x17, 0xab, 0x50, 0x62, 0xd4, 0x79, 0xc7, 0x9f,
+ 0xce, 0xee, 0xb8, 0xe8, 0xce, 0x1c, 0x95, 0xd3, 0x38, 0x2b, 0xa8, 0xae, 0x06, 0x5a, 0x84, 0x19,
+ 0x09, 0xe4, 0x00, 0x6c, 0xba, 0xbe, 0x13, 0x1e, 0xd0, 0xb2, 0x99, 0x22, 0x23, 0xf8, 0x7c, 0x77,
+ 0x82, 0x8b, 0x0a, 0x9f, 0x93, 0x55, 0x7d, 0x4d, 0x00, 0x58, 0x23, 0x3a, 0xfb, 0x0a, 0x94, 0x15,
+ 0xf2, 0x49, 0x78, 0x9c, 0xd9, 0xcf, 0xc1, 0x44, 0xaa, 0xad, 0x5e, 0xd5, 0x47, 0x75, 0x16, 0xe9,
+ 0x6b, 0xec, 0x14, 0x10, 0xbd, 0x5e, 0xf6, 0xf7, 0xc5, 0x29, 0xfa, 0x3e, 0x9c, 0xf7, 0x32, 0x0e,
+ 0x27, 0x31, 0x55, 0xfd, 0x1f, 0x66, 0x4f, 0x88, 0xcf, 0x3e, 0x9f, 0x05, 0xc5, 0x99, 0x6d, 0xd0,
+ 0x6b, 0x3f, 0x68, 0xd1, 0x35, 0xef, 0x78, 0xac, 0xbf, 0x42, 0xfa, 0xbe, 0x23, 0xca, 0xb0, 0x82,
+ 0xd2, 0x23, 0xec, 0xbc, 0xea, 0xfc, 0x2d, 0x72, 0x50, 0x27, 0x1e, 0x69, 0xc4, 0x41, 0xf8, 0xa1,
+ 0x76, 0xff, 0x12, 0x1f, 0x7d, 0x7e, 0x02, 0x8e, 0x08, 0x02, 0xc5, 0x5b, 0xe4, 0x80, 0x4f, 0x85,
+ 0xfe, 0x75, 0xc5, 0xae, 0x5f, 0xf7, 0x0b, 0x16, 0x8c, 0xa9, 0xaf, 0x3b, 0x83, 0xad, 0xbe, 0x68,
+ 0x6e, 0xf5, 0x4b, 0x5d, 0x17, 0x78, 0xce, 0x26, 0xff, 0x7a, 0x01, 0x2e, 0x2a, 0x1c, 0xca, 0xee,
+ 0xf3, 0x3f, 0x62, 0x55, 0xcd, 0x43, 0xd9, 0x57, 0xda, 0x03, 0xcb, 0x14, 0xdb, 0x13, 0xdd, 0x41,
+ 0x82, 0x43, 0xb9, 0x36, 0x3f, 0x11, 0xf1, 0x47, 0x75, 0xb5, 0x9a, 0x50, 0xa1, 0x2d, 0x42, 0xb1,
+ 0xed, 0x36, 0xc5, 0x9d, 0xf1, 0x29, 0x39, 0xda, 0x77, 0x57, 0xab, 0xc7, 0x87, 0x95, 0x27, 0xf3,
+ 0x54, 0xba, 0xf4, 0xb2, 0x8a, 0xe6, 0xee, 0xae, 0x56, 0x31, 0xad, 0x8c, 0x16, 0x60, 0x42, 0x6a,
+ 0xad, 0xef, 0x51, 0x0e, 0x2a, 0xf0, 0xc5, 0xd5, 0xa2, 0x74, 0x63, 0xd8, 0x04, 0xe3, 0x34, 0x3e,
+ 0xaa, 0xc2, 0xe4, 0x6e, 0x7b, 0x93, 0x78, 0x24, 0xe6, 0x1f, 0x7c, 0x8b, 0x70, 0xcd, 0x51, 0x39,
+ 0x11, 0x2d, 0x6f, 0xa5, 0xe0, 0xb8, 0xa3, 0x86, 0xfd, 0xa7, 0xec, 0x88, 0x17, 0xa3, 0x57, 0x0b,
+ 0x03, 0xba, 0xb0, 0x28, 0xf5, 0x0f, 0x73, 0x39, 0xf7, 0xb3, 0x2a, 0x6e, 0x91, 0x83, 0x8d, 0x80,
+ 0x32, 0xdb, 0xd9, 0xab, 0xc2, 0x58, 0xf3, 0xa5, 0xae, 0x6b, 0xfe, 0x97, 0x0a, 0x30, 0xad, 0x46,
+ 0xc0, 0xe0, 0xeb, 0xfe, 0xac, 0x8f, 0xc1, 0x0b, 0x30, 0xd2, 0x24, 0x5b, 0x4e, 0xdb, 0x8b, 0x95,
+ 0x1a, 0x73, 0x80, 0xab, 0xb2, 0xab, 0x49, 0x31, 0xd6, 0x71, 0x4e, 0x30, 0x6c, 0x3f, 0x3d, 0xc2,
+ 0xee, 0xd6, 0xd8, 0xa1, 0x6b, 0x5c, 0xed, 0x1a, 0x2b, 0x77, 0xd7, 0x3c, 0x05, 0x03, 0xee, 0x1e,
+ 0xe5, 0xb5, 0x0a, 0x26, 0x0b, 0xb5, 0x4a, 0x0b, 0x31, 0x87, 0xa1, 0x4f, 0xc0, 0x50, 0x23, 0xd8,
+ 0xdb, 0x73, 0xfc, 0x26, 0xbb, 0xf2, 0xca, 0x8b, 0x23, 0x94, 0x1d, 0x5b, 0xe2, 0x45, 0x58, 0xc2,
+ 0xd0, 0x13, 0x50, 0x72, 0xc2, 0xed, 0x68, 0xa6, 0xc4, 0x70, 0x86, 0x69, 0x4b, 0x0b, 0xe1, 0x76,
+ 0x84, 0x59, 0x29, 0x95, 0xaa, 0xee, 0x07, 0xe1, 0xae, 0xeb, 0x6f, 0x57, 0xdd, 0x50, 0x6c, 0x09,
+ 0x75, 0x17, 0xbe, 0xa5, 0x20, 0x58, 0xc3, 0x42, 0x2b, 0x30, 0xd0, 0x0a, 0xc2, 0x38, 0x9a, 0x19,
+ 0x64, 0xc3, 0xfd, 0x64, 0xce, 0x41, 0xc4, 0xbf, 0xb6, 0x16, 0x84, 0x71, 0xf2, 0x01, 0xf4, 0x5f,
+ 0x84, 0x79, 0x75, 0xf4, 0x6d, 0x50, 0x24, 0xfe, 0xfe, 0xcc, 0x10, 0xa3, 0x32, 0x9b, 0x45, 0x65,
+ 0xd9, 0xdf, 0xbf, 0xe7, 0x84, 0xc9, 0x29, 0xbd, 0xec, 0xef, 0x63, 0x5a, 0x07, 0x7d, 0x01, 0xca,
+ 0x72, 0x8b, 0x47, 0x42, 0xcd, 0x91, 0xb9, 0xc4, 0xe4, 0xc1, 0x80, 0xc9, 0x7b, 0x6d, 0x37, 0x24,
+ 0x7b, 0xc4, 0x8f, 0xa3, 0xe4, 0x4c, 0x93, 0xd0, 0x08, 0x27, 0xd4, 0xd0, 0x17, 0xa4, 0x6e, 0x6d,
+ 0x2d, 0x68, 0xfb, 0x71, 0x34, 0x53, 0x66, 0xdd, 0xcb, 0x7c, 0xf5, 0xb8, 0x97, 0xe0, 0xa5, 0x95,
+ 0x6f, 0xbc, 0x32, 0x36, 0x48, 0x21, 0x0c, 0x63, 0x9e, 0xbb, 0x4f, 0x7c, 0x12, 0x45, 0xb5, 0x30,
+ 0xd8, 0x24, 0x33, 0xc0, 0x7a, 0x7e, 0x31, 0xfb, 0x31, 0x20, 0xd8, 0x24, 0x8b, 0x53, 0x47, 0x87,
+ 0x95, 0xb1, 0xdb, 0x7a, 0x1d, 0x6c, 0x92, 0x40, 0x77, 0x61, 0x9c, 0xca, 0x35, 0x6e, 0x42, 0x74,
+ 0xa4, 0x17, 0x51, 0x26, 0x7d, 0x60, 0xa3, 0x12, 0x4e, 0x11, 0x41, 0x6f, 0x40, 0xd9, 0x73, 0xb7,
+ 0x48, 0xe3, 0xa0, 0xe1, 0x91, 0x99, 0x51, 0x46, 0x31, 0x73, 0x5b, 0xdd, 0x96, 0x48, 0x5c, 0x2e,
+ 0x52, 0x7f, 0x71, 0x52, 0x1d, 0xdd, 0x83, 0x0b, 0x31, 0x09, 0xf7, 0x5c, 0xdf, 0xa1, 0xdb, 0x41,
+ 0xc8, 0x0b, 0xec, 0x49, 0x65, 0x8c, 0xad, 0xb7, 0xcb, 0x62, 0xe8, 0x2e, 0x6c, 0x64, 0x62, 0xe1,
+ 0x9c, 0xda, 0xe8, 0x0e, 0x4c, 0xb0, 0x9d, 0x50, 0x6b, 0x7b, 0x5e, 0x2d, 0xf0, 0xdc, 0xc6, 0xc1,
+ 0xcc, 0x38, 0x23, 0xf8, 0x09, 0x79, 0x2f, 0xac, 0x9a, 0xe0, 0xe3, 0xc3, 0x0a, 0x24, 0xff, 0x70,
+ 0xba, 0x36, 0xda, 0x64, 0x3a, 0xf4, 0x76, 0xe8, 0xc6, 0x07, 0x74, 0xfd, 0x92, 0x07, 0xf1, 0xcc,
+ 0x44, 0x57, 0x51, 0x58, 0x47, 0x55, 0x8a, 0x76, 0xbd, 0x10, 0xa7, 0x09, 0xd2, 0xad, 0x1d, 0xc5,
+ 0x4d, 0xd7, 0x9f, 0x99, 0x64, 0x27, 0x86, 0xda, 0x19, 0x75, 0x5a, 0x88, 0x39, 0x8c, 0xe9, 0xcf,
+ 0xe9, 0x8f, 0x3b, 0xf4, 0x04, 0x9d, 0x62, 0x88, 0x89, 0xfe, 0x5c, 0x02, 0x70, 0x82, 0x43, 0x99,
+ 0x9a, 0x38, 0x3e, 0x98, 0x41, 0x0c, 0x55, 0x6d, 0x97, 0x8d, 0x8d, 0x2f, 0x60, 0x5a, 0x8e, 0x6e,
+ 0xc3, 0x10, 0xf1, 0xf7, 0x57, 0xc2, 0x60, 0x6f, 0xe6, 0x5c, 0xfe, 0x9e, 0x5d, 0xe6, 0x28, 0xfc,
+ 0x40, 0x4f, 0x04, 0x3c, 0x51, 0x8c, 0x25, 0x09, 0xf4, 0x00, 0x66, 0x32, 0x66, 0x84, 0x4f, 0xc0,
+ 0x79, 0x36, 0x01, 0x9f, 0x15, 0x75, 0x67, 0x36, 0x72, 0xf0, 0x8e, 0xbb, 0xc0, 0x70, 0x2e, 0x75,
+ 0xf4, 0x45, 0x18, 0xe3, 0x1b, 0x8a, 0x3f, 0xbe, 0x45, 0x33, 0xd3, 0xec, 0x6b, 0xae, 0xe4, 0x6f,
+ 0x4e, 0x8e, 0xb8, 0x38, 0x2d, 0x3a, 0x34, 0xa6, 0x97, 0x46, 0xd8, 0xa4, 0x66, 0x6f, 0xc2, 0xb8,
+ 0x3a, 0xb7, 0xd8, 0xd2, 0x41, 0x15, 0x18, 0x60, 0xdc, 0x8e, 0xd0, 0x6f, 0x95, 0xe9, 0x4c, 0x31,
+ 0x4e, 0x08, 0xf3, 0x72, 0x36, 0x53, 0xee, 0xfb, 0x64, 0xf1, 0x20, 0x26, 0x5c, 0xaa, 0x2e, 0x6a,
+ 0x33, 0x25, 0x01, 0x38, 0xc1, 0xb1, 0xff, 0x2f, 0xe7, 0x1a, 0x93, 0xc3, 0xb1, 0x8f, 0xeb, 0xe0,
+ 0x39, 0x18, 0xde, 0x09, 0xa2, 0x98, 0x62, 0xb3, 0x36, 0x06, 0x12, 0x3e, 0xf1, 0xa6, 0x28, 0xc7,
+ 0x0a, 0x03, 0xbd, 0x06, 0x63, 0x0d, 0xbd, 0x01, 0x71, 0x97, 0xa9, 0x21, 0x30, 0x5a, 0xc7, 0x26,
+ 0x2e, 0x7a, 0x15, 0x86, 0xd9, 0xd3, 0x79, 0x23, 0xf0, 0x04, 0x93, 0x25, 0x2f, 0xe4, 0xe1, 0x9a,
+ 0x28, 0x3f, 0xd6, 0x7e, 0x63, 0x85, 0x8d, 0xae, 0xc2, 0x20, 0xed, 0xc2, 0x6a, 0x4d, 0xdc, 0x22,
+ 0x4a, 0x55, 0x73, 0x93, 0x95, 0x62, 0x01, 0xb5, 0xff, 0x6a, 0x41, 0x1b, 0x65, 0x2a, 0x91, 0x12,
+ 0x54, 0x83, 0xa1, 0xfb, 0x8e, 0x1b, 0xbb, 0xfe, 0xb6, 0x60, 0x17, 0x9e, 0xe9, 0x7a, 0xa5, 0xb0,
+ 0x4a, 0x6f, 0xf1, 0x0a, 0xfc, 0xd2, 0x13, 0x7f, 0xb0, 0x24, 0x43, 0x29, 0x86, 0x6d, 0xdf, 0xa7,
+ 0x14, 0x0b, 0xfd, 0x52, 0xc4, 0xbc, 0x02, 0xa7, 0x28, 0xfe, 0x60, 0x49, 0x06, 0xbd, 0x03, 0x20,
+ 0x97, 0x25, 0x69, 0x8a, 0x27, 0xeb, 0xe7, 0x7a, 0x13, 0xdd, 0x50, 0x75, 0x16, 0xc7, 0xe9, 0x95,
+ 0x9a, 0xfc, 0xc7, 0x1a, 0x3d, 0x3b, 0x66, 0x6c, 0x55, 0x67, 0x67, 0xd0, 0x77, 0xd2, 0x93, 0xc0,
+ 0x09, 0x63, 0xd2, 0x5c, 0x88, 0xc5, 0xe0, 0x7c, 0xb2, 0x3f, 0x99, 0x62, 0xc3, 0xdd, 0x23, 0xfa,
+ 0xa9, 0x21, 0x88, 0xe0, 0x84, 0x9e, 0xfd, 0x2b, 0x45, 0x98, 0xc9, 0xeb, 0x2e, 0x5d, 0x74, 0xe4,
+ 0x81, 0x1b, 0x2f, 0x51, 0x6e, 0xc8, 0x32, 0x17, 0xdd, 0xb2, 0x28, 0xc7, 0x0a, 0x83, 0xce, 0x7e,
+ 0xe4, 0x6e, 0x4b, 0x91, 0x70, 0x20, 0x99, 0xfd, 0x3a, 0x2b, 0xc5, 0x02, 0x4a, 0xf1, 0x42, 0xe2,
+ 0x44, 0xc2, 0x26, 0x42, 0x5b, 0x25, 0x98, 0x95, 0x62, 0x01, 0xd5, 0xf5, 0x4d, 0xa5, 0x1e, 0xfa,
+ 0x26, 0x63, 0x88, 0x06, 0x4e, 0x77, 0x88, 0xd0, 0x97, 0x00, 0xb6, 0x5c, 0xdf, 0x8d, 0x76, 0x18,
+ 0xf5, 0xc1, 0x13, 0x53, 0x57, 0xbc, 0xd4, 0x8a, 0xa2, 0x82, 0x35, 0x8a, 0xe8, 0x65, 0x18, 0x51,
+ 0x1b, 0x70, 0xb5, 0xca, 0x1e, 0x88, 0xb4, 0x07, 0xf7, 0xe4, 0x34, 0xaa, 0x62, 0x1d, 0xcf, 0x7e,
+ 0x37, 0xbd, 0x5e, 0xc4, 0x0e, 0xd0, 0xc6, 0xd7, 0xea, 0x77, 0x7c, 0x0b, 0xdd, 0xc7, 0xd7, 0xfe,
+ 0x8d, 0x22, 0x4c, 0x18, 0x8d, 0xb5, 0xa3, 0x3e, 0xce, 0xac, 0x1b, 0xf4, 0x9e, 0x73, 0x62, 0x22,
+ 0xf6, 0x9f, 0xdd, 0x7b, 0xab, 0xe8, 0x77, 0x21, 0xdd, 0x01, 0xbc, 0x3e, 0xfa, 0x12, 0x94, 0x3d,
+ 0x27, 0x62, 0xba, 0x2b, 0x22, 0xf6, 0x5d, 0x3f, 0xc4, 0x12, 0x39, 0xc2, 0x89, 0x62, 0xed, 0xaa,
+ 0xe1, 0xb4, 0x13, 0x92, 0xf4, 0x42, 0xa6, 0xbc, 0x8f, 0x34, 0xba, 0x51, 0x9d, 0xa0, 0x0c, 0xd2,
+ 0x01, 0xe6, 0x30, 0xf4, 0x2a, 0x8c, 0x86, 0x84, 0xad, 0x8a, 0x25, 0xca, 0xca, 0xb1, 0x65, 0x36,
+ 0x90, 0xf0, 0x7c, 0x58, 0x83, 0x61, 0x03, 0x33, 0x61, 0xe5, 0x07, 0xbb, 0xb0, 0xf2, 0xcf, 0xc0,
+ 0x10, 0xfb, 0xa1, 0x56, 0x80, 0x9a, 0x8d, 0x55, 0x5e, 0x8c, 0x25, 0x3c, 0xbd, 0x60, 0x86, 0xfb,
+ 0x5c, 0x30, 0x9f, 0x84, 0xf1, 0xaa, 0x43, 0xf6, 0x02, 0x7f, 0xd9, 0x6f, 0xb6, 0x02, 0xd7, 0x8f,
+ 0xd1, 0x0c, 0x94, 0xd8, 0xed, 0xc0, 0xf7, 0x76, 0x89, 0x52, 0xc0, 0x25, 0xca, 0x98, 0xdb, 0xdb,
+ 0x30, 0x5d, 0x0d, 0xee, 0xfb, 0xf7, 0x9d, 0xb0, 0xb9, 0x50, 0x5b, 0xd5, 0xe4, 0xdc, 0x75, 0x29,
+ 0x67, 0x71, 0x23, 0x96, 0xcc, 0x33, 0x55, 0xab, 0xc9, 0xef, 0xda, 0x15, 0xd7, 0x23, 0x39, 0xda,
+ 0x88, 0xbf, 0x5e, 0x30, 0x5a, 0x4a, 0xf0, 0xd5, 0x83, 0x91, 0x95, 0xfb, 0x60, 0xf4, 0x26, 0x0c,
+ 0x6f, 0xb9, 0xc4, 0x6b, 0x62, 0xb2, 0x25, 0x96, 0xd8, 0xd3, 0xf9, 0xef, 0xf2, 0x2b, 0x14, 0x53,
+ 0x6a, 0x9f, 0xb8, 0x94, 0xb6, 0x22, 0x2a, 0x63, 0x45, 0x06, 0xed, 0xc2, 0xa4, 0x14, 0x03, 0x24,
+ 0x54, 0x2c, 0xb8, 0x67, 0xba, 0xc9, 0x16, 0x26, 0xf1, 0xf3, 0x47, 0x87, 0x95, 0x49, 0x9c, 0x22,
+ 0x83, 0x3b, 0x08, 0x53, 0xb1, 0x6c, 0x8f, 0x1e, 0xad, 0x25, 0x36, 0xfc, 0x4c, 0x2c, 0x63, 0x12,
+ 0x26, 0x2b, 0xb5, 0x7f, 0xc2, 0x82, 0xc7, 0x3a, 0x46, 0x46, 0x48, 0xda, 0xa7, 0x3c, 0x0b, 0x69,
+ 0xc9, 0xb7, 0xd0, 0x5b, 0xf2, 0xb5, 0xff, 0x9e, 0x05, 0xe7, 0x97, 0xf7, 0x5a, 0xf1, 0x41, 0xd5,
+ 0x35, 0x5f, 0x77, 0x5e, 0x81, 0xc1, 0x3d, 0xd2, 0x74, 0xdb, 0x7b, 0x62, 0xe6, 0x2a, 0xf2, 0xf8,
+ 0x59, 0x63, 0xa5, 0xc7, 0x87, 0x95, 0xb1, 0x7a, 0x1c, 0x84, 0xce, 0x36, 0xe1, 0x05, 0x58, 0xa0,
+ 0xb3, 0x43, 0xdc, 0x7d, 0x9f, 0xdc, 0x76, 0xf7, 0x5c, 0x69, 0x67, 0xd1, 0x55, 0x77, 0x36, 0x27,
+ 0x07, 0x74, 0xee, 0xcd, 0xb6, 0xe3, 0xc7, 0x6e, 0x7c, 0x20, 0x1e, 0x66, 0x24, 0x11, 0x9c, 0xd0,
+ 0xb3, 0xbf, 0x69, 0xc1, 0x84, 0x5c, 0xf7, 0x0b, 0xcd, 0x66, 0x48, 0xa2, 0x08, 0xcd, 0x42, 0xc1,
+ 0x6d, 0x89, 0x5e, 0x82, 0xe8, 0x65, 0x61, 0xb5, 0x86, 0x0b, 0x6e, 0x0b, 0xd5, 0xa0, 0xcc, 0xcd,
+ 0x35, 0x92, 0xc5, 0xd5, 0x97, 0xd1, 0x07, 0xeb, 0xc1, 0x86, 0xac, 0x89, 0x13, 0x22, 0x92, 0x83,
+ 0x63, 0x67, 0x66, 0xd1, 0x7c, 0xf5, 0xba, 0x29, 0xca, 0xb1, 0xc2, 0x40, 0xd7, 0x60, 0xd8, 0x0f,
+ 0x9a, 0xdc, 0x7a, 0x86, 0xdf, 0x7e, 0x6c, 0xc9, 0xae, 0x8b, 0x32, 0xac, 0xa0, 0xf6, 0x0f, 0x5b,
+ 0x30, 0x2a, 0xbf, 0xac, 0x4f, 0x66, 0x92, 0x6e, 0xad, 0x84, 0x91, 0x4c, 0xb6, 0x16, 0x65, 0x06,
+ 0x19, 0xc4, 0xe0, 0x01, 0x8b, 0x27, 0xe1, 0x01, 0xed, 0x1f, 0x2f, 0xc0, 0xb8, 0xec, 0x4e, 0xbd,
+ 0xbd, 0x19, 0x91, 0x18, 0x6d, 0x40, 0xd9, 0xe1, 0x43, 0x4e, 0xe4, 0x8a, 0x7d, 0x2a, 0x5b, 0xf8,
+ 0x30, 0xe6, 0x27, 0xb9, 0x96, 0x17, 0x64, 0x6d, 0x9c, 0x10, 0x42, 0x1e, 0x4c, 0xf9, 0x41, 0xcc,
+ 0x8e, 0x68, 0x05, 0xef, 0xf6, 0x04, 0x92, 0xa6, 0x7e, 0x51, 0x50, 0x9f, 0x5a, 0x4f, 0x53, 0xc1,
+ 0x9d, 0x84, 0xd1, 0xb2, 0x54, 0x78, 0x14, 0xf3, 0xc5, 0x0d, 0x7d, 0x16, 0xb2, 0xf5, 0x1d, 0xf6,
+ 0xaf, 0x59, 0x50, 0x96, 0x68, 0x67, 0xf1, 0xda, 0xb5, 0x06, 0x43, 0x11, 0x9b, 0x04, 0x39, 0x34,
+ 0x76, 0xb7, 0x8e, 0xf3, 0xf9, 0x4a, 0x6e, 0x1e, 0xfe, 0x3f, 0xc2, 0x92, 0x06, 0xd3, 0x77, 0xab,
+ 0xee, 0x7f, 0x44, 0xf4, 0xdd, 0xaa, 0x3f, 0x39, 0x37, 0xcc, 0x7f, 0x61, 0x7d, 0xd6, 0xc4, 0x5a,
+ 0xca, 0x20, 0xb5, 0x42, 0xb2, 0xe5, 0x3e, 0x48, 0x33, 0x48, 0x35, 0x56, 0x8a, 0x05, 0x14, 0xbd,
+ 0x03, 0xa3, 0x0d, 0xa9, 0xe8, 0x4c, 0x8e, 0x81, 0xab, 0x5d, 0x95, 0xee, 0xea, 0x7d, 0x86, 0x5b,
+ 0xd6, 0x2e, 0x69, 0xf5, 0xb1, 0x41, 0xcd, 0x7c, 0x6e, 0x2f, 0xf6, 0x7a, 0x6e, 0x4f, 0xe8, 0xe6,
+ 0x3f, 0x3e, 0xff, 0xa4, 0x05, 0x83, 0x5c, 0x5d, 0xd6, 0x9f, 0x7e, 0x51, 0x7b, 0xae, 0x4a, 0xc6,
+ 0xee, 0x1e, 0x2d, 0x14, 0xcf, 0x4f, 0x68, 0x0d, 0xca, 0xec, 0x07, 0x53, 0x1b, 0x14, 0xf3, 0x4d,
+ 0x8a, 0x79, 0xab, 0x7a, 0x07, 0xef, 0xc9, 0x6a, 0x38, 0xa1, 0x60, 0xff, 0x68, 0x91, 0x1e, 0x55,
+ 0x09, 0xaa, 0x71, 0x83, 0x5b, 0x8f, 0xee, 0x06, 0x2f, 0x3c, 0xaa, 0x1b, 0x7c, 0x1b, 0x26, 0x1a,
+ 0xda, 0xe3, 0x56, 0x32, 0x93, 0xd7, 0xba, 0x2e, 0x12, 0xed, 0x1d, 0x8c, 0xab, 0x8c, 0x96, 0x4c,
+ 0x22, 0x38, 0x4d, 0x15, 0x7d, 0x27, 0x8c, 0xf2, 0x79, 0x16, 0xad, 0x70, 0x8b, 0x85, 0x4f, 0xe4,
+ 0xaf, 0x17, 0xbd, 0x09, 0xb6, 0x12, 0xeb, 0x5a, 0x75, 0x6c, 0x10, 0xb3, 0x7f, 0x65, 0x18, 0x06,
+ 0x96, 0xf7, 0x89, 0x1f, 0x9f, 0xc1, 0x81, 0xd4, 0x80, 0x71, 0xd7, 0xdf, 0x0f, 0xbc, 0x7d, 0xd2,
+ 0xe4, 0xf0, 0x93, 0x5c, 0xae, 0x17, 0x04, 0xe9, 0xf1, 0x55, 0x83, 0x04, 0x4e, 0x91, 0x7c, 0x14,
+ 0x12, 0xe6, 0x0d, 0x18, 0xe4, 0x73, 0x2f, 0xc4, 0xcb, 0x4c, 0x65, 0x30, 0x1b, 0x44, 0xb1, 0x0b,
+ 0x12, 0xe9, 0x97, 0x6b, 0x9f, 0x45, 0x75, 0xf4, 0x2e, 0x8c, 0x6f, 0xb9, 0x61, 0x14, 0x53, 0xd1,
+ 0x30, 0x8a, 0x9d, 0xbd, 0xd6, 0x43, 0x48, 0x94, 0x6a, 0x1c, 0x56, 0x0c, 0x4a, 0x38, 0x45, 0x19,
+ 0x6d, 0xc3, 0x18, 0x15, 0x72, 0x92, 0xa6, 0x86, 0x4e, 0xdc, 0x94, 0x52, 0x19, 0xdd, 0xd6, 0x09,
+ 0x61, 0x93, 0x2e, 0x3d, 0x4c, 0x1a, 0x4c, 0x28, 0x1a, 0x66, 0x1c, 0x85, 0x3a, 0x4c, 0xb8, 0x34,
+ 0xc4, 0x61, 0xf4, 0x4c, 0x62, 0x66, 0x2b, 0x65, 0xf3, 0x4c, 0xd2, 0x8c, 0x53, 0xbe, 0x0c, 0x65,
+ 0x42, 0x87, 0x90, 0x12, 0x16, 0x8a, 0xf1, 0xf9, 0xfe, 0xfa, 0xba, 0xe6, 0x36, 0xc2, 0xc0, 0x94,
+ 0xe5, 0x97, 0x25, 0x25, 0x9c, 0x10, 0x45, 0x4b, 0x30, 0x18, 0x91, 0xd0, 0x25, 0x91, 0x50, 0x91,
+ 0x77, 0x99, 0x46, 0x86, 0xc6, 0x6d, 0xcf, 0xf9, 0x6f, 0x2c, 0xaa, 0xd2, 0xe5, 0xe5, 0x30, 0x69,
+ 0x88, 0x69, 0xc5, 0xb5, 0xe5, 0xb5, 0xc0, 0x4a, 0xb1, 0x80, 0xa2, 0x37, 0x60, 0x28, 0x24, 0x1e,
+ 0x53, 0x16, 0x8d, 0xf5, 0xbf, 0xc8, 0xb9, 0xee, 0x89, 0xd7, 0xc3, 0x92, 0x00, 0xba, 0x05, 0x28,
+ 0x24, 0x94, 0x87, 0x70, 0xfd, 0x6d, 0x65, 0xcc, 0x21, 0x74, 0xdd, 0x8f, 0x8b, 0xf6, 0xcf, 0xe1,
+ 0x04, 0x43, 0x5a, 0xa5, 0xe2, 0x8c, 0x6a, 0xe8, 0x06, 0x4c, 0xa9, 0xd2, 0x55, 0x3f, 0x8a, 0x1d,
+ 0xbf, 0x41, 0x98, 0x9a, 0xbb, 0x9c, 0x70, 0x45, 0x38, 0x8d, 0x80, 0x3b, 0xeb, 0xd8, 0x3f, 0x47,
+ 0xd9, 0x19, 0x3a, 0x5a, 0x67, 0xc0, 0x0b, 0xbc, 0x6e, 0xf2, 0x02, 0x17, 0x73, 0x67, 0x2e, 0x87,
+ 0x0f, 0x38, 0xb2, 0x60, 0x44, 0x9b, 0xd9, 0x64, 0xcd, 0x5a, 0x5d, 0xd6, 0x6c, 0x1b, 0x26, 0xe9,
+ 0x4a, 0xbf, 0xb3, 0xc9, 0xdc, 0xb0, 0x9a, 0x6c, 0x61, 0x16, 0x1e, 0x6e, 0x61, 0xaa, 0x57, 0xe6,
+ 0xdb, 0x29, 0x82, 0xb8, 0xa3, 0x09, 0xf4, 0x8a, 0xd4, 0x9c, 0x14, 0x0d, 0x23, 0x2d, 0xae, 0x15,
+ 0x39, 0x3e, 0xac, 0x4c, 0x6a, 0x1f, 0xa2, 0x6b, 0x4a, 0xec, 0x2f, 0xcb, 0x6f, 0x54, 0xaf, 0xf9,
+ 0x0d, 0xb5, 0x58, 0x52, 0xaf, 0xf9, 0x6a, 0x39, 0xe0, 0x04, 0x87, 0xee, 0x51, 0x2a, 0x82, 0xa4,
+ 0x5f, 0xf3, 0xa9, 0x80, 0x82, 0x19, 0xc4, 0x7e, 0x11, 0x60, 0xf9, 0x01, 0x69, 0xf0, 0xa5, 0xae,
+ 0x3f, 0x40, 0x5a, 0xf9, 0x0f, 0x90, 0xf6, 0xbf, 0xb3, 0x60, 0x7c, 0x65, 0xc9, 0x10, 0x13, 0xe7,
+ 0x00, 0xb8, 0x6c, 0xf4, 0xd6, 0x5b, 0xeb, 0x52, 0xb7, 0xce, 0xd5, 0xa3, 0xaa, 0x14, 0x6b, 0x18,
+ 0xe8, 0x22, 0x14, 0xbd, 0xb6, 0x2f, 0x44, 0x96, 0xa1, 0xa3, 0xc3, 0x4a, 0xf1, 0x76, 0xdb, 0xc7,
+ 0xb4, 0x4c, 0xb3, 0x10, 0x2c, 0xf6, 0x6d, 0x21, 0xd8, 0xd3, 0xbd, 0x0a, 0x55, 0x60, 0xe0, 0xfe,
+ 0x7d, 0xb7, 0xc9, 0x8d, 0xd8, 0x85, 0xde, 0xff, 0xad, 0xb7, 0x56, 0xab, 0x11, 0xe6, 0xe5, 0xf6,
+ 0x57, 0x8b, 0x30, 0xbb, 0xe2, 0x91, 0x07, 0x1f, 0xd0, 0x90, 0xbf, 0x5f, 0xfb, 0xc6, 0x93, 0xf1,
+ 0x8b, 0x27, 0xb5, 0x61, 0xed, 0x3d, 0x1e, 0x5b, 0x30, 0xc4, 0x1f, 0xb3, 0xa5, 0x59, 0xff, 0x6b,
+ 0x59, 0xad, 0xe7, 0x0f, 0xc8, 0x1c, 0x7f, 0x14, 0x17, 0xe6, 0xfc, 0xea, 0xa6, 0x15, 0xa5, 0x58,
+ 0x12, 0x9f, 0xfd, 0x0c, 0x8c, 0xea, 0x98, 0x27, 0xb2, 0x26, 0xff, 0x0b, 0x45, 0x98, 0xa4, 0x3d,
+ 0x78, 0xa4, 0x13, 0x71, 0xb7, 0x73, 0x22, 0x4e, 0xdb, 0xa2, 0xb8, 0xf7, 0x6c, 0xbc, 0x93, 0x9e,
+ 0x8d, 0x17, 0xf2, 0x66, 0xe3, 0xac, 0xe7, 0xe0, 0x7b, 0x2d, 0x38, 0xb7, 0xe2, 0x05, 0x8d, 0xdd,
+ 0x94, 0xd5, 0xef, 0xcb, 0x30, 0x42, 0xcf, 0xf1, 0xc8, 0xf0, 0x22, 0x32, 0xfc, 0xca, 0x04, 0x08,
+ 0xeb, 0x78, 0x5a, 0xb5, 0xbb, 0x77, 0x57, 0xab, 0x59, 0xee, 0x68, 0x02, 0x84, 0x75, 0x3c, 0xfb,
+ 0x1b, 0x16, 0x5c, 0xba, 0xb1, 0xb4, 0x9c, 0x2c, 0xc5, 0x0e, 0x8f, 0x38, 0x2a, 0x05, 0x36, 0xb5,
+ 0xae, 0x24, 0x52, 0x60, 0x95, 0xf5, 0x42, 0x40, 0x3f, 0x2a, 0xde, 0x9e, 0x3f, 0x6b, 0xc1, 0xb9,
+ 0x1b, 0x6e, 0x4c, 0xaf, 0xe5, 0xb4, 0x6f, 0x16, 0xbd, 0x97, 0x23, 0x37, 0x0e, 0xc2, 0x83, 0xb4,
+ 0x6f, 0x16, 0x56, 0x10, 0xac, 0x61, 0xf1, 0x96, 0xf7, 0x5d, 0x66, 0x46, 0x55, 0x30, 0x55, 0x51,
+ 0x58, 0x94, 0x63, 0x85, 0x41, 0x3f, 0xac, 0xe9, 0x86, 0x4c, 0x94, 0x38, 0x10, 0x27, 0xac, 0xfa,
+ 0xb0, 0xaa, 0x04, 0xe0, 0x04, 0xc7, 0xfe, 0x09, 0x0b, 0xa6, 0x6f, 0x78, 0xed, 0x28, 0x26, 0xe1,
+ 0x56, 0x64, 0x74, 0xf6, 0x45, 0x28, 0x13, 0x29, 0xae, 0x8b, 0xbe, 0x2a, 0x06, 0x53, 0xc9, 0xf1,
+ 0xdc, 0x31, 0x4c, 0xe1, 0xf5, 0xe1, 0x39, 0x70, 0x32, 0xd7, 0xb1, 0x5f, 0x2c, 0xc0, 0xd8, 0xcd,
+ 0x8d, 0x8d, 0xda, 0x0d, 0x12, 0x8b, 0x5b, 0xac, 0xb7, 0xaa, 0x19, 0x6b, 0x1a, 0xb3, 0x6e, 0x42,
+ 0x51, 0x3b, 0x76, 0xbd, 0x39, 0xee, 0x89, 0x3c, 0xb7, 0xea, 0xc7, 0x77, 0xc2, 0x7a, 0x1c, 0xba,
+ 0xfe, 0x76, 0xa6, 0x8e, 0x4d, 0xde, 0xb5, 0xc5, 0xbc, 0xbb, 0x16, 0xbd, 0x08, 0x83, 0xcc, 0x15,
+ 0x5a, 0x8a, 0x27, 0x8f, 0x2b, 0x99, 0x82, 0x95, 0x1e, 0x1f, 0x56, 0xca, 0x77, 0xf1, 0x2a, 0xff,
+ 0x83, 0x05, 0x2a, 0xba, 0x0b, 0x23, 0x3b, 0x71, 0xdc, 0xba, 0x49, 0x9c, 0x26, 0x09, 0xe5, 0xe9,
+ 0x70, 0x39, 0xeb, 0x74, 0xa0, 0x83, 0xc0, 0xd1, 0x92, 0x0d, 0x95, 0x94, 0x45, 0x58, 0xa7, 0x63,
+ 0xd7, 0x01, 0x12, 0xd8, 0x29, 0xe9, 0x17, 0xec, 0xdf, 0xb7, 0x60, 0x88, 0x7b, 0xa5, 0x85, 0xe8,
+ 0xb3, 0x50, 0x22, 0x0f, 0x48, 0x43, 0x70, 0x8e, 0x99, 0x1d, 0x4e, 0x18, 0x0f, 0xae, 0x2d, 0xa7,
+ 0xff, 0x31, 0xab, 0x85, 0x6e, 0xc2, 0x10, 0xed, 0xed, 0x0d, 0xe5, 0xa2, 0xf7, 0x64, 0xde, 0x17,
+ 0xab, 0x69, 0xe7, 0xbc, 0x8a, 0x28, 0xc2, 0xb2, 0x3a, 0xd3, 0xfc, 0x36, 0x5a, 0x75, 0x7a, 0x80,
+ 0xc5, 0xdd, 0xee, 0xd9, 0x8d, 0xa5, 0x1a, 0x47, 0x12, 0xd4, 0xb8, 0xe6, 0x57, 0x16, 0xe2, 0x84,
+ 0x88, 0xbd, 0x01, 0x65, 0x3a, 0xa9, 0x0b, 0x9e, 0xeb, 0x74, 0x57, 0x3a, 0x3f, 0x0b, 0x65, 0xa9,
+ 0x00, 0x8e, 0x84, 0x63, 0x13, 0xa3, 0x2a, 0xf5, 0xc3, 0x11, 0x4e, 0xe0, 0xf6, 0x16, 0x9c, 0x67,
+ 0x2f, 0xff, 0x4e, 0xbc, 0x63, 0xec, 0xb1, 0xde, 0x8b, 0xf9, 0x39, 0x21, 0x88, 0xf1, 0x99, 0x99,
+ 0xd1, 0x7c, 0x07, 0x46, 0x25, 0xc5, 0x44, 0x28, 0xb3, 0xff, 0xb0, 0x04, 0x8f, 0xaf, 0xd6, 0xf3,
+ 0x1d, 0x16, 0x5f, 0x85, 0x51, 0xce, 0xa6, 0xd1, 0xa5, 0xed, 0x78, 0xa2, 0x5d, 0xf5, 0x2e, 0xb6,
+ 0xa1, 0xc1, 0xb0, 0x81, 0x89, 0x2e, 0x41, 0xd1, 0x7d, 0xcf, 0x4f, 0x9b, 0xe1, 0xae, 0xbe, 0xb9,
+ 0x8e, 0x69, 0x39, 0x05, 0x53, 0x8e, 0x8f, 0x1f, 0xa5, 0x0a, 0xac, 0xb8, 0xbe, 0xd7, 0x61, 0xdc,
+ 0x8d, 0x1a, 0x91, 0xbb, 0xea, 0xd3, 0x73, 0x26, 0x71, 0x76, 0x4d, 0x94, 0x04, 0xb4, 0xd3, 0x0a,
+ 0x8a, 0x53, 0xd8, 0xda, 0xb9, 0x3e, 0xd0, 0x37, 0xd7, 0xd8, 0xd3, 0xd3, 0x87, 0x32, 0xc4, 0x2d,
+ 0xf6, 0x75, 0x11, 0x33, 0x6a, 0x13, 0x0c, 0x31, 0xff, 0xe0, 0x08, 0x4b, 0x18, 0x95, 0xc0, 0x1a,
+ 0x3b, 0x4e, 0x6b, 0xa1, 0x1d, 0xef, 0x54, 0xdd, 0xa8, 0x11, 0xec, 0x93, 0xf0, 0x80, 0x09, 0xcf,
+ 0xc3, 0x89, 0x04, 0xa6, 0x00, 0x4b, 0x37, 0x17, 0x6a, 0x14, 0x13, 0x77, 0xd6, 0x31, 0xb9, 0x42,
+ 0x38, 0x0d, 0xae, 0x70, 0x01, 0x26, 0x64, 0x33, 0x75, 0x12, 0xb1, 0x3b, 0x62, 0x84, 0x75, 0x4c,
+ 0x99, 0xda, 0x8a, 0x62, 0xd5, 0xad, 0x34, 0x3e, 0x7a, 0x05, 0xc6, 0x5c, 0xdf, 0x8d, 0x5d, 0x27,
+ 0x0e, 0x42, 0x76, 0xc3, 0x72, 0x39, 0x99, 0x59, 0xb2, 0xad, 0xea, 0x00, 0x6c, 0xe2, 0xd9, 0x7f,
+ 0x50, 0x82, 0x29, 0x36, 0x6d, 0xdf, 0x5a, 0x61, 0x1f, 0x99, 0x15, 0x76, 0xb7, 0x73, 0x85, 0x9d,
+ 0x06, 0xbb, 0xfb, 0x61, 0x2e, 0xb3, 0x77, 0xa1, 0xac, 0x6c, 0x81, 0xa5, 0x33, 0x80, 0x95, 0xe3,
+ 0x0c, 0xd0, 0x9b, 0xfb, 0x90, 0xcf, 0xb8, 0xc5, 0xcc, 0x67, 0xdc, 0xbf, 0x69, 0x41, 0x62, 0x12,
+ 0x89, 0x6e, 0x42, 0xb9, 0x15, 0x30, 0xb3, 0x83, 0x50, 0xda, 0xf2, 0x3c, 0x9e, 0x79, 0x51, 0xf1,
+ 0x4b, 0x91, 0x8f, 0x5f, 0x4d, 0xd6, 0xc0, 0x49, 0x65, 0xb4, 0x08, 0x43, 0xad, 0x90, 0xd4, 0x63,
+ 0xe6, 0x02, 0xdb, 0x93, 0x0e, 0x5f, 0x23, 0x1c, 0x1f, 0xcb, 0x8a, 0xf6, 0x2f, 0x59, 0x00, 0xfc,
+ 0xa5, 0xd4, 0xf1, 0xb7, 0xc9, 0x19, 0x68, 0x7f, 0xab, 0x50, 0x8a, 0x5a, 0xa4, 0xd1, 0xcd, 0x20,
+ 0x24, 0xe9, 0x4f, 0xbd, 0x45, 0x1a, 0xc9, 0x80, 0xd3, 0x7f, 0x98, 0xd5, 0xb6, 0xbf, 0x0f, 0x60,
+ 0x3c, 0x41, 0x5b, 0x8d, 0xc9, 0x1e, 0x7a, 0xde, 0x70, 0x89, 0xbb, 0x98, 0x72, 0x89, 0x2b, 0x33,
+ 0x6c, 0x4d, 0xd1, 0xf8, 0x2e, 0x14, 0xf7, 0x9c, 0x07, 0x42, 0x93, 0xf4, 0x6c, 0xf7, 0x6e, 0x50,
+ 0xfa, 0x73, 0x6b, 0xce, 0x03, 0x2e, 0x33, 0x3d, 0x2b, 0x17, 0xc8, 0x9a, 0xf3, 0xe0, 0x98, 0x9b,
+ 0x7d, 0xb0, 0x43, 0xea, 0xb6, 0x1b, 0xc5, 0x5f, 0xf9, 0x8f, 0xc9, 0x7f, 0xb6, 0xec, 0x68, 0x23,
+ 0xac, 0x2d, 0xd7, 0x17, 0xef, 0x86, 0x7d, 0xb5, 0xe5, 0xfa, 0xe9, 0xb6, 0x5c, 0xbf, 0x8f, 0xb6,
+ 0x5c, 0x1f, 0xbd, 0x0f, 0x43, 0xe2, 0x8d, 0x9e, 0xd9, 0x7a, 0x9b, 0x5a, 0xaa, 0xbc, 0xf6, 0xc4,
+ 0x13, 0x3f, 0x6f, 0x73, 0x5e, 0xca, 0x84, 0xa2, 0xb4, 0x67, 0xbb, 0xb2, 0x41, 0xf4, 0xd7, 0x2c,
+ 0x18, 0x17, 0xbf, 0x31, 0x79, 0xaf, 0x4d, 0xa2, 0x58, 0xf0, 0x9e, 0x9f, 0xee, 0xbf, 0x0f, 0xa2,
+ 0x22, 0xef, 0xca, 0xa7, 0xe5, 0x31, 0x6b, 0x02, 0x7b, 0xf6, 0x28, 0xd5, 0x0b, 0xf4, 0x0f, 0x2c,
+ 0x38, 0xbf, 0xe7, 0x3c, 0xe0, 0x2d, 0xf2, 0x32, 0xec, 0xc4, 0x6e, 0x20, 0x6c, 0xd7, 0x3f, 0xdb,
+ 0xdf, 0xf4, 0x77, 0x54, 0xe7, 0x9d, 0x94, 0x66, 0xae, 0xe7, 0xb3, 0x50, 0x7a, 0x76, 0x35, 0xb3,
+ 0x5f, 0xb3, 0x5b, 0x30, 0x2c, 0xd7, 0x5b, 0x86, 0xe4, 0x5d, 0xd5, 0x19, 0xeb, 0x13, 0x9b, 0x48,
+ 0xe8, 0x7e, 0x69, 0xb4, 0x1d, 0xb1, 0xd6, 0x1e, 0x69, 0x3b, 0xef, 0xc2, 0xa8, 0xbe, 0xc6, 0x1e,
+ 0x69, 0x5b, 0xef, 0xc1, 0xb9, 0x8c, 0xb5, 0xf4, 0x48, 0x9b, 0xbc, 0x0f, 0x17, 0x73, 0xd7, 0xc7,
+ 0xa3, 0x6c, 0xd8, 0xfe, 0x45, 0x4b, 0x3f, 0x07, 0xcf, 0x40, 0x05, 0xbf, 0x64, 0xaa, 0xe0, 0x2f,
+ 0x77, 0xdf, 0x39, 0x39, 0x7a, 0xf8, 0x77, 0xf4, 0x4e, 0xd3, 0x53, 0x1d, 0xbd, 0x01, 0x83, 0x1e,
+ 0x2d, 0x91, 0xc6, 0x21, 0x76, 0xef, 0x1d, 0x99, 0xf0, 0x52, 0xac, 0x3c, 0xc2, 0x82, 0x82, 0xfd,
+ 0xab, 0x16, 0x94, 0xce, 0x60, 0x24, 0xb0, 0x39, 0x12, 0xcf, 0xe7, 0x92, 0x16, 0x21, 0xcd, 0xe6,
+ 0xb0, 0x73, 0x7f, 0x59, 0x86, 0x6d, 0xcb, 0x19, 0x98, 0xef, 0x82, 0x73, 0xb7, 0x03, 0xa7, 0xb9,
+ 0xe8, 0x78, 0x8e, 0xdf, 0x20, 0xe1, 0xaa, 0xbf, 0xdd, 0xd3, 0x4a, 0x49, 0xb7, 0x29, 0x2a, 0xf4,
+ 0xb2, 0x29, 0xb2, 0x77, 0x00, 0xe9, 0x0d, 0x08, 0x3b, 0x4e, 0x0c, 0x43, 0x2e, 0x6f, 0x4a, 0x0c,
+ 0xff, 0xd3, 0xd9, 0xdc, 0x5d, 0x47, 0xcf, 0x34, 0x0b, 0x45, 0x5e, 0x80, 0x25, 0x21, 0xfb, 0x55,
+ 0xc8, 0xf4, 0xdd, 0xea, 0xad, 0x36, 0xb0, 0x5f, 0x86, 0x29, 0x56, 0xf3, 0x64, 0x22, 0xad, 0xfd,
+ 0x03, 0x16, 0x4c, 0xac, 0xa7, 0x62, 0x53, 0x5c, 0x65, 0x6f, 0x7d, 0x19, 0x7a, 0xdf, 0x3a, 0x2b,
+ 0xc5, 0x02, 0x7a, 0xea, 0xfa, 0xa5, 0x3f, 0xb5, 0x20, 0x71, 0x95, 0x3c, 0x03, 0xa6, 0x6a, 0xc9,
+ 0x60, 0xaa, 0x32, 0xf5, 0x1e, 0xaa, 0x3b, 0x79, 0x3c, 0x15, 0xba, 0xa5, 0xe2, 0x02, 0x74, 0x51,
+ 0x79, 0x24, 0x64, 0xb8, 0x17, 0xf9, 0xb8, 0x19, 0x3c, 0x40, 0x46, 0x0a, 0x60, 0x66, 0x42, 0x0a,
+ 0xf7, 0x23, 0x62, 0x26, 0xa4, 0xfa, 0x93, 0xb3, 0xfb, 0x6a, 0x5a, 0x97, 0xd9, 0xa9, 0xf4, 0xed,
+ 0xcc, 0xec, 0xdb, 0xf1, 0xdc, 0xf7, 0x89, 0x0a, 0x6e, 0x52, 0x11, 0x66, 0xdc, 0xa2, 0xf4, 0xf8,
+ 0xb0, 0x32, 0xa6, 0xfe, 0xf1, 0x08, 0x58, 0x49, 0x15, 0xfb, 0x26, 0x4c, 0xa4, 0x06, 0x0c, 0xbd,
+ 0x0c, 0x03, 0xad, 0x1d, 0x27, 0x22, 0x29, 0xd3, 0xc8, 0x81, 0x1a, 0x2d, 0x3c, 0x3e, 0xac, 0x8c,
+ 0xab, 0x0a, 0xac, 0x04, 0x73, 0x6c, 0xfb, 0x7f, 0x58, 0x50, 0x5a, 0x0f, 0x9a, 0x67, 0xb1, 0x98,
+ 0x5e, 0x37, 0x16, 0xd3, 0x13, 0x79, 0xf1, 0x03, 0x73, 0xd7, 0xd1, 0x4a, 0x6a, 0x1d, 0x5d, 0xce,
+ 0xa5, 0xd0, 0x7d, 0x09, 0xed, 0xc1, 0x08, 0x8b, 0x4a, 0x28, 0x4c, 0x35, 0x5f, 0x34, 0xf8, 0xfb,
+ 0x4a, 0x8a, 0xbf, 0x9f, 0xd0, 0x50, 0x35, 0x2e, 0xff, 0x19, 0x18, 0x12, 0xe6, 0x82, 0x69, 0x03,
+ 0x77, 0x81, 0x8b, 0x25, 0xdc, 0xfe, 0xc9, 0x22, 0x18, 0x51, 0x10, 0xd1, 0xaf, 0x59, 0x30, 0x17,
+ 0x72, 0x8f, 0xc1, 0x66, 0xb5, 0x1d, 0xba, 0xfe, 0x76, 0xbd, 0xb1, 0x43, 0x9a, 0x6d, 0xcf, 0xf5,
+ 0xb7, 0x57, 0xb7, 0xfd, 0x40, 0x15, 0x2f, 0x3f, 0x20, 0x8d, 0x36, 0xd3, 0xf9, 0xf7, 0x08, 0xb9,
+ 0xa8, 0xcc, 0x71, 0xae, 0x1f, 0x1d, 0x56, 0xe6, 0xf0, 0x89, 0x68, 0xe3, 0x13, 0xf6, 0x05, 0x7d,
+ 0xc3, 0x82, 0x79, 0x1e, 0x1c, 0xb0, 0xff, 0xfe, 0x77, 0x91, 0x86, 0x6a, 0x92, 0x54, 0x42, 0x64,
+ 0x83, 0x84, 0x7b, 0x8b, 0xaf, 0x88, 0x01, 0x9d, 0xaf, 0x9d, 0xac, 0x2d, 0x7c, 0xd2, 0xce, 0xd9,
+ 0xff, 0xa2, 0x08, 0x63, 0xc2, 0x59, 0x5d, 0x44, 0x41, 0x79, 0xd9, 0x58, 0x12, 0x4f, 0xa6, 0x96,
+ 0xc4, 0x94, 0x81, 0x7c, 0x3a, 0x01, 0x50, 0x22, 0x98, 0xf2, 0x9c, 0x28, 0xbe, 0x49, 0x9c, 0x30,
+ 0xde, 0x24, 0x0e, 0x37, 0x53, 0x29, 0x9e, 0xd8, 0xa4, 0x46, 0xa9, 0x5f, 0x6e, 0xa7, 0x89, 0xe1,
+ 0x4e, 0xfa, 0x68, 0x1f, 0x10, 0xb3, 0xb5, 0x09, 0x1d, 0x3f, 0xe2, 0xdf, 0xe2, 0x8a, 0xf7, 0x80,
+ 0x93, 0xb5, 0x3a, 0x2b, 0x5a, 0x45, 0xb7, 0x3b, 0xa8, 0xe1, 0x8c, 0x16, 0x34, 0x1b, 0xaa, 0x81,
+ 0x7e, 0x6d, 0xa8, 0x06, 0x7b, 0x78, 0x91, 0xf8, 0x30, 0xd9, 0x11, 0x6f, 0xe0, 0x6d, 0x28, 0x2b,
+ 0x5b, 0x37, 0x71, 0xe8, 0x74, 0x0f, 0xdb, 0x91, 0xa6, 0xc0, 0x55, 0x24, 0x89, 0x9d, 0x65, 0x42,
+ 0xce, 0xfe, 0x87, 0x05, 0xa3, 0x41, 0x3e, 0x89, 0xeb, 0x30, 0xec, 0x44, 0x91, 0xbb, 0xed, 0x93,
+ 0xa6, 0xd8, 0xb1, 0x1f, 0xcf, 0xdb, 0xb1, 0x46, 0x33, 0xcc, 0xde, 0x70, 0x41, 0xd4, 0xc4, 0x8a,
+ 0x06, 0xba, 0xc9, 0x8d, 0x81, 0xf6, 0x25, 0x3f, 0xdf, 0x1f, 0x35, 0x90, 0xe6, 0x42, 0xfb, 0x04,
+ 0x8b, 0xfa, 0xe8, 0x8b, 0xdc, 0x5a, 0xeb, 0x96, 0x1f, 0xdc, 0xf7, 0x6f, 0x04, 0x81, 0xf4, 0x30,
+ 0xeb, 0x8f, 0xe0, 0x94, 0xb4, 0xd1, 0x52, 0xd5, 0xb1, 0x49, 0xad, 0xbf, 0x98, 0x3c, 0xdf, 0x0d,
+ 0xe7, 0x28, 0x69, 0xd3, 0x4f, 0x24, 0x42, 0x04, 0x26, 0x44, 0x24, 0x04, 0x59, 0x26, 0xc6, 0x2e,
+ 0x93, 0x55, 0x37, 0x6b, 0x27, 0x0a, 0xbd, 0x5b, 0x26, 0x09, 0x9c, 0xa6, 0x69, 0xff, 0x8c, 0x05,
+ 0xcc, 0xc2, 0xfd, 0x0c, 0x58, 0x86, 0xcf, 0x99, 0x2c, 0xc3, 0x4c, 0xde, 0x20, 0xe7, 0x70, 0x0b,
+ 0x2f, 0xf1, 0x95, 0x55, 0x0b, 0x83, 0x07, 0x07, 0xe2, 0xa5, 0xbc, 0x0f, 0x2e, 0xf5, 0xff, 0x58,
+ 0xfc, 0x10, 0x53, 0x4e, 0xe7, 0xe8, 0x7b, 0x60, 0xb8, 0xe1, 0xb4, 0x9c, 0x06, 0x0f, 0xd9, 0x9b,
+ 0xab, 0xb1, 0x31, 0x2a, 0xcd, 0x2d, 0x89, 0x1a, 0x5c, 0x03, 0x21, 0x23, 0x6a, 0x0c, 0xcb, 0xe2,
+ 0x9e, 0x5a, 0x07, 0xd5, 0xe4, 0xec, 0x2e, 0x8c, 0x19, 0xc4, 0x1e, 0xa9, 0xb8, 0xfa, 0x3d, 0xfc,
+ 0x8a, 0x55, 0x11, 0x60, 0xf6, 0x60, 0xca, 0xd7, 0xfe, 0xd3, 0x0b, 0x45, 0x8a, 0x20, 0x1f, 0xef,
+ 0x75, 0x89, 0xb2, 0xdb, 0x47, 0xb3, 0xe0, 0x4f, 0x91, 0xc1, 0x9d, 0x94, 0xed, 0x9f, 0xb2, 0xe0,
+ 0x31, 0x1d, 0x51, 0x8b, 0x07, 0xd0, 0x4b, 0x07, 0x5c, 0x85, 0xe1, 0xa0, 0x45, 0x42, 0x27, 0x0e,
+ 0x42, 0x71, 0x6b, 0x5c, 0x93, 0x83, 0x7e, 0x47, 0x94, 0x1f, 0x8b, 0xd8, 0x89, 0x92, 0xba, 0x2c,
+ 0xc7, 0xaa, 0x26, 0xb2, 0x61, 0x90, 0x0d, 0x46, 0x24, 0x62, 0x35, 0xb0, 0x33, 0x80, 0x3d, 0x87,
+ 0x46, 0x58, 0x40, 0xec, 0x3f, 0xb4, 0xf8, 0xc2, 0xd2, 0xbb, 0x8e, 0xde, 0x83, 0xc9, 0x3d, 0x27,
+ 0x6e, 0xec, 0x2c, 0x3f, 0x68, 0x85, 0x5c, 0xf5, 0x2d, 0xc7, 0xe9, 0xd9, 0x5e, 0xe3, 0xa4, 0x7d,
+ 0x64, 0x62, 0x80, 0xb6, 0x96, 0x22, 0x86, 0x3b, 0xc8, 0xa3, 0x4d, 0x18, 0x61, 0x65, 0xcc, 0xd2,
+ 0x39, 0xea, 0xc6, 0x1a, 0xe4, 0xb5, 0xa6, 0x5e, 0x94, 0xd7, 0x12, 0x3a, 0x58, 0x27, 0x6a, 0x7f,
+ 0xa5, 0xc8, 0x77, 0x3b, 0xe3, 0xb6, 0x9f, 0x81, 0xa1, 0x56, 0xd0, 0x5c, 0x5a, 0xad, 0x62, 0x31,
+ 0x0b, 0xea, 0x1a, 0xa9, 0xf1, 0x62, 0x2c, 0xe1, 0xe8, 0x35, 0x00, 0xf2, 0x20, 0x26, 0xa1, 0xef,
+ 0x78, 0xca, 0x20, 0x44, 0x99, 0x40, 0x56, 0x83, 0xf5, 0x20, 0xbe, 0x1b, 0x91, 0xef, 0x5a, 0x56,
+ 0x28, 0x58, 0x43, 0x47, 0xd7, 0x01, 0x5a, 0x61, 0xb0, 0xef, 0x36, 0x99, 0xeb, 0x5c, 0xd1, 0x34,
+ 0x97, 0xa8, 0x29, 0x08, 0xd6, 0xb0, 0xd0, 0x6b, 0x30, 0xd6, 0xf6, 0x23, 0xce, 0xa1, 0x38, 0x9b,
+ 0x22, 0xf2, 0xe0, 0x70, 0x62, 0xb9, 0x70, 0x57, 0x07, 0x62, 0x13, 0x17, 0x2d, 0xc0, 0x60, 0xec,
+ 0x30, 0x7b, 0x87, 0x81, 0x7c, 0xbb, 0xc5, 0x0d, 0x8a, 0xa1, 0x07, 0x8c, 0xa5, 0x15, 0xb0, 0xa8,
+ 0x88, 0xde, 0x96, 0x7e, 0x08, 0xfc, 0xac, 0x17, 0x06, 0xc3, 0xfd, 0xdd, 0x0b, 0x9a, 0x17, 0x82,
+ 0x30, 0x44, 0x36, 0x68, 0xd9, 0xdf, 0x28, 0x03, 0x24, 0xec, 0x38, 0x7a, 0xbf, 0xe3, 0x3c, 0x7a,
+ 0xae, 0x3b, 0x03, 0x7f, 0x7a, 0x87, 0x11, 0xfa, 0x7e, 0x0b, 0x46, 0x1c, 0xcf, 0x0b, 0x1a, 0x4e,
+ 0xcc, 0x46, 0xb9, 0xd0, 0xfd, 0x3c, 0x14, 0xed, 0x2f, 0x24, 0x35, 0x78, 0x17, 0x5e, 0x94, 0x0b,
+ 0x4f, 0x83, 0xf4, 0xec, 0x85, 0xde, 0x30, 0xfa, 0x94, 0x94, 0xd2, 0xf8, 0xf2, 0x98, 0x4d, 0x4b,
+ 0x69, 0x65, 0x76, 0xf4, 0x6b, 0x02, 0x1a, 0xba, 0x6b, 0x04, 0x95, 0x2b, 0xe5, 0xc7, 0x57, 0x30,
+ 0xb8, 0xd2, 0x5e, 0xf1, 0xe4, 0x50, 0x4d, 0x77, 0x9c, 0x1a, 0xc8, 0x0f, 0x42, 0xa2, 0x89, 0x3f,
+ 0x3d, 0x9c, 0xa6, 0xde, 0x85, 0x89, 0xa6, 0x79, 0xb7, 0x8b, 0xd5, 0xf4, 0x74, 0x1e, 0xdd, 0x14,
+ 0x2b, 0x90, 0xdc, 0xe6, 0x29, 0x00, 0x4e, 0x13, 0x46, 0x35, 0xee, 0xc2, 0xb6, 0xea, 0x6f, 0x05,
+ 0xc2, 0xf0, 0xdc, 0xce, 0x9d, 0xcb, 0x83, 0x28, 0x26, 0x7b, 0x14, 0x33, 0xb9, 0xb4, 0xd7, 0x45,
+ 0x5d, 0xac, 0xa8, 0xa0, 0x37, 0x60, 0x90, 0xf9, 0xc0, 0x46, 0x33, 0xc3, 0xf9, 0x8a, 0x42, 0x33,
+ 0x7c, 0x43, 0xb2, 0xa9, 0xd8, 0xdf, 0x08, 0x0b, 0x0a, 0xe8, 0xa6, 0x8c, 0xf1, 0x12, 0xad, 0xfa,
+ 0x77, 0x23, 0xc2, 0x62, 0xbc, 0x94, 0x17, 0x3f, 0x9e, 0x84, 0x6f, 0xe1, 0xe5, 0x99, 0xa1, 0xe1,
+ 0x8d, 0x9a, 0x94, 0x39, 0x12, 0xff, 0x65, 0xc4, 0xf9, 0x19, 0xc8, 0xef, 0x9e, 0x19, 0x95, 0x3e,
+ 0x19, 0xce, 0x7b, 0x26, 0x09, 0x9c, 0xa6, 0x49, 0x19, 0x4d, 0xbe, 0x73, 0x85, 0xe9, 0x7a, 0xaf,
+ 0xfd, 0xcf, 0xe5, 0x6b, 0x76, 0xc9, 0xf0, 0x12, 0x2c, 0xea, 0x9f, 0xe9, 0xad, 0x3f, 0xeb, 0xc3,
+ 0x64, 0x7a, 0x8b, 0x3e, 0x52, 0x2e, 0xe3, 0xf7, 0x4b, 0x30, 0x6e, 0x2e, 0x29, 0x34, 0x0f, 0x65,
+ 0x41, 0x44, 0x05, 0x1c, 0x55, 0xbb, 0x64, 0x4d, 0x02, 0x70, 0x82, 0xc3, 0xe2, 0xcc, 0xb2, 0xea,
+ 0x9a, 0xc9, 0x61, 0x12, 0x67, 0x56, 0x41, 0xb0, 0x86, 0x45, 0xe5, 0xa5, 0xcd, 0x20, 0x88, 0xd5,
+ 0xa5, 0xa2, 0xd6, 0xdd, 0x22, 0x2b, 0xc5, 0x02, 0x4a, 0x2f, 0x93, 0x5d, 0x12, 0xfa, 0xc4, 0x33,
+ 0xe3, 0x98, 0xa9, 0xcb, 0xe4, 0x96, 0x0e, 0xc4, 0x26, 0x2e, 0xbd, 0x25, 0x83, 0x88, 0x2d, 0x64,
+ 0x21, 0x95, 0x25, 0x26, 0x9c, 0x75, 0xee, 0x4d, 0x2e, 0xe1, 0xe8, 0x0b, 0xf0, 0x98, 0x72, 0xfe,
+ 0xc6, 0x5c, 0x09, 0x2d, 0x5b, 0x1c, 0x34, 0x94, 0x28, 0x8f, 0x2d, 0x65, 0xa3, 0xe1, 0xbc, 0xfa,
+ 0xe8, 0x75, 0x18, 0x17, 0x9c, 0xbb, 0xa4, 0x38, 0x64, 0xda, 0x45, 0xdc, 0x32, 0xa0, 0x38, 0x85,
+ 0x2d, 0x23, 0xb1, 0x31, 0xe6, 0x59, 0x52, 0x18, 0xee, 0x8c, 0xc4, 0xa6, 0xc3, 0x71, 0x47, 0x0d,
+ 0xb4, 0x00, 0x13, 0x9c, 0xb5, 0x72, 0xfd, 0x6d, 0x3e, 0x27, 0xc2, 0xb3, 0x44, 0x6d, 0xa9, 0x3b,
+ 0x26, 0x18, 0xa7, 0xf1, 0xd1, 0xab, 0x30, 0xea, 0x84, 0x8d, 0x1d, 0x37, 0x26, 0x8d, 0xb8, 0x1d,
+ 0x72, 0x97, 0x13, 0xcd, 0xb0, 0x64, 0x41, 0x83, 0x61, 0x03, 0xd3, 0x7e, 0x1f, 0xce, 0x65, 0x38,
+ 0xa5, 0xd1, 0x85, 0xe3, 0xb4, 0x5c, 0xf9, 0x4d, 0x29, 0x63, 0xcc, 0x85, 0xda, 0xaa, 0xfc, 0x1a,
+ 0x0d, 0x8b, 0xae, 0x4e, 0xe6, 0xbc, 0xa6, 0x25, 0x98, 0x50, 0xab, 0x73, 0x45, 0x02, 0x70, 0x82,
+ 0x63, 0xff, 0xcf, 0x02, 0x4c, 0x64, 0x28, 0xd6, 0x59, 0x92, 0x83, 0x94, 0xec, 0x91, 0xe4, 0x34,
+ 0x30, 0x03, 0xfb, 0x15, 0x4e, 0x10, 0xd8, 0xaf, 0xd8, 0x2b, 0xb0, 0x5f, 0xe9, 0x83, 0x04, 0xf6,
+ 0x33, 0x47, 0x6c, 0xa0, 0xaf, 0x11, 0xcb, 0x08, 0x06, 0x38, 0x78, 0xc2, 0x60, 0x80, 0xc6, 0xa0,
+ 0x0f, 0xf5, 0x31, 0xe8, 0x3f, 0x5a, 0x80, 0xc9, 0xb4, 0x01, 0xdc, 0x19, 0xa8, 0x63, 0xdf, 0x30,
+ 0xd4, 0xb1, 0xd9, 0x29, 0x43, 0xd2, 0x66, 0x79, 0x79, 0xaa, 0x59, 0x9c, 0x52, 0xcd, 0x7e, 0xb2,
+ 0x2f, 0x6a, 0xdd, 0xd5, 0xb4, 0x7f, 0xbb, 0x00, 0xd3, 0xe9, 0x2a, 0x4b, 0x9e, 0xe3, 0xee, 0x9d,
+ 0xc1, 0xd8, 0xdc, 0x31, 0xc6, 0xe6, 0xf9, 0x7e, 0xbe, 0x86, 0x75, 0x2d, 0x77, 0x80, 0xde, 0x4a,
+ 0x0d, 0xd0, 0x7c, 0xff, 0x24, 0xbb, 0x8f, 0xd2, 0x37, 0x8b, 0x70, 0x39, 0xb3, 0x5e, 0xa2, 0xcd,
+ 0x5c, 0x31, 0xb4, 0x99, 0xd7, 0x53, 0xda, 0x4c, 0xbb, 0x7b, 0xed, 0xd3, 0x51, 0x6f, 0x0a, 0x6f,
+ 0x41, 0x16, 0xfc, 0xed, 0x21, 0x55, 0x9b, 0x86, 0xb7, 0xa0, 0x22, 0x84, 0x4d, 0xba, 0x7f, 0x9e,
+ 0x54, 0x9a, 0xff, 0xda, 0x82, 0x8b, 0x99, 0x73, 0x73, 0x06, 0x2a, 0xac, 0x75, 0x53, 0x85, 0xf5,
+ 0x4c, 0xdf, 0xab, 0x35, 0x47, 0xa7, 0xf5, 0x07, 0xc5, 0x9c, 0x6f, 0x61, 0x02, 0xfa, 0x1d, 0x18,
+ 0x71, 0x1a, 0x0d, 0x12, 0x45, 0x6b, 0x41, 0x53, 0x05, 0x43, 0x7b, 0x9e, 0xc9, 0x59, 0x49, 0xf1,
+ 0xf1, 0x61, 0x65, 0x36, 0x4d, 0x22, 0x01, 0x63, 0x9d, 0x82, 0x19, 0xbf, 0xb1, 0x70, 0xaa, 0xf1,
+ 0x1b, 0xaf, 0x03, 0xec, 0x2b, 0x6e, 0x3d, 0x2d, 0xe4, 0x6b, 0x7c, 0xbc, 0x86, 0x85, 0xbe, 0x08,
+ 0xc3, 0x91, 0xb8, 0xc6, 0xc5, 0x52, 0x7c, 0xb1, 0xcf, 0xb9, 0x72, 0x36, 0x89, 0x67, 0xba, 0xa5,
+ 0x2b, 0x7d, 0x88, 0x22, 0x89, 0xbe, 0x03, 0x26, 0x23, 0x1e, 0xf5, 0x64, 0xc9, 0x73, 0x22, 0xe6,
+ 0xe3, 0x20, 0x56, 0x21, 0xf3, 0x35, 0xaf, 0xa7, 0x60, 0xb8, 0x03, 0x1b, 0xad, 0xc8, 0x8f, 0x62,
+ 0x21, 0x5a, 0xf8, 0xc2, 0xbc, 0x9a, 0x7c, 0x90, 0x48, 0xb1, 0x74, 0x3e, 0x3d, 0xfc, 0x6c, 0xe0,
+ 0xb5, 0x9a, 0xf6, 0x8f, 0x96, 0xe0, 0xf1, 0x2e, 0x87, 0x18, 0x5a, 0x30, 0xdf, 0x28, 0x9f, 0x4d,
+ 0x4b, 0xbf, 0xb3, 0x99, 0x95, 0x0d, 0x71, 0x38, 0xb5, 0x56, 0x0a, 0x1f, 0x78, 0xad, 0xfc, 0x90,
+ 0xa5, 0xe9, 0x25, 0xb8, 0x25, 0xdd, 0xe7, 0x4e, 0x78, 0x38, 0x9f, 0xa2, 0xa2, 0x62, 0x2b, 0x43,
+ 0xda, 0xbf, 0xde, 0x77, 0x77, 0xfa, 0x16, 0xff, 0xcf, 0x56, 0x3b, 0xfb, 0x15, 0x0b, 0x9e, 0xcc,
+ 0xec, 0xaf, 0x61, 0x53, 0x31, 0x0f, 0xe5, 0x06, 0x2d, 0xd4, 0xfc, 0xa6, 0x12, 0x87, 0x52, 0x09,
+ 0xc0, 0x09, 0x8e, 0x61, 0x3a, 0x51, 0xe8, 0x69, 0x3a, 0xf1, 0xcf, 0x2d, 0xe8, 0x58, 0xc0, 0x67,
+ 0x70, 0x92, 0xae, 0x9a, 0x27, 0xe9, 0xc7, 0xfb, 0x99, 0xcb, 0x9c, 0x43, 0xf4, 0x3f, 0x4d, 0xc0,
+ 0x85, 0x1c, 0x47, 0x89, 0x7d, 0x98, 0xda, 0x6e, 0x10, 0xd3, 0x23, 0x4d, 0x7c, 0x4c, 0xa6, 0xf3,
+ 0x5e, 0x57, 0xf7, 0x35, 0x96, 0x1b, 0x67, 0xaa, 0x03, 0x05, 0x77, 0x36, 0x81, 0xbe, 0x62, 0xc1,
+ 0x79, 0xe7, 0x7e, 0xd4, 0x91, 0x01, 0x51, 0xac, 0x99, 0x97, 0x32, 0xb5, 0x14, 0x3d, 0x32, 0x26,
+ 0xf2, 0x64, 0x41, 0x59, 0x58, 0x38, 0xb3, 0x2d, 0x84, 0x45, 0xfc, 0x4a, 0xca, 0x6f, 0x77, 0xf1,
+ 0x99, 0xcc, 0xf2, 0x68, 0xe1, 0x67, 0xaa, 0x84, 0x60, 0x45, 0x07, 0xdd, 0x83, 0xf2, 0xb6, 0x74,
+ 0x33, 0x13, 0x67, 0x76, 0xe6, 0x25, 0x98, 0xe9, 0x8b, 0xc6, 0xdf, 0x0d, 0x15, 0x08, 0x27, 0xa4,
+ 0xd0, 0xeb, 0x50, 0xf4, 0xb7, 0xa2, 0x6e, 0x59, 0x76, 0x52, 0xa6, 0x46, 0xdc, 0x1f, 0x79, 0x7d,
+ 0xa5, 0x8e, 0x69, 0x45, 0x74, 0x13, 0x8a, 0xe1, 0x66, 0x53, 0x28, 0xd6, 0x32, 0xf9, 0x52, 0xbc,
+ 0x58, 0xcd, 0x5e, 0x24, 0x9c, 0x12, 0x5e, 0xac, 0x62, 0x4a, 0x02, 0xd5, 0x60, 0x80, 0xf9, 0x14,
+ 0x08, 0xfd, 0x59, 0x26, 0x43, 0xda, 0xc5, 0x37, 0x87, 0x3b, 0x2d, 0x33, 0x04, 0xcc, 0x09, 0xa1,
+ 0x0d, 0x18, 0x6c, 0xb0, 0x8c, 0x2c, 0x22, 0x64, 0xf2, 0xa7, 0x32, 0x55, 0x68, 0x5d, 0x52, 0xd5,
+ 0x08, 0x8d, 0x12, 0xc3, 0xc0, 0x82, 0x16, 0xa3, 0x4a, 0x5a, 0x3b, 0x5b, 0x11, 0x13, 0xc1, 0xf3,
+ 0xa8, 0x76, 0xc9, 0xc0, 0x24, 0xa8, 0x32, 0x0c, 0x2c, 0x68, 0xa1, 0xcf, 0x40, 0x61, 0xab, 0x21,
+ 0x5c, 0x0e, 0x32, 0x75, 0x69, 0xa6, 0x4b, 0xf9, 0xe2, 0xe0, 0xd1, 0x61, 0xa5, 0xb0, 0xb2, 0x84,
+ 0x0b, 0x5b, 0x0d, 0xb4, 0x0e, 0x43, 0x5b, 0xdc, 0x09, 0x55, 0xa8, 0xcb, 0x9e, 0xce, 0xf6, 0x8f,
+ 0xed, 0xf0, 0x53, 0xe5, 0xa6, 0xf2, 0x02, 0x80, 0x25, 0x11, 0x16, 0x04, 0x52, 0x39, 0xd3, 0x8a,
+ 0x68, 0xc8, 0x73, 0x27, 0x73, 0x80, 0xe6, 0xee, 0xed, 0x89, 0x4b, 0x2e, 0xd6, 0x28, 0xa2, 0x2f,
+ 0x43, 0xd9, 0x91, 0xb9, 0xf7, 0x44, 0xb4, 0x88, 0x17, 0x33, 0x37, 0x66, 0xf7, 0xb4, 0x84, 0x7c,
+ 0x55, 0x2b, 0x24, 0x9c, 0x10, 0x45, 0xbb, 0x30, 0xb6, 0x1f, 0xb5, 0x76, 0x88, 0xdc, 0xc8, 0x2c,
+ 0x78, 0x44, 0xce, 0xc5, 0x75, 0x4f, 0x20, 0xba, 0x61, 0xdc, 0x76, 0xbc, 0x8e, 0xb3, 0x87, 0x3d,
+ 0x36, 0xdf, 0xd3, 0x89, 0x61, 0x93, 0x36, 0x1d, 0xfe, 0xf7, 0xda, 0xc1, 0xe6, 0x41, 0x4c, 0x44,
+ 0xf8, 0xe4, 0xcc, 0xe1, 0x7f, 0x93, 0xa3, 0x74, 0x0e, 0xbf, 0x00, 0x60, 0x49, 0x84, 0x6e, 0x75,
+ 0x47, 0xe6, 0xb5, 0x64, 0x61, 0x93, 0x73, 0xb6, 0x7a, 0x66, 0xf2, 0x4b, 0x6d, 0x50, 0xd8, 0x19,
+ 0x99, 0x90, 0x62, 0x67, 0x63, 0x6b, 0x27, 0x88, 0x03, 0x3f, 0x75, 0x2e, 0x4f, 0xe5, 0x9f, 0x8d,
+ 0xb5, 0x0c, 0xfc, 0xce, 0xb3, 0x31, 0x0b, 0x0b, 0x67, 0xb6, 0x85, 0x9a, 0x30, 0xde, 0x0a, 0xc2,
+ 0xf8, 0x7e, 0x10, 0xca, 0xf5, 0x85, 0xba, 0x88, 0xfb, 0x06, 0xa6, 0x68, 0x91, 0x85, 0xf3, 0x36,
+ 0x21, 0x38, 0x45, 0x13, 0x7d, 0x1e, 0x86, 0xa2, 0x86, 0xe3, 0x91, 0xd5, 0x3b, 0x33, 0xe7, 0xf2,
+ 0x2f, 0x9d, 0x3a, 0x47, 0xc9, 0x59, 0x5d, 0x6c, 0x72, 0x04, 0x0a, 0x96, 0xe4, 0xd0, 0x0a, 0x0c,
+ 0xb0, 0x98, 0xfc, 0x2c, 0xf2, 0x73, 0x4e, 0x54, 0xa2, 0x0e, 0xa3, 0x4e, 0x7e, 0x36, 0xb1, 0x62,
+ 0xcc, 0xab, 0xd3, 0x3d, 0x20, 0xb8, 0xde, 0x20, 0x9a, 0x99, 0xce, 0xdf, 0x03, 0x82, 0x59, 0xbe,
+ 0x53, 0xef, 0xb6, 0x07, 0x14, 0x12, 0x4e, 0x88, 0xd2, 0x93, 0x99, 0x9e, 0xa6, 0x17, 0xba, 0xd8,
+ 0x99, 0xe4, 0x9e, 0xa5, 0xec, 0x64, 0xa6, 0x27, 0x29, 0x25, 0x61, 0xff, 0xee, 0x50, 0x27, 0xa7,
+ 0xc2, 0xe4, 0xa4, 0xbf, 0x68, 0x75, 0x3c, 0xa1, 0x7d, 0xba, 0x5f, 0xb5, 0xcd, 0x29, 0xf2, 0xa8,
+ 0x5f, 0xb1, 0xe0, 0x42, 0x2b, 0xf3, 0x43, 0xc4, 0xb5, 0xdf, 0x9f, 0xf6, 0x87, 0x7f, 0xba, 0x8a,
+ 0xce, 0x9e, 0x0d, 0xc7, 0x39, 0x2d, 0xa5, 0xe5, 0x80, 0xe2, 0x07, 0x96, 0x03, 0xd6, 0x60, 0x98,
+ 0xb1, 0x96, 0x3d, 0x32, 0x94, 0xa5, 0xbd, 0xd0, 0x18, 0x03, 0xb1, 0x24, 0x2a, 0x62, 0x45, 0x02,
+ 0xfd, 0xb0, 0x05, 0x97, 0xd2, 0x5d, 0xc7, 0x84, 0x81, 0x45, 0x2c, 0x73, 0x2e, 0xa2, 0xad, 0x88,
+ 0xef, 0xbf, 0x54, 0xeb, 0x86, 0x7c, 0xdc, 0x0b, 0x01, 0x77, 0x6f, 0x0c, 0x55, 0x33, 0x64, 0xc4,
+ 0x41, 0x53, 0x2f, 0xde, 0x87, 0x9c, 0xf8, 0x12, 0x8c, 0xee, 0x05, 0x6d, 0x3f, 0x16, 0x66, 0x29,
+ 0xc2, 0x49, 0x90, 0xbd, 0x03, 0xaf, 0x69, 0xe5, 0xd8, 0xc0, 0x4a, 0x49, 0x97, 0xc3, 0x0f, 0x2b,
+ 0x5d, 0xa2, 0x77, 0x52, 0x79, 0xa8, 0xcb, 0xf9, 0x31, 0xf3, 0x84, 0x20, 0x7e, 0x82, 0x6c, 0xd4,
+ 0x67, 0x2b, 0x11, 0xfd, 0x9c, 0x95, 0xc1, 0xca, 0x73, 0x19, 0xf9, 0xb3, 0xa6, 0x8c, 0x7c, 0x35,
+ 0x2d, 0x23, 0x77, 0xe8, 0x44, 0x0d, 0xf1, 0xb8, 0xff, 0xc0, 0xcb, 0xfd, 0x46, 0x32, 0xb3, 0x3d,
+ 0xb8, 0xd2, 0xeb, 0x5a, 0x62, 0xf6, 0x49, 0x4d, 0xf5, 0x02, 0x96, 0xd8, 0x27, 0x35, 0x57, 0xab,
+ 0x98, 0x41, 0xfa, 0x0d, 0x75, 0x61, 0xff, 0x57, 0x0b, 0x8a, 0xb5, 0xa0, 0x79, 0x06, 0x3a, 0xde,
+ 0xcf, 0x19, 0x3a, 0xde, 0xc7, 0x73, 0xf2, 0x83, 0xe7, 0x6a, 0x74, 0x97, 0x53, 0x1a, 0xdd, 0x4b,
+ 0x79, 0x04, 0xba, 0xeb, 0x6f, 0x7f, 0xba, 0x08, 0x7a, 0x36, 0x73, 0xf4, 0x2f, 0x1f, 0xc6, 0x38,
+ 0xb8, 0xd8, 0x2d, 0xc1, 0xb9, 0xa0, 0xcc, 0xcc, 0x9a, 0xa4, 0xdf, 0xdb, 0x9f, 0x31, 0x1b, 0xe1,
+ 0xb7, 0x88, 0xbb, 0xbd, 0x13, 0x93, 0x66, 0xfa, 0x73, 0xce, 0xce, 0x46, 0xf8, 0x3f, 0x5b, 0x30,
+ 0x91, 0x6a, 0x1d, 0x79, 0x30, 0xe6, 0xe9, 0x0a, 0x3a, 0xb1, 0x4e, 0x1f, 0x4a, 0xb7, 0x27, 0x6c,
+ 0x2c, 0xb5, 0x22, 0x6c, 0x12, 0x47, 0x73, 0x00, 0xea, 0x01, 0x4d, 0xea, 0xbd, 0x18, 0xd7, 0xaf,
+ 0x5e, 0xd8, 0x22, 0xac, 0x61, 0xa0, 0x97, 0x61, 0x24, 0x0e, 0x5a, 0x81, 0x17, 0x6c, 0x1f, 0xdc,
+ 0x22, 0x32, 0xb8, 0x8a, 0xb2, 0x9c, 0xda, 0x48, 0x40, 0x58, 0xc7, 0xb3, 0x7f, 0xb6, 0x08, 0xe9,
+ 0x0c, 0xf8, 0xdf, 0x5a, 0x93, 0x1f, 0xcd, 0x35, 0xf9, 0x4d, 0x0b, 0x26, 0x69, 0xeb, 0xcc, 0x8a,
+ 0x43, 0x5e, 0xb6, 0x2a, 0x01, 0x8c, 0xd5, 0x25, 0x01, 0xcc, 0x55, 0x7a, 0x76, 0x35, 0x83, 0x76,
+ 0x2c, 0xf4, 0x66, 0xda, 0xe1, 0x44, 0x4b, 0xb1, 0x80, 0x0a, 0x3c, 0x12, 0x86, 0xc2, 0x35, 0x49,
+ 0xc7, 0x23, 0x61, 0x88, 0x05, 0x54, 0xe6, 0x87, 0x29, 0xe5, 0xe4, 0x87, 0x61, 0xa1, 0xe2, 0xc4,
+ 0x7b, 0xbf, 0x60, 0x7b, 0xb4, 0x50, 0x71, 0xd2, 0x10, 0x20, 0xc1, 0xb1, 0x7f, 0xb1, 0x08, 0xa3,
+ 0xb5, 0xa0, 0x99, 0x3c, 0x61, 0xbd, 0x64, 0x3c, 0x61, 0x5d, 0x49, 0x3d, 0x61, 0x4d, 0xea, 0xb8,
+ 0xdf, 0x7a, 0xb0, 0xfa, 0xb0, 0x1e, 0xac, 0xfe, 0x99, 0xc5, 0x66, 0xad, 0xba, 0x5e, 0x17, 0xf9,
+ 0x69, 0x5f, 0x80, 0x11, 0x76, 0x20, 0x31, 0x5f, 0x38, 0xf9, 0xae, 0xc3, 0x42, 0xbf, 0xaf, 0x27,
+ 0xc5, 0x58, 0xc7, 0x41, 0xd7, 0x60, 0x38, 0x22, 0x4e, 0xd8, 0xd8, 0x51, 0x67, 0x9c, 0x78, 0xf5,
+ 0xe0, 0x65, 0x58, 0x41, 0xd1, 0x9b, 0x49, 0x94, 0xb2, 0x62, 0x7e, 0xa6, 0x55, 0xbd, 0x3f, 0x7c,
+ 0x8b, 0xe4, 0x87, 0x26, 0xb3, 0xdf, 0x02, 0xd4, 0x89, 0xdf, 0x47, 0x3c, 0xa2, 0x8a, 0x19, 0x8f,
+ 0xa8, 0xdc, 0x11, 0x8b, 0xe8, 0x4f, 0x2c, 0x18, 0xaf, 0x05, 0x4d, 0xba, 0x75, 0xff, 0x3c, 0xed,
+ 0x53, 0x3d, 0x44, 0xe3, 0x60, 0x97, 0x10, 0x8d, 0x7f, 0xc7, 0x82, 0xa1, 0x5a, 0xd0, 0x3c, 0x03,
+ 0x6d, 0xfb, 0x67, 0x4d, 0x6d, 0xfb, 0x63, 0x39, 0x4b, 0x22, 0x47, 0xc1, 0xfe, 0xcb, 0x45, 0x18,
+ 0xa3, 0xfd, 0x0c, 0xb6, 0xe5, 0x2c, 0x19, 0x23, 0x62, 0xf5, 0x31, 0x22, 0x94, 0xcd, 0x0d, 0x3c,
+ 0x2f, 0xb8, 0x9f, 0x9e, 0xb1, 0x15, 0x56, 0x8a, 0x05, 0x14, 0x3d, 0x07, 0xc3, 0xad, 0x90, 0xec,
+ 0xbb, 0x81, 0xe0, 0x1f, 0xb5, 0xb7, 0x8b, 0x9a, 0x28, 0xc7, 0x0a, 0x83, 0xca, 0x5d, 0x91, 0xeb,
+ 0x37, 0x88, 0x4c, 0xf3, 0x5c, 0x62, 0x99, 0xa0, 0x78, 0xec, 0x65, 0xad, 0x1c, 0x1b, 0x58, 0xe8,
+ 0x2d, 0x28, 0xb3, 0xff, 0xec, 0x44, 0x39, 0x79, 0xe6, 0x1a, 0x91, 0xf0, 0x40, 0x10, 0xc0, 0x09,
+ 0x2d, 0x74, 0x1d, 0x20, 0x96, 0xf1, 0x79, 0x23, 0x11, 0x56, 0x46, 0xf1, 0xda, 0x2a, 0x72, 0x6f,
+ 0x84, 0x35, 0x2c, 0xf4, 0x2c, 0x94, 0x63, 0xc7, 0xf5, 0x6e, 0xbb, 0x3e, 0x89, 0x98, 0xca, 0xb9,
+ 0x28, 0xf3, 0x19, 0x88, 0x42, 0x9c, 0xc0, 0x29, 0xaf, 0xc3, 0x7c, 0xae, 0x79, 0xde, 0xab, 0x61,
+ 0x86, 0xcd, 0x78, 0x9d, 0xdb, 0xaa, 0x14, 0x6b, 0x18, 0xf6, 0xab, 0x30, 0x5d, 0x0b, 0x9a, 0xb5,
+ 0x20, 0x8c, 0x57, 0x82, 0xf0, 0xbe, 0x13, 0x36, 0xe5, 0xfc, 0x55, 0x64, 0x68, 0x7d, 0x7a, 0xf6,
+ 0x0c, 0xf0, 0x9d, 0x69, 0x04, 0xcd, 0x7f, 0x91, 0x71, 0x3b, 0x27, 0xf4, 0xb5, 0x68, 0xb0, 0x7b,
+ 0x57, 0xa5, 0xb8, 0xbb, 0xe1, 0xc4, 0x04, 0xdd, 0x61, 0x69, 0xb1, 0x92, 0x2b, 0x48, 0x54, 0x7f,
+ 0x46, 0x4b, 0x8b, 0x95, 0x00, 0x33, 0xef, 0x2c, 0xb3, 0xbe, 0xfd, 0xbf, 0x0b, 0xec, 0x34, 0x4a,
+ 0x65, 0x7c, 0x43, 0x5f, 0x82, 0xf1, 0x88, 0xdc, 0x76, 0xfd, 0xf6, 0x03, 0x29, 0x84, 0x77, 0xf1,
+ 0x96, 0xa9, 0x2f, 0xeb, 0x98, 0x5c, 0x95, 0x67, 0x96, 0xe1, 0x14, 0x35, 0x3a, 0x4f, 0x61, 0xdb,
+ 0x5f, 0x88, 0xee, 0x46, 0x24, 0x14, 0x19, 0xc7, 0xd8, 0x3c, 0x61, 0x59, 0x88, 0x13, 0x38, 0x5d,
+ 0x97, 0xec, 0xcf, 0x7a, 0xe0, 0xe3, 0x20, 0x88, 0xe5, 0x4a, 0x66, 0x39, 0x6b, 0xb4, 0x72, 0x6c,
+ 0x60, 0xa1, 0x15, 0x40, 0x51, 0xbb, 0xd5, 0xf2, 0xd8, 0x7b, 0xbb, 0xe3, 0xdd, 0x08, 0x83, 0x76,
+ 0x8b, 0xbf, 0x75, 0x16, 0x17, 0x2f, 0xd0, 0x2b, 0xac, 0xde, 0x01, 0xc5, 0x19, 0x35, 0xe8, 0xe9,
+ 0xb3, 0x15, 0xb1, 0xdf, 0x6c, 0x75, 0x17, 0x85, 0x7a, 0xbd, 0xce, 0x8a, 0xb0, 0x84, 0xd1, 0xc5,
+ 0xc4, 0x9a, 0xe7, 0x98, 0x83, 0xc9, 0x62, 0xc2, 0xaa, 0x14, 0x6b, 0x18, 0xf6, 0xf7, 0xb0, 0x5b,
+ 0x8c, 0x25, 0x96, 0x8a, 0xdb, 0x21, 0x41, 0x7b, 0x30, 0xd6, 0x62, 0x73, 0x25, 0xc2, 0x1e, 0x8b,
+ 0x01, 0x7f, 0xa9, 0x4f, 0x71, 0xf4, 0x3e, 0x3d, 0x21, 0x94, 0xba, 0x88, 0xf1, 0xf9, 0x35, 0x9d,
+ 0x1c, 0x36, 0xa9, 0xdb, 0x3f, 0x38, 0xc5, 0x0e, 0xcb, 0x3a, 0x97, 0x31, 0x87, 0x84, 0xa9, 0xae,
+ 0x60, 0xa8, 0x67, 0xf3, 0x95, 0x1d, 0xc9, 0xbd, 0x26, 0xcc, 0x7d, 0xb1, 0xac, 0x8b, 0xde, 0x64,
+ 0x8f, 0xca, 0xfc, 0x84, 0xea, 0x95, 0xdf, 0x97, 0x63, 0x19, 0xef, 0xc7, 0xa2, 0x22, 0xd6, 0x88,
+ 0xa0, 0xdb, 0x30, 0x26, 0xf2, 0x10, 0x09, 0x6d, 0x56, 0xd1, 0xd0, 0x56, 0x8c, 0x61, 0x1d, 0x78,
+ 0x9c, 0x2e, 0xc0, 0x66, 0x65, 0xb4, 0x0d, 0x97, 0xb4, 0xa4, 0x7c, 0x37, 0x42, 0x87, 0x3d, 0x34,
+ 0xba, 0x6c, 0xf5, 0x6b, 0x07, 0xde, 0x93, 0x47, 0x87, 0x95, 0x4b, 0x1b, 0xdd, 0x10, 0x71, 0x77,
+ 0x3a, 0xe8, 0x0e, 0x4c, 0x73, 0x8f, 0xb8, 0x2a, 0x71, 0x9a, 0x9e, 0xeb, 0xab, 0x13, 0x95, 0x2f,
+ 0xa0, 0x8b, 0x47, 0x87, 0x95, 0xe9, 0x85, 0x2c, 0x04, 0x9c, 0x5d, 0x0f, 0x7d, 0x16, 0xca, 0x4d,
+ 0x3f, 0x12, 0x63, 0x30, 0x68, 0xe4, 0x9b, 0x2c, 0x57, 0xd7, 0xeb, 0xea, 0xfb, 0x93, 0x3f, 0x38,
+ 0xa9, 0x80, 0xb6, 0xb9, 0x46, 0x4b, 0x09, 0x90, 0x43, 0xf9, 0xb9, 0xc5, 0xc5, 0x92, 0x30, 0x7c,
+ 0x62, 0xb8, 0x2a, 0x57, 0xd9, 0x94, 0x1a, 0xee, 0x32, 0x06, 0x61, 0xf4, 0x06, 0x20, 0xca, 0x61,
+ 0xb9, 0x0d, 0xb2, 0xd0, 0x60, 0xd1, 0xa7, 0x99, 0x02, 0x70, 0xd8, 0xf0, 0x41, 0x40, 0xf5, 0x0e,
+ 0x0c, 0x9c, 0x51, 0x0b, 0xdd, 0xa4, 0x27, 0x90, 0x5e, 0x2a, 0x6c, 0x63, 0x25, 0x57, 0x3e, 0x53,
+ 0x25, 0xad, 0x90, 0x34, 0x9c, 0x98, 0x34, 0x4d, 0x8a, 0x38, 0x55, 0x8f, 0x5e, 0x82, 0x2a, 0x11,
+ 0x0d, 0x98, 0x21, 0x26, 0x3a, 0x93, 0xd1, 0x50, 0x81, 0x76, 0x27, 0x88, 0xe2, 0x75, 0x12, 0xdf,
+ 0x0f, 0xc2, 0x5d, 0x11, 0xd1, 0x2b, 0x09, 0x2e, 0x99, 0x80, 0xb0, 0x8e, 0x47, 0x19, 0x58, 0xf6,
+ 0xaa, 0xbb, 0x5a, 0x65, 0x4f, 0x6b, 0xc3, 0xc9, 0x3e, 0xb9, 0xc9, 0x8b, 0xb1, 0x84, 0x4b, 0xd4,
+ 0xd5, 0xda, 0x12, 0x7b, 0x26, 0x4b, 0xa1, 0xae, 0xd6, 0x96, 0xb0, 0x84, 0x23, 0xd2, 0x99, 0xcb,
+ 0x73, 0x3c, 0x5f, 0x1d, 0xd9, 0x79, 0x8e, 0xf7, 0x99, 0xce, 0xd3, 0x87, 0x49, 0x95, 0x45, 0x94,
+ 0x87, 0x3a, 0x8b, 0x66, 0x26, 0xd8, 0x22, 0xe9, 0x3f, 0x4e, 0x9a, 0x52, 0xf0, 0xae, 0xa6, 0x28,
+ 0xe1, 0x0e, 0xda, 0x46, 0xd0, 0x8f, 0xc9, 0x9e, 0x89, 0x84, 0xe6, 0xa1, 0x1c, 0xb5, 0x37, 0x9b,
+ 0xc1, 0x9e, 0xe3, 0xfa, 0xec, 0x55, 0x4b, 0xe3, 0x8e, 0xea, 0x12, 0x80, 0x13, 0x1c, 0xb4, 0x02,
+ 0xc3, 0x8e, 0xd4, 0xde, 0xa2, 0xfc, 0x28, 0x00, 0x4a, 0x67, 0xcb, 0x1d, 0x63, 0xa5, 0xbe, 0x56,
+ 0xd5, 0x45, 0xaf, 0xc1, 0x98, 0xf0, 0x83, 0xe2, 0xb1, 0x11, 0xd8, 0xab, 0x93, 0x66, 0xe8, 0x5e,
+ 0xd7, 0x81, 0xd8, 0xc4, 0x45, 0x5f, 0x84, 0x71, 0x4a, 0x25, 0x39, 0xd8, 0x66, 0xce, 0xf7, 0x73,
+ 0x22, 0x6a, 0x09, 0x22, 0xf4, 0xca, 0x38, 0x45, 0x0c, 0x35, 0xe1, 0x09, 0xa7, 0x1d, 0x07, 0x4c,
+ 0x03, 0x6e, 0xae, 0xff, 0x8d, 0x60, 0x97, 0xf8, 0xec, 0xf1, 0x69, 0x78, 0xf1, 0xca, 0xd1, 0x61,
+ 0xe5, 0x89, 0x85, 0x2e, 0x78, 0xb8, 0x2b, 0x15, 0x74, 0x17, 0x46, 0xe2, 0xc0, 0x63, 0x26, 0xe7,
+ 0x94, 0x07, 0xb8, 0x90, 0x1f, 0x34, 0x67, 0x43, 0xa1, 0xe9, 0xda, 0x1f, 0x55, 0x15, 0xeb, 0x74,
+ 0xd0, 0x06, 0xdf, 0x63, 0x2c, 0x9c, 0x28, 0x89, 0x66, 0x1e, 0xcb, 0x1f, 0x18, 0x15, 0x75, 0xd4,
+ 0xdc, 0x82, 0xa2, 0x26, 0xd6, 0xc9, 0xa0, 0x1b, 0x30, 0xd5, 0x0a, 0xdd, 0x80, 0x2d, 0x6c, 0xf5,
+ 0xfa, 0x30, 0x63, 0xe6, 0x04, 0xa8, 0xa5, 0x11, 0x70, 0x67, 0x1d, 0x2a, 0x1d, 0xca, 0xc2, 0x99,
+ 0x8b, 0x3c, 0xc1, 0x14, 0xe7, 0x98, 0x79, 0x19, 0x56, 0x50, 0xb4, 0xc6, 0xce, 0x65, 0x2e, 0xc7,
+ 0xcd, 0xcc, 0xe6, 0x47, 0x4f, 0xd0, 0xe5, 0x3d, 0xce, 0xe8, 0xa8, 0xbf, 0x38, 0xa1, 0x40, 0xef,
+ 0x8d, 0x68, 0xc7, 0x09, 0x49, 0x2d, 0x0c, 0x1a, 0x84, 0x77, 0x86, 0x5b, 0xbb, 0x3f, 0xce, 0xa3,
+ 0x1e, 0xd2, 0x7b, 0xa3, 0x9e, 0x85, 0x80, 0xb3, 0xeb, 0xa1, 0xa6, 0x96, 0x57, 0x99, 0xf2, 0x8f,
+ 0xd1, 0xcc, 0x13, 0x5d, 0xec, 0x83, 0x52, 0xcc, 0x66, 0xb2, 0x16, 0x8d, 0xe2, 0x08, 0xa7, 0x68,
+ 0xce, 0x7e, 0x3b, 0x4c, 0x75, 0xdc, 0x17, 0x27, 0x0a, 0xb8, 0xfd, 0xc7, 0x03, 0x50, 0x56, 0x3a,
+ 0x6c, 0x34, 0x6f, 0x3e, 0x4d, 0x5c, 0x4c, 0x3f, 0x4d, 0x0c, 0x53, 0x56, 0x5a, 0x7f, 0x8d, 0xd8,
+ 0x30, 0xac, 0xd9, 0x0a, 0xf9, 0xe9, 0xad, 0x74, 0x66, 0xb8, 0xa7, 0xeb, 0x9a, 0xa6, 0x92, 0x28,
+ 0xf6, 0xfd, 0xc6, 0x51, 0xea, 0xaa, 0xe5, 0xe8, 0x33, 0xbb, 0x2c, 0x95, 0xda, 0x5b, 0x41, 0x73,
+ 0xb5, 0x96, 0x4e, 0xb7, 0x58, 0xa3, 0x85, 0x98, 0xc3, 0x98, 0xdc, 0x45, 0x99, 0x1b, 0x26, 0x77,
+ 0x0d, 0x3d, 0xa4, 0xdc, 0x25, 0x09, 0xe0, 0x84, 0x16, 0xf2, 0x60, 0xaa, 0x61, 0x66, 0xca, 0x54,
+ 0xee, 0x6a, 0x4f, 0xf5, 0xcc, 0x59, 0xd9, 0xd6, 0xd2, 0x92, 0x2d, 0xa5, 0xa9, 0xe0, 0x4e, 0xc2,
+ 0xe8, 0x35, 0x18, 0x7e, 0x2f, 0x88, 0xd8, 0xe6, 0x13, 0x37, 0xbc, 0x74, 0xeb, 0x19, 0x7e, 0xf3,
+ 0x4e, 0x9d, 0x95, 0x1f, 0x1f, 0x56, 0x46, 0x6a, 0x41, 0x53, 0xfe, 0xc5, 0xaa, 0x02, 0x7a, 0x00,
+ 0xd3, 0xc6, 0xb9, 0xa8, 0xba, 0x0b, 0xfd, 0x77, 0xf7, 0x92, 0x68, 0x6e, 0x7a, 0x35, 0x8b, 0x12,
+ 0xce, 0x6e, 0x80, 0x1e, 0x36, 0x7e, 0x20, 0xb2, 0xcc, 0x4a, 0x2e, 0x82, 0x31, 0x0b, 0x65, 0xdd,
+ 0xa9, 0x3b, 0x85, 0x80, 0x3b, 0xeb, 0xd8, 0x5f, 0xe3, 0x2a, 0x7f, 0xa1, 0x18, 0x24, 0x51, 0xdb,
+ 0x3b, 0x8b, 0x24, 0x46, 0xcb, 0x86, 0xce, 0xf2, 0xa1, 0x9f, 0x95, 0x7e, 0xc3, 0x62, 0xcf, 0x4a,
+ 0x1b, 0x64, 0xaf, 0xe5, 0x51, 0xf1, 0xf4, 0xd1, 0x77, 0xfc, 0x4d, 0x18, 0x8e, 0x45, 0x6b, 0xdd,
+ 0xf2, 0x2e, 0x69, 0x9d, 0x62, 0x4f, 0x6b, 0x8a, 0xbf, 0x90, 0xa5, 0x58, 0x91, 0xb1, 0xff, 0x31,
+ 0x9f, 0x01, 0x09, 0x39, 0x03, 0xfd, 0x51, 0xd5, 0xd4, 0x1f, 0x55, 0x7a, 0x7c, 0x41, 0x8e, 0x1e,
+ 0xe9, 0x1f, 0x99, 0xfd, 0x66, 0xa2, 0xdc, 0x47, 0xfd, 0x3d, 0xd3, 0xfe, 0x31, 0x0b, 0xce, 0x67,
+ 0x19, 0x00, 0x51, 0x9e, 0x90, 0x0b, 0x92, 0xea, 0x7d, 0x57, 0x8d, 0xe0, 0x3d, 0x51, 0x8e, 0x15,
+ 0x46, 0xdf, 0x29, 0x0d, 0x4e, 0x16, 0xf7, 0xec, 0x0e, 0x8c, 0xd5, 0x42, 0xa2, 0xdd, 0x01, 0xaf,
+ 0x73, 0xff, 0x30, 0xde, 0x9f, 0xe7, 0x4e, 0xec, 0x1b, 0x66, 0xff, 0x7c, 0x01, 0xce, 0xf3, 0x07,
+ 0x9a, 0x85, 0xfd, 0xc0, 0x6d, 0xd6, 0x82, 0xa6, 0x48, 0x47, 0xf1, 0x36, 0x8c, 0xb6, 0x34, 0xe9,
+ 0xbf, 0x5b, 0xe4, 0x25, 0x5d, 0x4b, 0x90, 0x48, 0x61, 0x7a, 0x29, 0x36, 0x68, 0xa1, 0x26, 0x8c,
+ 0x92, 0x7d, 0xb7, 0xa1, 0xb4, 0xfc, 0x85, 0x13, 0xdf, 0x0d, 0xaa, 0x95, 0x65, 0x8d, 0x0e, 0x36,
+ 0xa8, 0x3e, 0x82, 0x0c, 0x65, 0xf6, 0x8f, 0x5b, 0xf0, 0x58, 0x4e, 0x9c, 0x26, 0xda, 0xdc, 0x7d,
+ 0xf6, 0x14, 0x26, 0x92, 0x1d, 0xa9, 0xe6, 0xf8, 0x03, 0x19, 0x16, 0x50, 0xf4, 0x79, 0x00, 0xfe,
+ 0xc0, 0x45, 0x85, 0x92, 0x5e, 0x01, 0x6d, 0x8c, 0x58, 0x1c, 0x5a, 0x0c, 0x05, 0x59, 0x1f, 0x6b,
+ 0xb4, 0xec, 0x9f, 0x29, 0xc2, 0x00, 0x7b, 0x50, 0x41, 0x2b, 0x30, 0xb4, 0xc3, 0xa3, 0x12, 0xf7,
+ 0x13, 0x00, 0x39, 0x91, 0xee, 0x78, 0x01, 0x96, 0x95, 0xd1, 0x1a, 0x9c, 0xe3, 0x51, 0x9d, 0xbd,
+ 0x2a, 0xf1, 0x9c, 0x03, 0xa9, 0x24, 0xe0, 0x09, 0x82, 0x54, 0x3c, 0x88, 0xd5, 0x4e, 0x14, 0x9c,
+ 0x55, 0x0f, 0xbd, 0x0e, 0xe3, 0xb1, 0xbb, 0x47, 0x82, 0x76, 0x2c, 0x29, 0xf1, 0x78, 0xce, 0x8a,
+ 0x8d, 0xdb, 0x30, 0xa0, 0x38, 0x85, 0x4d, 0xc5, 0x9d, 0x56, 0x87, 0x3a, 0x44, 0x4b, 0xb9, 0x6f,
+ 0xaa, 0x40, 0x4c, 0x5c, 0x66, 0xf9, 0xd3, 0x66, 0x76, 0x4e, 0x1b, 0x3b, 0x21, 0x89, 0x76, 0x02,
+ 0xaf, 0x29, 0xf2, 0x4b, 0x27, 0x96, 0x3f, 0x29, 0x38, 0xee, 0xa8, 0x41, 0xa9, 0x6c, 0x39, 0xae,
+ 0xd7, 0x0e, 0x49, 0x42, 0x65, 0xd0, 0xa4, 0xb2, 0x92, 0x82, 0xe3, 0x8e, 0x1a, 0x74, 0x1d, 0x4d,
+ 0x8b, 0x84, 0xcf, 0xd2, 0x4b, 0x5d, 0x99, 0x73, 0x0d, 0x49, 0x7f, 0x9d, 0x2e, 0x61, 0x5a, 0x84,
+ 0xc1, 0x8b, 0x4a, 0x19, 0xad, 0xa5, 0x13, 0x15, 0x9e, 0x3a, 0x92, 0xca, 0xc3, 0xa4, 0x1d, 0xfe,
+ 0x5d, 0x0b, 0xce, 0x65, 0x98, 0x8d, 0xf2, 0xa3, 0x6a, 0xdb, 0x8d, 0x62, 0x95, 0x04, 0x45, 0x3b,
+ 0xaa, 0x78, 0x39, 0x56, 0x18, 0x74, 0x3f, 0xf0, 0xc3, 0x30, 0x7d, 0x00, 0x0a, 0xb3, 0x2c, 0x01,
+ 0x3d, 0xd9, 0x01, 0x88, 0xae, 0x40, 0xa9, 0x1d, 0x11, 0x19, 0x60, 0x49, 0x9d, 0xdf, 0x4c, 0x21,
+ 0xcb, 0x20, 0x94, 0x35, 0xdd, 0x56, 0xba, 0x50, 0x8d, 0x35, 0xe5, 0x0a, 0x4e, 0x0e, 0xb3, 0xbf,
+ 0x5a, 0x84, 0x8b, 0xb9, 0x06, 0xe2, 0xb4, 0x4b, 0x7b, 0x81, 0xef, 0xc6, 0x81, 0x7a, 0xac, 0xe3,
+ 0x21, 0x3e, 0x48, 0x6b, 0x67, 0x4d, 0x94, 0x63, 0x85, 0x81, 0xae, 0xca, 0xd4, 0xe3, 0xe9, 0x34,
+ 0x2f, 0x8b, 0x55, 0x23, 0xfb, 0x78, 0xbf, 0x29, 0xb4, 0x9e, 0x82, 0x52, 0x2b, 0x08, 0xbc, 0xf4,
+ 0x61, 0x44, 0xbb, 0x1b, 0x04, 0x1e, 0x66, 0x40, 0xf4, 0x09, 0x31, 0x0e, 0xa9, 0xd7, 0x29, 0xec,
+ 0x34, 0x83, 0x48, 0x1b, 0x8c, 0x67, 0x60, 0x68, 0x97, 0x1c, 0x84, 0xae, 0xbf, 0x9d, 0x7e, 0xb5,
+ 0xbc, 0xc5, 0x8b, 0xb1, 0x84, 0x9b, 0x59, 0x0e, 0x86, 0x4e, 0x3b, 0xf7, 0xd5, 0x70, 0xcf, 0xab,
+ 0xed, 0x87, 0x8a, 0x30, 0x81, 0x17, 0xab, 0xdf, 0x9a, 0x88, 0xbb, 0x9d, 0x13, 0x71, 0xda, 0xb9,
+ 0xaf, 0x7a, 0xcf, 0xc6, 0x2f, 0x5b, 0x30, 0xc1, 0x22, 0x01, 0x8b, 0xc0, 0x12, 0x6e, 0xe0, 0x9f,
+ 0x01, 0xeb, 0xf6, 0x14, 0x0c, 0x84, 0xb4, 0xd1, 0x74, 0x42, 0x1b, 0xd6, 0x13, 0xcc, 0x61, 0xe8,
+ 0x09, 0x28, 0xb1, 0x2e, 0xd0, 0xc9, 0x1b, 0xe5, 0xb9, 0x00, 0xaa, 0x4e, 0xec, 0x60, 0x56, 0xca,
+ 0xbc, 0xa5, 0x31, 0x69, 0x79, 0x2e, 0xef, 0x74, 0xf2, 0xa0, 0xf0, 0xd1, 0xf0, 0x96, 0xce, 0xec,
+ 0xda, 0x07, 0xf3, 0x96, 0xce, 0x26, 0xd9, 0x5d, 0x2c, 0xfa, 0x6f, 0x05, 0xb8, 0x9c, 0x59, 0xaf,
+ 0x6f, 0x6f, 0xe9, 0xee, 0xb5, 0x4f, 0xc7, 0xf8, 0x24, 0xdb, 0x26, 0xa4, 0x78, 0x86, 0x36, 0x21,
+ 0xa5, 0x7e, 0x39, 0xc7, 0x81, 0x3e, 0x9c, 0x98, 0x33, 0x87, 0xec, 0x23, 0xe2, 0xc4, 0x9c, 0xd9,
+ 0xb7, 0x1c, 0xb1, 0xee, 0x4f, 0x0b, 0x39, 0xdf, 0xc2, 0x04, 0xbc, 0x6b, 0xf4, 0x9c, 0x61, 0xc0,
+ 0x48, 0x70, 0xc2, 0xa3, 0xfc, 0x8c, 0xe1, 0x65, 0x58, 0x41, 0x91, 0xab, 0xb9, 0x03, 0x17, 0xf2,
+ 0xd3, 0x1d, 0xe6, 0x36, 0x35, 0x67, 0xbe, 0xff, 0xa8, 0x21, 0xc8, 0x70, 0x0d, 0x5e, 0xd3, 0x84,
+ 0xf2, 0x62, 0xff, 0x42, 0xf9, 0x68, 0xb6, 0x40, 0x8e, 0x16, 0x60, 0x62, 0xcf, 0xf5, 0x59, 0xfa,
+ 0x7a, 0x93, 0x15, 0x55, 0xd1, 0x31, 0xd6, 0x4c, 0x30, 0x4e, 0xe3, 0xcf, 0xbe, 0x06, 0x63, 0x0f,
+ 0xaf, 0x8e, 0xfc, 0x66, 0x11, 0x1e, 0xef, 0xb2, 0xed, 0xf9, 0x59, 0x6f, 0xcc, 0x81, 0x76, 0xd6,
+ 0x77, 0xcc, 0x43, 0x0d, 0xce, 0x6f, 0xb5, 0x3d, 0xef, 0x80, 0x99, 0x5d, 0x92, 0xa6, 0xc4, 0x10,
+ 0xbc, 0xe2, 0x13, 0x32, 0xfb, 0xc2, 0x4a, 0x06, 0x0e, 0xce, 0xac, 0x89, 0xde, 0x00, 0x14, 0x88,
+ 0x5c, 0xab, 0x37, 0x88, 0x2f, 0xb4, 0xea, 0x6c, 0xe0, 0x8b, 0xc9, 0x66, 0xbc, 0xd3, 0x81, 0x81,
+ 0x33, 0x6a, 0x51, 0xa6, 0x9f, 0xde, 0x4a, 0x07, 0xaa, 0x5b, 0x29, 0xa6, 0x1f, 0xeb, 0x40, 0x6c,
+ 0xe2, 0xa2, 0x1b, 0x30, 0xe5, 0xec, 0x3b, 0x2e, 0x8f, 0x1a, 0x27, 0x09, 0x70, 0xae, 0x5f, 0x29,
+ 0xc1, 0x16, 0xd2, 0x08, 0xb8, 0xb3, 0x4e, 0xca, 0x1f, 0x79, 0x30, 0xdf, 0x1f, 0xb9, 0xfb, 0xb9,
+ 0xd8, 0x4b, 0xa7, 0x6b, 0xff, 0x07, 0x8b, 0x5e, 0x5f, 0x19, 0xf9, 0xd2, 0xe9, 0x38, 0x28, 0xdd,
+ 0xa4, 0xe6, 0x1a, 0x3c, 0xad, 0x19, 0x56, 0x24, 0x40, 0x6c, 0xe2, 0xf2, 0x05, 0x11, 0x25, 0xbe,
+ 0x29, 0x06, 0xeb, 0x2e, 0x7c, 0xff, 0x15, 0x06, 0xfa, 0x02, 0x0c, 0x35, 0xdd, 0x7d, 0x37, 0x0a,
+ 0x42, 0xb1, 0x59, 0x4e, 0x68, 0xe1, 0x9f, 0x9c, 0x83, 0x55, 0x4e, 0x06, 0x4b, 0x7a, 0xf6, 0x0f,
+ 0x15, 0x60, 0x4c, 0xb6, 0xf8, 0x66, 0x3b, 0x88, 0x9d, 0x33, 0xb8, 0x96, 0x6f, 0x18, 0xd7, 0xf2,
+ 0x27, 0xba, 0x05, 0x40, 0x60, 0x5d, 0xca, 0xbd, 0x8e, 0xef, 0xa4, 0xae, 0xe3, 0xa7, 0x7b, 0x93,
+ 0xea, 0x7e, 0x0d, 0xff, 0x13, 0x0b, 0xa6, 0x0c, 0xfc, 0x33, 0xb8, 0x0d, 0x56, 0xcc, 0xdb, 0xe0,
+ 0xc9, 0x9e, 0xdf, 0x90, 0x73, 0x0b, 0x7c, 0x5f, 0x31, 0xd5, 0x77, 0x76, 0xfa, 0xbf, 0x07, 0xa5,
+ 0x1d, 0x27, 0x6c, 0x76, 0x0b, 0xb4, 0xda, 0x51, 0x69, 0xee, 0xa6, 0x13, 0x36, 0xf9, 0x19, 0xfe,
+ 0x9c, 0xca, 0xd0, 0xe8, 0x84, 0xcd, 0x9e, 0xae, 0x58, 0xac, 0x29, 0xf4, 0x2a, 0x0c, 0x46, 0x8d,
+ 0xa0, 0xa5, 0x0c, 0x25, 0xaf, 0xf0, 0xec, 0x8d, 0xb4, 0xe4, 0xf8, 0xb0, 0x82, 0xcc, 0xe6, 0x68,
+ 0x31, 0x16, 0xf8, 0xe8, 0x6d, 0x18, 0x63, 0xbf, 0x94, 0xdd, 0x41, 0x31, 0x3f, 0xbc, 0x7f, 0x5d,
+ 0x47, 0xe4, 0xe6, 0x2b, 0x46, 0x11, 0x36, 0x49, 0xcd, 0x6e, 0x43, 0x59, 0x7d, 0xd6, 0x23, 0x75,
+ 0xa1, 0xf9, 0xb7, 0x45, 0x38, 0x97, 0xb1, 0xe6, 0x50, 0x64, 0xcc, 0xc4, 0x0b, 0x7d, 0x2e, 0xd5,
+ 0x0f, 0x38, 0x17, 0x11, 0x93, 0x86, 0x9a, 0x62, 0x6d, 0xf5, 0xdd, 0xe8, 0xdd, 0x88, 0xa4, 0x1b,
+ 0xa5, 0x45, 0xbd, 0x1b, 0xa5, 0x8d, 0x9d, 0xd9, 0x50, 0xd3, 0x86, 0x54, 0x4f, 0x1f, 0xe9, 0x9c,
+ 0xfe, 0x51, 0x11, 0xce, 0x67, 0xc5, 0x64, 0x41, 0xdf, 0x9d, 0x4a, 0xe3, 0xf2, 0x52, 0xbf, 0xd1,
+ 0x5c, 0x78, 0x6e, 0x17, 0x91, 0x94, 0x78, 0xce, 0x4c, 0xec, 0xd2, 0x73, 0x98, 0x45, 0x9b, 0xcc,
+ 0xef, 0x32, 0xe4, 0xe9, 0x77, 0xe4, 0xf1, 0xf1, 0xe9, 0xbe, 0x3b, 0x20, 0xf2, 0xf6, 0x44, 0x29,
+ 0xbf, 0x4b, 0x59, 0xdc, 0xdb, 0xef, 0x52, 0xb6, 0x3c, 0xeb, 0xc2, 0x88, 0xf6, 0x35, 0x8f, 0x74,
+ 0xc6, 0x77, 0xe9, 0x6d, 0xa5, 0xf5, 0xfb, 0x91, 0xce, 0xfa, 0x8f, 0x5b, 0x90, 0xb2, 0x4a, 0x54,
+ 0xea, 0x2e, 0x2b, 0x57, 0xdd, 0x75, 0x05, 0x4a, 0x61, 0xe0, 0x91, 0x74, 0x66, 0x15, 0x1c, 0x78,
+ 0x04, 0x33, 0x08, 0xc5, 0x88, 0x13, 0x65, 0xc7, 0xa8, 0x2e, 0xc8, 0x09, 0x11, 0xed, 0x29, 0x18,
+ 0xf0, 0xc8, 0x3e, 0xf1, 0xd2, 0x61, 0xcb, 0x6f, 0xd3, 0x42, 0xcc, 0x61, 0xf6, 0x2f, 0x97, 0xe0,
+ 0x52, 0x57, 0xcf, 0x65, 0x2a, 0x0e, 0x6d, 0x3b, 0x31, 0xb9, 0xef, 0x1c, 0xa4, 0xe3, 0x0b, 0xdf,
+ 0xe0, 0xc5, 0x58, 0xc2, 0x99, 0xa1, 0x36, 0x8f, 0x27, 0x98, 0x52, 0x0e, 0x8a, 0x30, 0x82, 0x02,
+ 0xfa, 0x08, 0x12, 0xb2, 0x5f, 0x07, 0x88, 0x22, 0x6f, 0xd9, 0xa7, 0xdc, 0x5d, 0x53, 0x58, 0x80,
+ 0x27, 0x71, 0x27, 0xeb, 0xb7, 0x05, 0x04, 0x6b, 0x58, 0xa8, 0x0a, 0x93, 0xad, 0x30, 0x88, 0xb9,
+ 0xae, 0xb5, 0xca, 0xcd, 0x7c, 0x06, 0x4c, 0xa7, 0xd1, 0x5a, 0x0a, 0x8e, 0x3b, 0x6a, 0xa0, 0x97,
+ 0x61, 0x44, 0x38, 0x92, 0xd6, 0x82, 0xc0, 0x13, 0x6a, 0x20, 0x65, 0x34, 0x52, 0x4f, 0x40, 0x58,
+ 0xc7, 0xd3, 0xaa, 0x31, 0x05, 0xee, 0x50, 0x66, 0x35, 0xae, 0xc4, 0xd5, 0xf0, 0x52, 0xf1, 0x99,
+ 0x86, 0xfb, 0x8a, 0xcf, 0x94, 0x28, 0xc6, 0xca, 0x7d, 0xbf, 0x59, 0x41, 0x4f, 0x55, 0xd2, 0x2f,
+ 0x94, 0xe0, 0x9c, 0x58, 0x38, 0x8f, 0x7a, 0xb9, 0x3c, 0xa2, 0xb4, 0xf1, 0xdf, 0x5a, 0x33, 0x67,
+ 0xbd, 0x66, 0x7e, 0xd8, 0x02, 0x93, 0xbd, 0x42, 0xff, 0x5f, 0x6e, 0x80, 0xf6, 0x97, 0x73, 0xd9,
+ 0xb5, 0xa6, 0xbc, 0x40, 0x3e, 0x60, 0xa8, 0x76, 0xfb, 0xdf, 0x5b, 0xf0, 0x64, 0x4f, 0x8a, 0x68,
+ 0x19, 0xca, 0x8c, 0x07, 0xd4, 0xa4, 0xb3, 0xa7, 0x95, 0x19, 0xa0, 0x04, 0xe4, 0xb0, 0xa4, 0x49,
+ 0x4d, 0xb4, 0xdc, 0x11, 0x09, 0xff, 0x99, 0x8c, 0x48, 0xf8, 0xd3, 0xc6, 0xf0, 0x3c, 0x64, 0x28,
+ 0xfc, 0xaf, 0x15, 0x61, 0x90, 0xaf, 0xf8, 0x33, 0x10, 0xc3, 0x56, 0x84, 0xde, 0xb6, 0x4b, 0x00,
+ 0x28, 0xde, 0x97, 0xb9, 0xaa, 0x13, 0x3b, 0x9c, 0x4d, 0x50, 0xb7, 0x55, 0xa2, 0xe1, 0x45, 0x73,
+ 0xc6, 0x7d, 0x36, 0x9b, 0x52, 0x4c, 0x02, 0xa7, 0xa1, 0xdd, 0x6e, 0x5f, 0x02, 0x88, 0x58, 0x86,
+ 0x78, 0x4a, 0x43, 0x84, 0x12, 0xfb, 0x64, 0x97, 0xd6, 0xeb, 0x0a, 0x99, 0xf7, 0x21, 0xd9, 0xe9,
+ 0x0a, 0x80, 0x35, 0x8a, 0xb3, 0xaf, 0x40, 0x59, 0x21, 0xf7, 0xd2, 0xe2, 0x8c, 0xea, 0xcc, 0xc5,
+ 0xe7, 0x60, 0x22, 0xd5, 0xd6, 0x89, 0x94, 0x40, 0xbf, 0x62, 0xc1, 0x04, 0xef, 0xf2, 0xb2, 0xbf,
+ 0x2f, 0xce, 0xd4, 0xf7, 0xe1, 0xbc, 0x97, 0x71, 0xb6, 0x89, 0x19, 0xed, 0xff, 0x2c, 0x54, 0x4a,
+ 0x9f, 0x2c, 0x28, 0xce, 0x6c, 0x03, 0x5d, 0xa3, 0xeb, 0x96, 0x9e, 0x5d, 0x8e, 0x27, 0x9c, 0x7e,
+ 0x46, 0xf9, 0x9a, 0xe5, 0x65, 0x58, 0x41, 0xed, 0xdf, 0xb6, 0x60, 0x8a, 0xf7, 0xfc, 0x16, 0x39,
+ 0x50, 0x3b, 0xfc, 0xc3, 0xec, 0xbb, 0x48, 0x4e, 0x51, 0xc8, 0x49, 0x4e, 0xa1, 0x7f, 0x5a, 0xb1,
+ 0xeb, 0xa7, 0xfd, 0xbc, 0x05, 0x62, 0x05, 0x9e, 0x81, 0x28, 0xff, 0xed, 0xa6, 0x28, 0x3f, 0x9b,
+ 0xbf, 0xa8, 0x73, 0x64, 0xf8, 0x3f, 0xb1, 0x60, 0x92, 0x23, 0x24, 0x6f, 0xc9, 0x1f, 0xea, 0x3c,
+ 0xf4, 0x93, 0x65, 0x4e, 0xa5, 0x95, 0xce, 0xfe, 0x28, 0x63, 0xb2, 0x4a, 0x5d, 0x27, 0xab, 0x29,
+ 0x37, 0xd0, 0x09, 0xb2, 0x27, 0x9e, 0x38, 0xc8, 0xb3, 0xfd, 0x87, 0x16, 0x20, 0xde, 0x8c, 0xc1,
+ 0xfe, 0x50, 0xa6, 0x82, 0x95, 0x6a, 0xd7, 0x45, 0x72, 0xd4, 0x28, 0x08, 0xd6, 0xb0, 0x4e, 0x65,
+ 0x78, 0x52, 0x06, 0x01, 0xc5, 0xde, 0x06, 0x01, 0x27, 0x18, 0xd1, 0xaf, 0x95, 0x20, 0x6d, 0xcc,
+ 0x8f, 0xee, 0xc1, 0x68, 0xc3, 0x69, 0x39, 0x9b, 0xae, 0xe7, 0xc6, 0x2e, 0x89, 0xba, 0x59, 0x12,
+ 0x2d, 0x69, 0x78, 0xe2, 0xa9, 0x57, 0x2b, 0xc1, 0x06, 0x1d, 0x34, 0x07, 0xd0, 0x0a, 0xdd, 0x7d,
+ 0xd7, 0x23, 0xdb, 0x4c, 0xe3, 0xc0, 0xdc, 0x0c, 0xb9, 0x79, 0x8c, 0x2c, 0xc5, 0x1a, 0x46, 0x86,
+ 0xc7, 0x58, 0xf1, 0xd1, 0x79, 0x8c, 0x95, 0x4e, 0xe8, 0x31, 0x36, 0xd0, 0x97, 0xc7, 0x18, 0x86,
+ 0x0b, 0x92, 0x45, 0xa2, 0xff, 0x57, 0x5c, 0x8f, 0x08, 0xbe, 0x98, 0x3b, 0x1f, 0xce, 0x1e, 0x1d,
+ 0x56, 0x2e, 0xe0, 0x4c, 0x0c, 0x9c, 0x53, 0x13, 0x7d, 0x1e, 0x66, 0x1c, 0xcf, 0x0b, 0xee, 0xab,
+ 0x51, 0x5b, 0x8e, 0x1a, 0x8e, 0xc7, 0x35, 0xf6, 0x43, 0x8c, 0xea, 0x13, 0x47, 0x87, 0x95, 0x99,
+ 0x85, 0x1c, 0x1c, 0x9c, 0x5b, 0x3b, 0xe5, 0x70, 0x36, 0xdc, 0xd3, 0xe1, 0x6c, 0x17, 0xce, 0xd5,
+ 0x49, 0xe8, 0xb2, 0xdc, 0x8e, 0xcd, 0x64, 0x4b, 0x6e, 0x40, 0x39, 0x4c, 0x1d, 0x42, 0x7d, 0x45,
+ 0x24, 0xd2, 0xe2, 0xd7, 0xca, 0x43, 0x27, 0x21, 0x64, 0xff, 0xb1, 0x05, 0x43, 0xc2, 0xa1, 0xe0,
+ 0x0c, 0x78, 0x9f, 0x05, 0x43, 0x05, 0x5d, 0xc9, 0x3e, 0xa8, 0x59, 0x67, 0x72, 0x95, 0xcf, 0xab,
+ 0x29, 0xe5, 0xf3, 0x93, 0xdd, 0x88, 0x74, 0x57, 0x3b, 0xff, 0x8d, 0x22, 0x8c, 0x9b, 0xce, 0x14,
+ 0x67, 0x30, 0x04, 0xeb, 0x30, 0x14, 0x09, 0xcf, 0x9d, 0x42, 0xbe, 0xed, 0x73, 0x7a, 0x12, 0x13,
+ 0xc3, 0x26, 0xe1, 0xab, 0x23, 0x89, 0x64, 0xba, 0x04, 0x15, 0x1f, 0xa1, 0x4b, 0x50, 0x2f, 0x7f,
+ 0x96, 0xd2, 0x69, 0xf8, 0xb3, 0xd8, 0x5f, 0x67, 0x97, 0x85, 0x5e, 0x7e, 0x06, 0x7c, 0xc4, 0x0d,
+ 0xf3, 0x5a, 0xb1, 0xbb, 0xac, 0x2c, 0xd1, 0xa9, 0x1c, 0x7e, 0xe2, 0x97, 0x2c, 0xb8, 0x94, 0xf1,
+ 0x55, 0x1a, 0x73, 0xf1, 0x1c, 0x0c, 0x3b, 0xed, 0xa6, 0xab, 0xf6, 0xb2, 0xf6, 0x10, 0xb5, 0x20,
+ 0xca, 0xb1, 0xc2, 0x40, 0x4b, 0x30, 0x45, 0x1e, 0xb4, 0x5c, 0xfe, 0x12, 0xa8, 0x5b, 0x1f, 0x16,
+ 0x79, 0x6c, 0xd6, 0xe5, 0x34, 0x10, 0x77, 0xe2, 0x2b, 0x3f, 0xe6, 0x62, 0xae, 0x1f, 0xf3, 0xdf,
+ 0xb7, 0x60, 0x44, 0x74, 0xfb, 0x0c, 0x46, 0xfb, 0x3b, 0xcc, 0xd1, 0x7e, 0xbc, 0xcb, 0x68, 0xe7,
+ 0x0c, 0xf3, 0xdf, 0x2a, 0xa8, 0xfe, 0xd6, 0x82, 0x30, 0xee, 0x83, 0x69, 0x79, 0x15, 0x86, 0x5b,
+ 0x61, 0x10, 0x07, 0x8d, 0xc0, 0x13, 0x3c, 0xcb, 0x13, 0x89, 0x9b, 0x3d, 0x2f, 0x3f, 0xd6, 0x7e,
+ 0x63, 0x85, 0xcd, 0x46, 0x2f, 0x08, 0x63, 0xc1, 0x27, 0x24, 0xa3, 0x17, 0x84, 0x31, 0x66, 0x10,
+ 0xd4, 0x04, 0x88, 0x9d, 0x70, 0x9b, 0xc4, 0xb4, 0x4c, 0x44, 0xec, 0xc8, 0x3f, 0x3c, 0xda, 0xb1,
+ 0xeb, 0xcd, 0xb9, 0x7e, 0x1c, 0xc5, 0xe1, 0xdc, 0xaa, 0x1f, 0xdf, 0x09, 0xb9, 0x08, 0xa4, 0xf9,
+ 0xcd, 0x2b, 0x5a, 0x58, 0xa3, 0x2b, 0x7d, 0x24, 0x59, 0x1b, 0x03, 0xe6, 0x93, 0xf6, 0xba, 0x28,
+ 0xc7, 0x0a, 0xc3, 0x7e, 0x85, 0x5d, 0x25, 0x6c, 0x80, 0x4e, 0xe6, 0xd2, 0xfe, 0x8d, 0x61, 0x35,
+ 0xb4, 0xec, 0x3d, 0xab, 0xaa, 0x3b, 0xce, 0x77, 0x3f, 0xb9, 0x69, 0xc3, 0xba, 0x27, 0x4c, 0xe2,
+ 0x5d, 0x8f, 0xbe, 0xb3, 0xc3, 0xd2, 0xe1, 0xf9, 0x1e, 0x57, 0xc0, 0x09, 0x6c, 0x1b, 0x58, 0xbc,
+ 0x68, 0x16, 0x57, 0x77, 0xb5, 0x26, 0x16, 0xb9, 0x16, 0x2f, 0x5a, 0x00, 0x70, 0x82, 0x83, 0xe6,
+ 0x85, 0x00, 0x5d, 0x32, 0xd2, 0xba, 0x49, 0x01, 0x5a, 0x7e, 0xbe, 0x26, 0x41, 0xbf, 0x00, 0x23,
+ 0x2a, 0xbd, 0x5b, 0x8d, 0x67, 0xc9, 0x12, 0xf1, 0x4b, 0x96, 0x93, 0x62, 0xac, 0xe3, 0xa0, 0x0d,
+ 0x98, 0x88, 0xb8, 0xf6, 0x44, 0x85, 0xa9, 0xe3, 0x5a, 0xa8, 0x4f, 0x4a, 0x0b, 0x89, 0xba, 0x09,
+ 0x3e, 0x66, 0x45, 0xfc, 0xe8, 0x90, 0x8e, 0x8e, 0x69, 0x12, 0xe8, 0x75, 0x18, 0xf7, 0xf4, 0x24,
+ 0xe9, 0x35, 0xa1, 0xa4, 0x52, 0x06, 0xc4, 0x46, 0x0a, 0xf5, 0x1a, 0x4e, 0x61, 0x53, 0x5e, 0x47,
+ 0x2f, 0x11, 0xa1, 0x15, 0x1d, 0x7f, 0x9b, 0x44, 0x22, 0x39, 0x15, 0xe3, 0x75, 0x6e, 0xe7, 0xe0,
+ 0xe0, 0xdc, 0xda, 0xe8, 0x55, 0x18, 0x95, 0x9f, 0xaf, 0xb9, 0xf1, 0x26, 0x66, 0xea, 0x1a, 0x0c,
+ 0x1b, 0x98, 0xe8, 0x3e, 0x4c, 0xcb, 0xff, 0x1b, 0xa1, 0xb3, 0xb5, 0xe5, 0x36, 0x84, 0x17, 0x35,
+ 0xf7, 0xd5, 0x59, 0x90, 0xce, 0x3f, 0xcb, 0x59, 0x48, 0xc7, 0x87, 0x95, 0x2b, 0x62, 0xd4, 0x32,
+ 0xe1, 0x6c, 0x12, 0xb3, 0xe9, 0xa3, 0x35, 0x38, 0xb7, 0x43, 0x1c, 0x2f, 0xde, 0x59, 0xda, 0x21,
+ 0x8d, 0x5d, 0xb9, 0x89, 0x98, 0x73, 0xb0, 0x66, 0xdc, 0x7d, 0xb3, 0x13, 0x05, 0x67, 0xd5, 0x43,
+ 0xef, 0xc0, 0x4c, 0xab, 0xbd, 0xe9, 0xb9, 0xd1, 0xce, 0x7a, 0x10, 0x33, 0xa3, 0x0c, 0x95, 0x1d,
+ 0x4d, 0x78, 0x11, 0x2b, 0xc7, 0xe8, 0x5a, 0x0e, 0x1e, 0xce, 0xa5, 0x80, 0xde, 0x87, 0xe9, 0xd4,
+ 0x62, 0x10, 0x3e, 0x8d, 0xe3, 0xf9, 0x81, 0x6a, 0xeb, 0x59, 0x15, 0x84, 0x8f, 0x62, 0x16, 0x08,
+ 0x67, 0x37, 0xf1, 0xc1, 0x4c, 0x75, 0xde, 0xa3, 0x95, 0x35, 0xa6, 0x0c, 0x7d, 0x19, 0x46, 0xf5,
+ 0x55, 0x24, 0x2e, 0x98, 0xab, 0xd9, 0x3c, 0x8b, 0xb6, 0xda, 0x38, 0x4b, 0xa7, 0x56, 0x94, 0x0e,
+ 0xc3, 0x06, 0x45, 0x9b, 0x40, 0xf6, 0xf7, 0xa1, 0xdb, 0x30, 0xdc, 0xf0, 0x5c, 0xe2, 0xc7, 0xab,
+ 0xb5, 0x6e, 0xd1, 0x32, 0x96, 0x04, 0x8e, 0x18, 0x30, 0x11, 0xd9, 0x93, 0x97, 0x61, 0x45, 0xc1,
+ 0xfe, 0xf5, 0x02, 0x54, 0x7a, 0x84, 0x89, 0x4d, 0x69, 0x94, 0xad, 0xbe, 0x34, 0xca, 0x0b, 0x32,
+ 0xd7, 0xdb, 0x7a, 0x4a, 0xcc, 0x4e, 0xe5, 0x71, 0x4b, 0x84, 0xed, 0x34, 0x7e, 0xdf, 0x16, 0xbe,
+ 0xba, 0x52, 0xba, 0xd4, 0xd3, 0xf6, 0xdc, 0x78, 0x8c, 0x1a, 0xe8, 0x5f, 0x10, 0xc9, 0x7d, 0x58,
+ 0xb0, 0xbf, 0x5e, 0x80, 0x69, 0x35, 0x84, 0x7f, 0x7e, 0x07, 0xee, 0x6e, 0xe7, 0xc0, 0x9d, 0xc2,
+ 0xb3, 0x8c, 0x7d, 0x07, 0x06, 0xeb, 0x07, 0x51, 0x23, 0xf6, 0xfa, 0x60, 0x80, 0x9e, 0x32, 0x43,
+ 0x53, 0xa9, 0x6b, 0xda, 0x08, 0x4f, 0xf5, 0x97, 0x2c, 0x98, 0xd8, 0x58, 0xaa, 0xd5, 0x83, 0xc6,
+ 0x2e, 0x89, 0x17, 0x38, 0xc3, 0x8a, 0x05, 0xff, 0x63, 0x3d, 0x24, 0x5f, 0x93, 0xc5, 0x31, 0x5d,
+ 0x81, 0xd2, 0x4e, 0x10, 0xc5, 0xe9, 0x37, 0xdb, 0x9b, 0x41, 0x14, 0x63, 0x06, 0xb1, 0x7f, 0xc7,
+ 0x82, 0x01, 0x96, 0xa1, 0xb4, 0x57, 0xda, 0xdc, 0x7e, 0xbe, 0x0b, 0xbd, 0x0c, 0x83, 0x64, 0x6b,
+ 0x8b, 0x34, 0x62, 0x31, 0xab, 0xd2, 0xa1, 0x74, 0x70, 0x99, 0x95, 0xd2, 0x4b, 0x9f, 0x35, 0xc6,
+ 0xff, 0x62, 0x81, 0x8c, 0xde, 0x82, 0x72, 0xec, 0xee, 0x91, 0x85, 0x66, 0x53, 0xbc, 0x7a, 0x3d,
+ 0x84, 0xff, 0xee, 0x86, 0x24, 0x80, 0x13, 0x5a, 0xf6, 0x57, 0x0b, 0x00, 0x89, 0xeb, 0x7d, 0xaf,
+ 0x4f, 0x5c, 0xec, 0x78, 0x0f, 0xb9, 0x9a, 0xf1, 0x1e, 0x82, 0x12, 0x82, 0x19, 0x8f, 0x21, 0x6a,
+ 0x98, 0x8a, 0x7d, 0x0d, 0x53, 0xe9, 0x24, 0xc3, 0xb4, 0x04, 0x53, 0x49, 0xe8, 0x00, 0x33, 0x8e,
+ 0x0a, 0x13, 0x52, 0x36, 0xd2, 0x40, 0xdc, 0x89, 0x6f, 0x13, 0xb8, 0x22, 0x43, 0x51, 0xca, 0xbb,
+ 0x86, 0x19, 0x55, 0x9e, 0x20, 0x83, 0x72, 0xf2, 0xe0, 0x53, 0xc8, 0x7d, 0xf0, 0xf9, 0x29, 0x0b,
+ 0xce, 0xa7, 0xdb, 0x61, 0xde, 0x6b, 0x3f, 0x60, 0xc1, 0x34, 0x7b, 0xf6, 0x62, 0xad, 0x76, 0x3e,
+ 0xb2, 0xbd, 0x94, 0x1d, 0x52, 0xa1, 0x7b, 0x8f, 0x13, 0xcf, 0xe5, 0xb5, 0x2c, 0xd2, 0x38, 0xbb,
+ 0x45, 0xfb, 0xfb, 0x2d, 0x10, 0x4e, 0x42, 0x7d, 0x6c, 0xec, 0xb7, 0x65, 0x8e, 0x51, 0x23, 0xf2,
+ 0xf6, 0x95, 0x7c, 0xaf, 0x29, 0x11, 0x6f, 0x5b, 0x5d, 0xa4, 0x46, 0x94, 0x6d, 0x83, 0x96, 0xdd,
+ 0x04, 0x01, 0xad, 0x12, 0xa6, 0x27, 0xea, 0xdd, 0x9b, 0xeb, 0x00, 0x4d, 0x86, 0xab, 0x65, 0x1a,
+ 0x54, 0xc7, 0x76, 0x55, 0x41, 0xb0, 0x86, 0x65, 0xff, 0x48, 0x01, 0x46, 0x64, 0xa4, 0xe7, 0xb6,
+ 0xdf, 0x8f, 0x34, 0x77, 0xa2, 0x84, 0x2f, 0x2c, 0x35, 0x27, 0x25, 0x5c, 0x4b, 0x84, 0xe0, 0x24,
+ 0x35, 0xa7, 0x04, 0xe0, 0x04, 0x07, 0x3d, 0x03, 0x43, 0x51, 0x7b, 0x93, 0xa1, 0xa7, 0x5c, 0x5f,
+ 0xea, 0xbc, 0x18, 0x4b, 0x38, 0xfa, 0x3c, 0x4c, 0xf2, 0x7a, 0x61, 0xd0, 0x72, 0xb6, 0xb9, 0xd2,
+ 0x70, 0x40, 0xf9, 0xa2, 0x4e, 0xae, 0xa5, 0x60, 0xc7, 0x87, 0x95, 0xf3, 0xe9, 0x32, 0xa6, 0x6e,
+ 0xee, 0xa0, 0x62, 0x7f, 0x19, 0x50, 0x67, 0xf0, 0x6a, 0xf4, 0x06, 0x37, 0x40, 0x72, 0x43, 0xd2,
+ 0xec, 0xa6, 0x47, 0xd6, 0x5d, 0x27, 0xa5, 0xf9, 0x39, 0xaf, 0x85, 0x55, 0x7d, 0xfb, 0xaf, 0x14,
+ 0x61, 0x32, 0xed, 0x48, 0x87, 0x6e, 0xc2, 0x20, 0xbf, 0x60, 0x04, 0xf9, 0x2e, 0xcf, 0x94, 0x9a,
+ 0xfb, 0x1d, 0xdb, 0x6a, 0xe2, 0x8e, 0x12, 0xf5, 0xd1, 0x3b, 0x30, 0xd2, 0x0c, 0xee, 0xfb, 0xf7,
+ 0x9d, 0xb0, 0xb9, 0x50, 0x5b, 0x15, 0xeb, 0x32, 0x93, 0x4f, 0xad, 0x26, 0x68, 0xba, 0x4b, 0x1f,
+ 0x53, 0xc9, 0x27, 0x20, 0xac, 0x93, 0x43, 0x1b, 0x2c, 0x20, 0xdf, 0x96, 0xbb, 0xbd, 0xe6, 0xb4,
+ 0xba, 0x59, 0xa3, 0x2e, 0x49, 0x24, 0x8d, 0xf2, 0x98, 0x88, 0xda, 0xc7, 0x01, 0x38, 0x21, 0x84,
+ 0xbe, 0x1b, 0xce, 0x45, 0x39, 0xaa, 0xad, 0xbc, 0x5c, 0x06, 0xdd, 0xb4, 0x3d, 0x8b, 0x8f, 0x51,
+ 0x09, 0x22, 0x4b, 0x09, 0x96, 0xd5, 0x8c, 0xfd, 0x95, 0x73, 0x60, 0xec, 0x46, 0x23, 0xa1, 0x8d,
+ 0x75, 0x4a, 0x09, 0x6d, 0x30, 0x0c, 0x93, 0xbd, 0x56, 0x7c, 0x50, 0x75, 0xc3, 0x6e, 0x19, 0xd1,
+ 0x96, 0x05, 0x4e, 0x27, 0x4d, 0x09, 0xc1, 0x8a, 0x4e, 0x76, 0xd6, 0xa1, 0xe2, 0x87, 0x98, 0x75,
+ 0xa8, 0x74, 0x86, 0x59, 0x87, 0xd6, 0x61, 0x68, 0xdb, 0x8d, 0x31, 0x69, 0x05, 0x82, 0xb5, 0xcb,
+ 0x5c, 0x87, 0x37, 0x38, 0x4a, 0x67, 0xa6, 0x0b, 0x01, 0xc0, 0x92, 0x08, 0x7a, 0x43, 0xed, 0xc0,
+ 0xc1, 0x7c, 0xc9, 0xa8, 0xf3, 0x3d, 0x2d, 0x73, 0x0f, 0x8a, 0x2c, 0x43, 0x43, 0x0f, 0x9b, 0x65,
+ 0x68, 0x45, 0xe6, 0x06, 0x1a, 0xce, 0x37, 0x1d, 0x67, 0xa9, 0x7f, 0x7a, 0x64, 0x04, 0x32, 0xb2,
+ 0x28, 0x95, 0x4f, 0x2f, 0x8b, 0xd2, 0xf7, 0x5b, 0x30, 0xdd, 0xca, 0x4a, 0x28, 0x26, 0x32, 0xfa,
+ 0xbc, 0xdc, 0x77, 0xc6, 0x34, 0xa3, 0x41, 0x26, 0x22, 0x67, 0xa2, 0xe1, 0xec, 0xe6, 0xe8, 0x40,
+ 0x87, 0x9b, 0x4d, 0x91, 0x06, 0xe8, 0xa9, 0x9c, 0x74, 0x4c, 0x5d, 0x92, 0x30, 0x6d, 0x64, 0xa4,
+ 0xfe, 0xf9, 0x78, 0x5e, 0xea, 0x9f, 0xbe, 0x13, 0xfe, 0xbc, 0xa1, 0x12, 0x31, 0x8d, 0xe5, 0x2f,
+ 0x25, 0x9e, 0x66, 0xa9, 0x67, 0xfa, 0xa5, 0x37, 0x54, 0xfa, 0xa5, 0x2e, 0xf1, 0xcd, 0x78, 0x72,
+ 0xa5, 0x9e, 0x49, 0x97, 0xb4, 0xc4, 0x49, 0x13, 0xa7, 0x93, 0x38, 0xc9, 0xb8, 0x6a, 0x78, 0xee,
+ 0x9e, 0x67, 0x7b, 0x5c, 0x35, 0x06, 0xdd, 0xee, 0x97, 0x0d, 0x4f, 0x12, 0x35, 0xf5, 0x50, 0x49,
+ 0xa2, 0xee, 0xe9, 0x49, 0x97, 0x50, 0x8f, 0xac, 0x42, 0x14, 0xa9, 0xcf, 0x54, 0x4b, 0xf7, 0xf4,
+ 0x0b, 0xf0, 0x5c, 0x3e, 0x5d, 0x75, 0xcf, 0x75, 0xd2, 0xcd, 0xbc, 0x02, 0x3b, 0x52, 0x38, 0x9d,
+ 0x3f, 0x9b, 0x14, 0x4e, 0xd3, 0xa7, 0x9e, 0xc2, 0xe9, 0xc2, 0x19, 0xa4, 0x70, 0x7a, 0xec, 0x43,
+ 0x4d, 0xe1, 0x34, 0xf3, 0x08, 0x52, 0x38, 0xad, 0x27, 0x29, 0x9c, 0x2e, 0xe6, 0x4f, 0x49, 0x86,
+ 0x3d, 0x6b, 0x4e, 0xe2, 0xa6, 0x7b, 0x50, 0x6e, 0xc9, 0x48, 0x0f, 0x22, 0x00, 0x5b, 0x76, 0x16,
+ 0xd9, 0xac, 0x70, 0x10, 0x7c, 0x4a, 0x14, 0x08, 0x27, 0xa4, 0x28, 0xdd, 0x24, 0x91, 0xd3, 0xe3,
+ 0x5d, 0x94, 0xa0, 0x59, 0xea, 0xa5, 0xfc, 0xf4, 0x4d, 0xf6, 0x5f, 0x2e, 0xc0, 0xe5, 0xee, 0xeb,
+ 0x3a, 0xd1, 0x4d, 0xd5, 0x92, 0xb7, 0x94, 0x94, 0x6e, 0x8a, 0x0b, 0x39, 0x09, 0x56, 0xdf, 0xe1,
+ 0x70, 0x6e, 0xc0, 0x94, 0x32, 0x64, 0xf5, 0xdc, 0xc6, 0x81, 0x96, 0x5d, 0x56, 0x39, 0xec, 0xd5,
+ 0xd3, 0x08, 0xb8, 0xb3, 0x0e, 0x5a, 0x80, 0x09, 0xa3, 0x70, 0xb5, 0x2a, 0x84, 0x19, 0xa5, 0x0c,
+ 0xab, 0x9b, 0x60, 0x9c, 0xc6, 0xb7, 0x7f, 0xce, 0x82, 0xc7, 0x72, 0xb2, 0x1b, 0xf4, 0x1d, 0xed,
+ 0x65, 0x0b, 0x26, 0x5a, 0x66, 0xd5, 0x1e, 0x41, 0xa1, 0x8c, 0x1c, 0x0a, 0xaa, 0xaf, 0x29, 0x00,
+ 0x4e, 0x13, 0x5d, 0xbc, 0xf6, 0x9b, 0xbf, 0x77, 0xf9, 0x63, 0xbf, 0xf5, 0x7b, 0x97, 0x3f, 0xf6,
+ 0xdb, 0xbf, 0x77, 0xf9, 0x63, 0xff, 0xff, 0xd1, 0x65, 0xeb, 0x37, 0x8f, 0x2e, 0x5b, 0xbf, 0x75,
+ 0x74, 0xd9, 0xfa, 0xed, 0xa3, 0xcb, 0xd6, 0xef, 0x1e, 0x5d, 0xb6, 0xbe, 0xfa, 0xfb, 0x97, 0x3f,
+ 0xf6, 0x76, 0x61, 0xff, 0x85, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x49, 0x21, 0x0f, 0x4e, 0x86,
+ 0xe5, 0x00, 0x00,
}
diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto
index 0998a433d12..59c850e1c6c 100644
--- a/staging/src/k8s.io/api/core/v1/generated.proto
+++ b/staging/src/k8s.io/api/core/v1/generated.proto
@@ -1992,6 +1992,7 @@ message NodeSelectorRequirement {
// A null or empty node selector term matches no objects. The requirements of
// them are ANDed.
+// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
message NodeSelectorTerm {
// A list of node selector requirements by node's labels.
// +optional
@@ -4438,6 +4439,28 @@ message Toleration {
optional int64 tolerationSeconds = 5;
}
+// A topology selector requirement is a selector that matches given label.
+// This is an alpha feature and may change in the future.
+message TopologySelectorLabelRequirement {
+ // The label key that the selector applies to.
+ optional string key = 1;
+
+ // An array of string values. One value must match the label to be selected.
+ // Each entry in Values is ORed.
+ repeated string values = 2;
+}
+
+// A topology selector term represents the result of label queries.
+// A null or empty topology selector term matches no objects.
+// The requirements of them are ANDed.
+// It provides a subset of functionality as NodeSelectorTerm.
+// This is an alpha feature and may change in the future.
+message TopologySelectorTerm {
+ // A list of topology selector requirements by labels.
+ // +optional
+ repeated TopologySelectorLabelRequirement matchLabelExpressions = 1;
+}
+
// Volume represents a named volume in a pod that may be accessed by any container in the pod.
message Volume {
// Volume's name.
diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go
index 3c5e38e13f7..c8ad4371c79 100644
--- a/staging/src/k8s.io/api/core/v1/types.go
+++ b/staging/src/k8s.io/api/core/v1/types.go
@@ -2389,6 +2389,7 @@ type NodeSelector struct {
// A null or empty node selector term matches no objects. The requirements of
// them are ANDed.
+// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
type NodeSelectorTerm struct {
// A list of node selector requirements by node's labels.
// +optional
@@ -2428,6 +2429,27 @@ const (
NodeSelectorOpLt NodeSelectorOperator = "Lt"
)
+// A topology selector term represents the result of label queries.
+// A null or empty topology selector term matches no objects.
+// The requirements of them are ANDed.
+// It provides a subset of functionality as NodeSelectorTerm.
+// This is an alpha feature and may change in the future.
+type TopologySelectorTerm struct {
+ // A list of topology selector requirements by labels.
+ // +optional
+ MatchLabelExpressions []TopologySelectorLabelRequirement `json:"matchLabelExpressions,omitempty" protobuf:"bytes,1,rep,name=matchLabelExpressions"`
+}
+
+// A topology selector requirement is a selector that matches given label.
+// This is an alpha feature and may change in the future.
+type TopologySelectorLabelRequirement struct {
+ // The label key that the selector applies to.
+ Key string `json:"key" protobuf:"bytes,1,opt,name=key"`
+ // An array of string values. One value must match the label to be selected.
+ // Each entry in Values is ORed.
+ Values []string `json:"values" protobuf:"bytes,2,rep,name=values"`
+}
+
// Affinity is a group of affinity scheduling rules.
type Affinity struct {
// Describes node affinity scheduling rules for the pod.
diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go
index b9a684ccdc2..09cc5301845 100644
--- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go
+++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go
@@ -1073,7 +1073,7 @@ func (NodeSelectorRequirement) SwaggerDoc() map[string]string {
}
var map_NodeSelectorTerm = map[string]string{
- "": "A null or empty node selector term matches no objects. The requirements of them are ANDed.",
+ "": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
"matchExpressions": "A list of node selector requirements by node's labels.",
"matchFields": "A list of node selector requirements by node's fields.",
}
@@ -2185,6 +2185,25 @@ func (Toleration) SwaggerDoc() map[string]string {
return map_Toleration
}
+var map_TopologySelectorLabelRequirement = map[string]string{
+ "": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
+ "key": "The label key that the selector applies to.",
+ "values": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.",
+}
+
+func (TopologySelectorLabelRequirement) SwaggerDoc() map[string]string {
+ return map_TopologySelectorLabelRequirement
+}
+
+var map_TopologySelectorTerm = map[string]string{
+ "": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
+ "matchLabelExpressions": "A list of topology selector requirements by labels.",
+}
+
+func (TopologySelectorTerm) SwaggerDoc() map[string]string {
+ return map_TopologySelectorTerm
+}
+
var map_Volume = map[string]string{
"": "Volume represents a named volume in a pod that may be accessed by any container in the pod.",
"name": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
diff --git a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go
index b1be204f39b..1af2831259b 100644
--- a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go
+++ b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go
@@ -5588,6 +5588,50 @@ func (in *Toleration) DeepCopy() *Toleration {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TopologySelectorLabelRequirement) DeepCopyInto(out *TopologySelectorLabelRequirement) {
+ *out = *in
+ if in.Values != nil {
+ in, out := &in.Values, &out.Values
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorLabelRequirement.
+func (in *TopologySelectorLabelRequirement) DeepCopy() *TopologySelectorLabelRequirement {
+ if in == nil {
+ return nil
+ }
+ out := new(TopologySelectorLabelRequirement)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TopologySelectorTerm) DeepCopyInto(out *TopologySelectorTerm) {
+ *out = *in
+ if in.MatchLabelExpressions != nil {
+ in, out := &in.MatchLabelExpressions, &out.MatchLabelExpressions
+ *out = make([]TopologySelectorLabelRequirement, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorTerm.
+func (in *TopologySelectorTerm) DeepCopy() *TopologySelectorTerm {
+ if in == nil {
+ return nil
+ }
+ out := new(TopologySelectorTerm)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Volume) DeepCopyInto(out *Volume) {
*out = *in
diff --git a/staging/src/k8s.io/api/storage/v1/generated.pb.go b/staging/src/k8s.io/api/storage/v1/generated.pb.go
index 7c6fe0a16fe..b13b03fc73e 100644
--- a/staging/src/k8s.io/api/storage/v1/generated.pb.go
+++ b/staging/src/k8s.io/api/storage/v1/generated.pb.go
@@ -152,6 +152,18 @@ func (m *StorageClass) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode)))
i += copy(dAtA[i:], *m.VolumeBindingMode)
}
+ if len(m.AllowedTopologies) > 0 {
+ for _, msg := range m.AllowedTopologies {
+ dAtA[i] = 0x42
+ i++
+ i = encodeVarintGenerated(dAtA, i, uint64(msg.Size()))
+ n, err := msg.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
+ }
+ i += n
+ }
+ }
return i, nil
}
@@ -252,6 +264,12 @@ func (m *StorageClass) Size() (n int) {
l = len(*m.VolumeBindingMode)
n += 1 + l + sovGenerated(uint64(l))
}
+ if len(m.AllowedTopologies) > 0 {
+ for _, e := range m.AllowedTopologies {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
return n
}
@@ -304,6 +322,7 @@ func (this *StorageClass) String() string {
`MountOptions:` + fmt.Sprintf("%v", this.MountOptions) + `,`,
`AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`,
`VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`,
+ `AllowedTopologies:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedTopologies), "TopologySelectorTerm", "k8s_io_api_core_v1.TopologySelectorTerm", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
@@ -641,6 +660,37 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error {
s := VolumeBindingMode(dAtA[iNdEx:postIndex])
m.VolumeBindingMode = &s
iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AllowedTopologies", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= (int(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.AllowedTopologies = append(m.AllowedTopologies, k8s_io_api_core_v1.TopologySelectorTerm{})
+ if err := m.AllowedTopologies[len(m.AllowedTopologies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -883,44 +933,48 @@ func init() {
}
var fileDescriptorGenerated = []byte{
- // 623 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x4f, 0x6f, 0xd3, 0x3c,
- 0x18, 0x6f, 0xda, 0xb7, 0x2f, 0x9b, 0xbb, 0x89, 0x2e, 0x0c, 0x29, 0xea, 0x21, 0xa9, 0xc6, 0xa5,
- 0x9a, 0x84, 0xb3, 0x6e, 0x03, 0x4d, 0x48, 0x20, 0x11, 0x34, 0x09, 0xa4, 0x4d, 0xab, 0x82, 0x34,
- 0x21, 0xc4, 0x01, 0x37, 0x7d, 0xc8, 0x4c, 0x13, 0x3b, 0xb2, 0x9d, 0x40, 0x6f, 0x7c, 0x04, 0xce,
- 0x7c, 0x14, 0x3e, 0xc1, 0x8e, 0x3b, 0xee, 0x14, 0xb1, 0xf0, 0x2d, 0x76, 0x42, 0x49, 0xca, 0x9a,
- 0xad, 0x9d, 0xd8, 0x2d, 0xfe, 0xfd, 0xb3, 0x9f, 0x27, 0x3f, 0xf4, 0x62, 0xbc, 0x27, 0x31, 0xe5,
- 0xf6, 0x38, 0x1e, 0x82, 0x60, 0xa0, 0x40, 0xda, 0x09, 0xb0, 0x11, 0x17, 0xf6, 0x94, 0x20, 0x11,
- 0xb5, 0xa5, 0xe2, 0x82, 0xf8, 0x60, 0x27, 0x7d, 0xdb, 0x07, 0x06, 0x82, 0x28, 0x18, 0xe1, 0x48,
- 0x70, 0xc5, 0xf5, 0x87, 0xa5, 0x0c, 0x93, 0x88, 0xe2, 0xa9, 0x0c, 0x27, 0xfd, 0xce, 0x63, 0x9f,
- 0xaa, 0x93, 0x78, 0x88, 0x3d, 0x1e, 0xda, 0x3e, 0xf7, 0xb9, 0x5d, 0xa8, 0x87, 0xf1, 0xa7, 0xe2,
- 0x54, 0x1c, 0x8a, 0xaf, 0x32, 0xa5, 0xb3, 0xb9, 0xf0, 0xb2, 0x21, 0x28, 0x32, 0x77, 0x63, 0x67,
- 0x77, 0xa6, 0x0d, 0x89, 0x77, 0x42, 0x19, 0x88, 0x89, 0x1d, 0x8d, 0xfd, 0x1c, 0x90, 0x76, 0x08,
- 0x8a, 0x2c, 0x78, 0x67, 0xc7, 0xbe, 0xcd, 0x25, 0x62, 0xa6, 0x68, 0x08, 0x73, 0x86, 0xa7, 0xff,
- 0x32, 0x48, 0xef, 0x04, 0x42, 0x32, 0xe7, 0xdb, 0xb9, 0xcd, 0x17, 0x2b, 0x1a, 0xd8, 0x94, 0x29,
- 0xa9, 0xc4, 0x4d, 0xd3, 0xc6, 0x8f, 0x26, 0x5a, 0x79, 0x5b, 0xce, 0xfd, 0x2a, 0x20, 0x52, 0xea,
- 0x1f, 0xd1, 0x52, 0x3e, 0xc9, 0x88, 0x28, 0x62, 0x68, 0x5d, 0xad, 0xd7, 0xda, 0xde, 0xc2, 0xb3,
- 0x4d, 0x5f, 0x05, 0xe3, 0x68, 0xec, 0xe7, 0x80, 0xc4, 0xb9, 0x1a, 0x27, 0x7d, 0x7c, 0x34, 0xfc,
- 0x0c, 0x9e, 0x3a, 0x04, 0x45, 0x1c, 0xfd, 0x34, 0xb5, 0x6a, 0x59, 0x6a, 0xa1, 0x19, 0xe6, 0x5e,
- 0xa5, 0xea, 0x4f, 0x50, 0x2b, 0x12, 0x3c, 0xa1, 0x92, 0x72, 0x06, 0xc2, 0xa8, 0x77, 0xb5, 0xde,
- 0xb2, 0xf3, 0x60, 0x6a, 0x69, 0x0d, 0x66, 0x94, 0x5b, 0xd5, 0xe9, 0x3e, 0x42, 0x11, 0x11, 0x24,
- 0x04, 0x05, 0x42, 0x1a, 0x8d, 0x6e, 0xa3, 0xd7, 0xda, 0xde, 0xc1, 0x0b, 0x4b, 0x80, 0xab, 0x13,
- 0xe1, 0xc1, 0x95, 0x6b, 0x9f, 0x29, 0x31, 0x99, 0xbd, 0x6e, 0x46, 0xb8, 0x95, 0x68, 0x7d, 0x8c,
- 0x56, 0x05, 0x78, 0x01, 0xa1, 0xe1, 0x80, 0x07, 0xd4, 0x9b, 0x18, 0xff, 0x15, 0x2f, 0xdc, 0xcf,
- 0x52, 0x6b, 0xd5, 0xad, 0x12, 0x97, 0xa9, 0xb5, 0x55, 0xa9, 0x8f, 0xc7, 0x45, 0xde, 0x1d, 0x3c,
- 0x00, 0x21, 0xa9, 0x54, 0xc0, 0xd4, 0x31, 0x0f, 0xe2, 0x10, 0xae, 0x79, 0xdc, 0xeb, 0xd9, 0xfa,
- 0x2e, 0x5a, 0x09, 0x79, 0xcc, 0xd4, 0x51, 0xa4, 0x28, 0x67, 0xd2, 0x68, 0x76, 0x1b, 0xbd, 0x65,
- 0xa7, 0x9d, 0xa5, 0xd6, 0xca, 0x61, 0x05, 0x77, 0xaf, 0xa9, 0xf4, 0x03, 0xb4, 0x4e, 0x82, 0x80,
- 0x7f, 0x29, 0x2f, 0xd8, 0xff, 0x1a, 0x11, 0x96, 0x6f, 0xc9, 0xf8, 0xbf, 0xab, 0xf5, 0x96, 0x1c,
- 0x23, 0x4b, 0xad, 0xf5, 0x97, 0x0b, 0x78, 0x77, 0xa1, 0x4b, 0x7f, 0x87, 0xd6, 0x92, 0x02, 0x72,
- 0x28, 0x1b, 0x51, 0xe6, 0x1f, 0xf2, 0x11, 0x18, 0xf7, 0x8a, 0xa1, 0x37, 0xb3, 0xd4, 0x5a, 0x3b,
- 0xbe, 0x49, 0x5e, 0x2e, 0x02, 0xdd, 0xf9, 0x90, 0xce, 0x73, 0x74, 0xff, 0xc6, 0xf6, 0xf5, 0x36,
- 0x6a, 0x8c, 0x61, 0x52, 0x54, 0x6b, 0xd9, 0xcd, 0x3f, 0xf5, 0x75, 0xd4, 0x4c, 0x48, 0x10, 0x43,
- 0xd9, 0x04, 0xb7, 0x3c, 0x3c, 0xab, 0xef, 0x69, 0x1b, 0x3f, 0x35, 0xd4, 0xae, 0xfe, 0xca, 0x03,
- 0x2a, 0x95, 0xfe, 0x61, 0xae, 0xa0, 0xf8, 0x6e, 0x05, 0xcd, 0xdd, 0x45, 0x3d, 0xdb, 0xd3, 0x02,
- 0x2c, 0xfd, 0x45, 0x2a, 0xe5, 0x7c, 0x8d, 0x9a, 0x54, 0x41, 0x28, 0x8d, 0x7a, 0x51, 0xb0, 0x47,
- 0x77, 0x28, 0x98, 0xb3, 0x3a, 0xcd, 0x6b, 0xbe, 0xc9, 0x9d, 0x6e, 0x19, 0xe0, 0xf4, 0x4e, 0x2f,
- 0xcc, 0xda, 0xd9, 0x85, 0x59, 0x3b, 0xbf, 0x30, 0x6b, 0xdf, 0x32, 0x53, 0x3b, 0xcd, 0x4c, 0xed,
- 0x2c, 0x33, 0xb5, 0xf3, 0xcc, 0xd4, 0x7e, 0x65, 0xa6, 0xf6, 0xfd, 0xb7, 0x59, 0x7b, 0x5f, 0x4f,
- 0xfa, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xee, 0x56, 0xcc, 0xfd, 0x0a, 0x05, 0x00, 0x00,
+ // 677 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0xc1, 0x6e, 0xd3, 0x4a,
+ 0x14, 0x8d, 0x93, 0x97, 0xbe, 0x74, 0xd2, 0xea, 0x25, 0x7e, 0x45, 0x32, 0x59, 0x38, 0x51, 0xd9,
+ 0x44, 0x95, 0x18, 0x37, 0x6d, 0x41, 0x15, 0x12, 0x48, 0x35, 0xaa, 0x04, 0x52, 0xab, 0x46, 0x6e,
+ 0x55, 0x21, 0xc4, 0x82, 0x89, 0x73, 0x71, 0x87, 0xd8, 0x33, 0x66, 0x66, 0x6c, 0xc8, 0x8e, 0x1f,
+ 0x40, 0xe2, 0x7b, 0xf8, 0x82, 0x2e, 0xbb, 0xec, 0x2a, 0xa2, 0xe6, 0x2f, 0xba, 0x42, 0x76, 0x42,
+ 0xe3, 0x26, 0xa9, 0xe8, 0x6e, 0xe6, 0xdc, 0x73, 0xce, 0x9d, 0x3b, 0xf7, 0x5e, 0xf4, 0x62, 0xb0,
+ 0x2b, 0x31, 0xe5, 0xd6, 0x20, 0xea, 0x81, 0x60, 0xa0, 0x40, 0x5a, 0x31, 0xb0, 0x3e, 0x17, 0xd6,
+ 0x24, 0x40, 0x42, 0x6a, 0x49, 0xc5, 0x05, 0xf1, 0xc0, 0x8a, 0x3b, 0x96, 0x07, 0x0c, 0x04, 0x51,
+ 0xd0, 0xc7, 0xa1, 0xe0, 0x8a, 0xeb, 0x0f, 0xc6, 0x34, 0x4c, 0x42, 0x8a, 0x27, 0x34, 0x1c, 0x77,
+ 0x1a, 0x8f, 0x3d, 0xaa, 0xce, 0xa2, 0x1e, 0x76, 0x79, 0x60, 0x79, 0xdc, 0xe3, 0x56, 0xc6, 0xee,
+ 0x45, 0x1f, 0xb2, 0x5b, 0x76, 0xc9, 0x4e, 0x63, 0x97, 0xc6, 0x7a, 0x2e, 0x99, 0xcb, 0xc5, 0xa2,
+ 0x4c, 0x8d, 0x8d, 0x85, 0x0f, 0xea, 0x81, 0x22, 0xf3, 0xdc, 0x9d, 0x29, 0x37, 0x20, 0xee, 0x19,
+ 0x65, 0x20, 0x86, 0x56, 0x38, 0xf0, 0x52, 0x40, 0x5a, 0x01, 0x28, 0xb2, 0x28, 0x83, 0x75, 0x97,
+ 0x4a, 0x44, 0x4c, 0xd1, 0x00, 0xe6, 0x04, 0x4f, 0xff, 0x26, 0x90, 0xee, 0x19, 0x04, 0x64, 0x4e,
+ 0xb7, 0x7d, 0x97, 0x2e, 0x52, 0xd4, 0xb7, 0x28, 0x53, 0x52, 0x89, 0x59, 0xd1, 0xfa, 0xb7, 0x25,
+ 0xb4, 0x72, 0x3c, 0xae, 0xfb, 0xa5, 0x4f, 0xa4, 0xd4, 0xdf, 0xa3, 0x4a, 0x5a, 0x49, 0x9f, 0x28,
+ 0x62, 0x68, 0x2d, 0xad, 0x5d, 0xdd, 0xda, 0xc4, 0xd3, 0x6e, 0xdc, 0x18, 0xe3, 0x70, 0xe0, 0xa5,
+ 0x80, 0xc4, 0x29, 0x1b, 0xc7, 0x1d, 0x7c, 0xd4, 0xfb, 0x08, 0xae, 0x3a, 0x04, 0x45, 0x6c, 0xfd,
+ 0x7c, 0xd4, 0x2c, 0x24, 0xa3, 0x26, 0x9a, 0x62, 0xce, 0x8d, 0xab, 0xfe, 0x04, 0x55, 0x43, 0xc1,
+ 0x63, 0x2a, 0x29, 0x67, 0x20, 0x8c, 0x62, 0x4b, 0x6b, 0x2f, 0xdb, 0xff, 0x4f, 0x24, 0xd5, 0xee,
+ 0x34, 0xe4, 0xe4, 0x79, 0xba, 0x87, 0x50, 0x48, 0x04, 0x09, 0x40, 0x81, 0x90, 0x46, 0xa9, 0x55,
+ 0x6a, 0x57, 0xb7, 0xb6, 0xf1, 0xc2, 0x41, 0xc1, 0xf9, 0x8a, 0x70, 0xf7, 0x46, 0xb5, 0xcf, 0x94,
+ 0x18, 0x4e, 0x5f, 0x37, 0x0d, 0x38, 0x39, 0x6b, 0x7d, 0x80, 0x56, 0x05, 0xb8, 0x3e, 0xa1, 0x41,
+ 0x97, 0xfb, 0xd4, 0x1d, 0x1a, 0xff, 0x64, 0x2f, 0xdc, 0x4f, 0x46, 0xcd, 0x55, 0x27, 0x1f, 0xb8,
+ 0x1e, 0x35, 0x37, 0xe7, 0x47, 0x0c, 0x77, 0x41, 0x48, 0x2a, 0x15, 0x30, 0x75, 0xca, 0xfd, 0x28,
+ 0x80, 0x5b, 0x1a, 0xe7, 0xb6, 0xb7, 0xbe, 0x83, 0x56, 0x02, 0x1e, 0x31, 0x75, 0x14, 0x2a, 0xca,
+ 0x99, 0x34, 0xca, 0xad, 0x52, 0x7b, 0xd9, 0xae, 0x25, 0xa3, 0xe6, 0xca, 0x61, 0x0e, 0x77, 0x6e,
+ 0xb1, 0xf4, 0x03, 0xb4, 0x46, 0x7c, 0x9f, 0x7f, 0x1e, 0x27, 0xd8, 0xff, 0x12, 0x12, 0x96, 0xfe,
+ 0x92, 0xb1, 0xd4, 0xd2, 0xda, 0x15, 0xdb, 0x48, 0x46, 0xcd, 0xb5, 0xbd, 0x05, 0x71, 0x67, 0xa1,
+ 0x4a, 0x7f, 0x83, 0xea, 0x71, 0x06, 0xd9, 0x94, 0xf5, 0x29, 0xf3, 0x0e, 0x79, 0x1f, 0x8c, 0x7f,
+ 0xb3, 0xa2, 0x37, 0x92, 0x51, 0xb3, 0x7e, 0x3a, 0x1b, 0xbc, 0x5e, 0x04, 0x3a, 0xf3, 0x26, 0xfa,
+ 0x27, 0x54, 0xcf, 0x32, 0x42, 0xff, 0x84, 0x87, 0xdc, 0xe7, 0x1e, 0x05, 0x69, 0x54, 0xb2, 0xd6,
+ 0xb5, 0xf3, 0xad, 0x4b, 0xbf, 0x2e, 0xed, 0xdb, 0x84, 0x35, 0x3c, 0x06, 0x1f, 0x5c, 0xc5, 0xc5,
+ 0x09, 0x88, 0xc0, 0x7e, 0x38, 0xe9, 0x57, 0x7d, 0x6f, 0xd6, 0xca, 0x99, 0x77, 0x6f, 0x3c, 0x47,
+ 0xff, 0xcd, 0x34, 0x5c, 0xaf, 0xa1, 0xd2, 0x00, 0x86, 0xd9, 0x34, 0x2f, 0x3b, 0xe9, 0x51, 0x5f,
+ 0x43, 0xe5, 0x98, 0xf8, 0x11, 0x8c, 0x87, 0xcf, 0x19, 0x5f, 0x9e, 0x15, 0x77, 0xb5, 0xf5, 0x1f,
+ 0x1a, 0xaa, 0xe5, 0xa7, 0xe7, 0x80, 0x4a, 0xa5, 0xbf, 0x9b, 0xdb, 0x09, 0x7c, 0xbf, 0x9d, 0x48,
+ 0xd5, 0xd9, 0x46, 0xd4, 0x26, 0x35, 0x54, 0xfe, 0x20, 0xb9, 0x7d, 0x78, 0x85, 0xca, 0x54, 0x41,
+ 0x20, 0x8d, 0x62, 0xf6, 0x31, 0x8f, 0xee, 0x31, 0xd3, 0xf6, 0xea, 0xc4, 0xaf, 0xfc, 0x3a, 0x55,
+ 0x3a, 0x63, 0x03, 0xbb, 0x7d, 0x7e, 0x65, 0x16, 0x2e, 0xae, 0xcc, 0xc2, 0xe5, 0x95, 0x59, 0xf8,
+ 0x9a, 0x98, 0xda, 0x79, 0x62, 0x6a, 0x17, 0x89, 0xa9, 0x5d, 0x26, 0xa6, 0xf6, 0x33, 0x31, 0xb5,
+ 0xef, 0xbf, 0xcc, 0xc2, 0xdb, 0x62, 0xdc, 0xf9, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x0e, 0x67, 0x74,
+ 0x30, 0xa1, 0x05, 0x00, 0x00,
}
diff --git a/staging/src/k8s.io/api/storage/v1/generated.proto b/staging/src/k8s.io/api/storage/v1/generated.proto
index d8a01ee8e4a..cff642211d0 100644
--- a/staging/src/k8s.io/api/storage/v1/generated.proto
+++ b/staging/src/k8s.io/api/storage/v1/generated.proto
@@ -21,6 +21,7 @@ syntax = 'proto2';
package k8s.io.api.storage.v1;
+import "k8s.io/api/core/v1/generated.proto";
import "k8s.io/api/storage/v1beta1/generated.proto";
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
import "k8s.io/apimachinery/pkg/runtime/generated.proto";
@@ -70,6 +71,14 @@ message StorageClass {
// the VolumeScheduling feature.
// +optional
optional string volumeBindingMode = 7;
+
+ // Restrict the node topologies where volumes can be dynamically provisioned.
+ // Each volume plugin defines its own supported topology specifications.
+ // An empty TopologySelectorTerm list means there is no topology restriction.
+ // This field is alpha-level and is only honored by servers that enable
+ // the DynamicProvisioningScheduling feature.
+ // +optional
+ repeated k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8;
}
// StorageClassList is a collection of storage classes.
diff --git a/staging/src/k8s.io/api/storage/v1/types.go b/staging/src/k8s.io/api/storage/v1/types.go
index 288d40abb8f..45bfa7681be 100644
--- a/staging/src/k8s.io/api/storage/v1/types.go
+++ b/staging/src/k8s.io/api/storage/v1/types.go
@@ -66,6 +66,14 @@ type StorageClass struct {
// the VolumeScheduling feature.
// +optional
VolumeBindingMode *VolumeBindingMode `json:"volumeBindingMode,omitempty" protobuf:"bytes,7,opt,name=volumeBindingMode"`
+
+ // Restrict the node topologies where volumes can be dynamically provisioned.
+ // Each volume plugin defines its own supported topology specifications.
+ // An empty TopologySelectorTerm list means there is no topology restriction.
+ // This field is alpha-level and is only honored by servers that enable
+ // the DynamicProvisioningScheduling feature.
+ // +optional
+ AllowedTopologies []v1.TopologySelectorTerm `json:"allowedTopologies,omitempty" protobuf:"bytes,8,rep,name=allowedTopologies"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
diff --git a/staging/src/k8s.io/api/storage/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/storage/v1/types_swagger_doc_generated.go
index 220e3bd4cad..1d658704700 100644
--- a/staging/src/k8s.io/api/storage/v1/types_swagger_doc_generated.go
+++ b/staging/src/k8s.io/api/storage/v1/types_swagger_doc_generated.go
@@ -36,6 +36,7 @@ var map_StorageClass = map[string]string{
"mountOptions": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.",
"allowVolumeExpansion": "AllowVolumeExpansion shows whether the storage class allow volume expand",
"volumeBindingMode": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.",
+ "allowedTopologies": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature.",
}
func (StorageClass) SwaggerDoc() map[string]string {
diff --git a/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go
index b5ee5c1cb02..a1050134c0e 100644
--- a/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go
+++ b/staging/src/k8s.io/api/storage/v1/zz_generated.deepcopy.go
@@ -69,6 +69,13 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) {
**out = **in
}
}
+ if in.AllowedTopologies != nil {
+ in, out := &in.AllowedTopologies, &out.AllowedTopologies
+ *out = make([]core_v1.TopologySelectorTerm, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
return
}
diff --git a/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go b/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go
index 5f4fbe07fc3..058702593ea 100644
--- a/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go
+++ b/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go
@@ -188,6 +188,18 @@ func (m *StorageClass) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode)))
i += copy(dAtA[i:], *m.VolumeBindingMode)
}
+ if len(m.AllowedTopologies) > 0 {
+ for _, msg := range m.AllowedTopologies {
+ dAtA[i] = 0x42
+ i++
+ i = encodeVarintGenerated(dAtA, i, uint64(msg.Size()))
+ n, err := msg.MarshalTo(dAtA[i:])
+ if err != nil {
+ return 0, err
+ }
+ i += n
+ }
+ }
return i, nil
}
@@ -524,6 +536,12 @@ func (m *StorageClass) Size() (n int) {
l = len(*m.VolumeBindingMode)
n += 1 + l + sovGenerated(uint64(l))
}
+ if len(m.AllowedTopologies) > 0 {
+ for _, e := range m.AllowedTopologies {
+ l = e.Size()
+ n += 1 + l + sovGenerated(uint64(l))
+ }
+ }
return n
}
@@ -657,6 +675,7 @@ func (this *StorageClass) String() string {
`MountOptions:` + fmt.Sprintf("%v", this.MountOptions) + `,`,
`AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`,
`VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`,
+ `AllowedTopologies:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedTopologies), "TopologySelectorTerm", "k8s_io_api_core_v1.TopologySelectorTerm", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
@@ -1073,6 +1092,37 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error {
s := VolumeBindingMode(dAtA[iNdEx:postIndex])
m.VolumeBindingMode = &s
iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AllowedTopologies", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= (int(b) & 0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + msglen
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.AllowedTopologies = append(m.AllowedTopologies, k8s_io_api_core_v1.TopologySelectorTerm{})
+ if err := m.AllowedTopologies[len(m.AllowedTopologies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
@@ -2145,67 +2195,69 @@ func init() {
}
var fileDescriptorGenerated = []byte{
- // 977 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcd, 0x6f, 0x1b, 0x45,
- 0x14, 0xcf, 0xc6, 0xf9, 0x1c, 0x27, 0x34, 0x1d, 0x22, 0xb0, 0x7c, 0x58, 0x47, 0xbe, 0x60, 0xaa,
- 0x66, 0xb7, 0x09, 0x05, 0x45, 0x48, 0x1c, 0xb2, 0x25, 0x07, 0x50, 0xdc, 0x86, 0x29, 0xaa, 0x50,
- 0xc5, 0x81, 0xc9, 0xee, 0xab, 0x33, 0xd8, 0xfb, 0xa1, 0x99, 0x59, 0xd3, 0xdc, 0x38, 0x71, 0xe6,
- 0xc4, 0x95, 0x0b, 0xff, 0x07, 0x47, 0x72, 0x42, 0x3d, 0xf6, 0x64, 0x91, 0xe5, 0xbf, 0x88, 0x38,
- 0xa0, 0x99, 0x9d, 0x78, 0xd7, 0x5e, 0x5b, 0x4d, 0x7a, 0xe8, 0x2d, 0xf3, 0xde, 0xfb, 0xfd, 0xde,
- 0xd7, 0xef, 0xad, 0x83, 0x1e, 0xf5, 0x0f, 0x84, 0xc3, 0x62, 0xb7, 0x9f, 0x9e, 0x02, 0x8f, 0x40,
- 0x82, 0x70, 0x87, 0x10, 0x05, 0x31, 0x77, 0x8d, 0x83, 0x26, 0xcc, 0x15, 0x32, 0xe6, 0xb4, 0x07,
- 0xee, 0x70, 0xef, 0x14, 0x24, 0xdd, 0x73, 0x7b, 0x10, 0x01, 0xa7, 0x12, 0x02, 0x27, 0xe1, 0xb1,
- 0x8c, 0x71, 0x33, 0x8f, 0x75, 0x68, 0xc2, 0x1c, 0x13, 0xeb, 0x98, 0xd8, 0xe6, 0x6e, 0x8f, 0xc9,
- 0xb3, 0xf4, 0xd4, 0xf1, 0xe3, 0xd0, 0xed, 0xc5, 0xbd, 0xd8, 0xd5, 0x90, 0xd3, 0xf4, 0x85, 0x7e,
- 0xe9, 0x87, 0xfe, 0x2b, 0xa7, 0x6a, 0xb6, 0x4b, 0x69, 0xfd, 0x98, 0xab, 0x9c, 0xd3, 0xe9, 0x9a,
- 0xdd, 0x22, 0x06, 0x5e, 0x4a, 0x88, 0x04, 0x8b, 0x23, 0xb1, 0x4b, 0x13, 0x26, 0x80, 0x0f, 0x81,
- 0xbb, 0x49, 0xbf, 0xa7, 0x7c, 0x62, 0x32, 0x60, 0x5e, 0xf5, 0xcd, 0x87, 0x05, 0x5d, 0x48, 0xfd,
- 0x33, 0x16, 0x01, 0x3f, 0x2f, 0x38, 0x42, 0x90, 0x74, 0x56, 0x11, 0xee, 0x3c, 0x14, 0x4f, 0x23,
- 0xc9, 0x42, 0xa8, 0x00, 0x3e, 0x7b, 0x13, 0x40, 0xf8, 0x67, 0x10, 0xd2, 0x0a, 0xee, 0x93, 0x79,
- 0xb8, 0x54, 0xb2, 0x81, 0xcb, 0x22, 0x29, 0x24, 0x9f, 0x06, 0xb5, 0x7f, 0x5f, 0x46, 0x1b, 0x4f,
- 0xf3, 0x4d, 0x3c, 0x1a, 0x50, 0x21, 0xf0, 0x0f, 0x68, 0x4d, 0x75, 0x12, 0x50, 0x49, 0x1b, 0xd6,
- 0x8e, 0xd5, 0xa9, 0xef, 0x3f, 0x70, 0x8a, 0xad, 0x8d, 0x89, 0x9d, 0xa4, 0xdf, 0x53, 0x06, 0xe1,
- 0xa8, 0x68, 0x67, 0xb8, 0xe7, 0x3c, 0x39, 0xfd, 0x11, 0x7c, 0xd9, 0x05, 0x49, 0x3d, 0x7c, 0x31,
- 0x6a, 0x2d, 0x64, 0xa3, 0x16, 0x2a, 0x6c, 0x64, 0xcc, 0x8a, 0x3f, 0x45, 0xf5, 0x84, 0xc7, 0x43,
- 0xa6, 0x86, 0x0d, 0xbc, 0xb1, 0xb8, 0x63, 0x75, 0xd6, 0xbd, 0xf7, 0x0d, 0xa4, 0x7e, 0x52, 0xb8,
- 0x48, 0x39, 0x0e, 0x0f, 0x10, 0x4a, 0x28, 0xa7, 0x21, 0x48, 0xe0, 0xa2, 0x51, 0xdb, 0xa9, 0x75,
- 0xea, 0xfb, 0x07, 0xce, 0x7c, 0x41, 0x39, 0xe5, 0xb6, 0x9c, 0x93, 0x31, 0xf4, 0x28, 0x92, 0xfc,
- 0xbc, 0x28, 0xb1, 0x70, 0x90, 0x12, 0x3f, 0xee, 0xa3, 0x4d, 0x0e, 0xfe, 0x80, 0xb2, 0xf0, 0x24,
- 0x1e, 0x30, 0xff, 0xbc, 0xb1, 0xa4, 0xcb, 0x3c, 0xca, 0x46, 0xad, 0x4d, 0x52, 0x76, 0x5c, 0x8d,
- 0x5a, 0x0f, 0xaa, 0x52, 0x74, 0x4e, 0x80, 0x0b, 0x26, 0x24, 0x44, 0xf2, 0x59, 0x3c, 0x48, 0x43,
- 0x98, 0xc0, 0x90, 0x49, 0x6e, 0xfc, 0x10, 0x6d, 0x84, 0x71, 0x1a, 0xc9, 0x27, 0x89, 0x54, 0x02,
- 0x6c, 0x2c, 0xef, 0xd4, 0x3a, 0xeb, 0xde, 0x56, 0x36, 0x6a, 0x6d, 0x74, 0x4b, 0x76, 0x32, 0x11,
- 0x85, 0x8f, 0xd1, 0x36, 0x1d, 0x0c, 0xe2, 0x9f, 0xf2, 0x04, 0x47, 0x2f, 0x13, 0xaa, 0xf5, 0xdb,
- 0x58, 0xd9, 0xb1, 0x3a, 0x6b, 0x5e, 0x23, 0x1b, 0xb5, 0xb6, 0x0f, 0x67, 0xf8, 0xc9, 0x4c, 0x14,
- 0xfe, 0x0e, 0xdd, 0x1d, 0x6a, 0x93, 0xc7, 0xa2, 0x80, 0x45, 0xbd, 0x6e, 0x1c, 0x40, 0x63, 0x55,
- 0x37, 0x7d, 0x2f, 0x1b, 0xb5, 0xee, 0x3e, 0x9b, 0x76, 0x5e, 0xcd, 0x32, 0x92, 0x2a, 0x49, 0xf3,
- 0x0b, 0x74, 0x67, 0x6a, 0xfa, 0x78, 0x0b, 0xd5, 0xfa, 0x70, 0xae, 0xf5, 0xb5, 0x4e, 0xd4, 0x9f,
- 0x78, 0x1b, 0x2d, 0x0f, 0xe9, 0x20, 0x85, 0x5c, 0x0e, 0x24, 0x7f, 0x7c, 0xbe, 0x78, 0x60, 0xb5,
- 0xff, 0xb4, 0xd0, 0x56, 0x79, 0x95, 0xc7, 0x4c, 0x48, 0xfc, 0x7d, 0x45, 0xa5, 0xce, 0xcd, 0x54,
- 0xaa, 0xd0, 0x5a, 0xa3, 0x5b, 0x46, 0x00, 0x6b, 0xd7, 0x96, 0x92, 0x42, 0xbb, 0x68, 0x99, 0x49,
- 0x08, 0x45, 0x63, 0x51, 0xab, 0xac, 0x73, 0x53, 0x95, 0x79, 0x9b, 0x86, 0x74, 0xf9, 0x2b, 0x05,
- 0x27, 0x39, 0x4b, 0xfb, 0x8f, 0x45, 0xb4, 0x95, 0x4f, 0xea, 0x50, 0x4a, 0xea, 0x9f, 0x85, 0x10,
- 0xc9, 0x77, 0x70, 0x67, 0x04, 0x2d, 0x89, 0x04, 0x7c, 0x3d, 0xd1, 0x49, 0xf6, 0x4a, 0x13, 0xd3,
- 0xd5, 0x3d, 0x4d, 0xc0, 0xf7, 0x36, 0x0c, 0xfb, 0x92, 0x7a, 0x11, 0xcd, 0x85, 0x9f, 0xa3, 0x15,
- 0x21, 0xa9, 0x4c, 0xd5, 0x01, 0x2a, 0xd6, 0xfd, 0x5b, 0xb1, 0x6a, 0xa4, 0xf7, 0x9e, 0xe1, 0x5d,
- 0xc9, 0xdf, 0xc4, 0x30, 0xb6, 0xff, 0xb2, 0xd0, 0xf6, 0x34, 0xe4, 0x1d, 0x2c, 0xfb, 0x9b, 0xc9,
- 0x65, 0xdf, 0xbf, 0x4d, 0x47, 0x73, 0x16, 0xfe, 0x02, 0x7d, 0x50, 0xe9, 0x3d, 0x4e, 0xb9, 0x0f,
- 0xea, 0x66, 0x93, 0xa9, 0x2f, 0xc3, 0x63, 0x1a, 0x42, 0x7e, 0x09, 0xf9, 0xcd, 0x9e, 0xcc, 0xf0,
- 0x93, 0x99, 0xa8, 0xf6, 0xdf, 0x33, 0x26, 0xa6, 0x96, 0x85, 0xef, 0xa3, 0x35, 0xaa, 0x2d, 0xc0,
- 0x0d, 0xf5, 0x78, 0x02, 0x87, 0xc6, 0x4e, 0xc6, 0x11, 0x7a, 0xa9, 0xba, 0x3c, 0x23, 0x95, 0xdb,
- 0x2d, 0x55, 0x23, 0x4b, 0x4b, 0xd5, 0x6f, 0x62, 0x18, 0x55, 0x25, 0x51, 0x1c, 0xe4, 0x4d, 0xd6,
- 0x26, 0x2b, 0x79, 0x6c, 0xec, 0x64, 0x1c, 0xd1, 0xfe, 0xaf, 0x36, 0x63, 0x72, 0x5a, 0x1d, 0xa5,
- 0x96, 0x02, 0xdd, 0xd2, 0x5a, 0xa5, 0xa5, 0x60, 0xdc, 0x52, 0x80, 0x7f, 0xb3, 0x10, 0xa6, 0x63,
- 0x8a, 0xee, 0xb5, 0x7a, 0xf2, 0x15, 0x7f, 0x7d, 0x7b, 0xd1, 0x3a, 0x87, 0x15, 0xb2, 0xfc, 0x77,
- 0xa4, 0x69, 0x8a, 0xc0, 0xd5, 0x00, 0x32, 0xa3, 0x02, 0xcc, 0x50, 0x3d, 0xb7, 0x1e, 0x71, 0x1e,
- 0x73, 0x73, 0x45, 0x1f, 0xbd, 0xb9, 0x20, 0x1d, 0xee, 0xd9, 0xea, 0x17, 0xf2, 0xb0, 0xc0, 0x5f,
- 0x8d, 0x5a, 0xf5, 0x92, 0x9f, 0x94, 0xb9, 0x55, 0xaa, 0x00, 0x8a, 0x54, 0x4b, 0x6f, 0x91, 0xea,
- 0x4b, 0x98, 0x9f, 0xaa, 0xc4, 0xdd, 0x3c, 0x42, 0x1f, 0xce, 0x19, 0xd0, 0xad, 0x3e, 0xf5, 0xbf,
- 0x58, 0xa8, 0x9c, 0x03, 0x1f, 0xa3, 0x25, 0xf5, 0x0f, 0x8f, 0x39, 0xfa, 0x7b, 0x37, 0x3b, 0xfa,
- 0x6f, 0x59, 0x08, 0xc5, 0xb7, 0x4b, 0xbd, 0x88, 0x66, 0xc1, 0x1f, 0xa3, 0xd5, 0x10, 0x84, 0xa0,
- 0x3d, 0x93, 0xd9, 0xbb, 0x63, 0x82, 0x56, 0xbb, 0xb9, 0x99, 0x5c, 0xfb, 0xbd, 0xdd, 0x8b, 0x4b,
- 0x7b, 0xe1, 0xd5, 0xa5, 0xbd, 0xf0, 0xfa, 0xd2, 0x5e, 0xf8, 0x39, 0xb3, 0xad, 0x8b, 0xcc, 0xb6,
- 0x5e, 0x65, 0xb6, 0xf5, 0x3a, 0xb3, 0xad, 0x7f, 0x32, 0xdb, 0xfa, 0xf5, 0x5f, 0x7b, 0xe1, 0xf9,
- 0xaa, 0x99, 0xdb, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4b, 0x7f, 0x8a, 0x3b, 0x1c, 0x0b, 0x00,
- 0x00,
+ // 1022 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4d, 0x6f, 0x1b, 0x45,
+ 0x18, 0xce, 0xc6, 0xf9, 0x70, 0xc6, 0x09, 0x4d, 0x96, 0x08, 0x8c, 0x0f, 0x76, 0xe4, 0x0b, 0xa6,
+ 0x6a, 0x76, 0x9b, 0x50, 0x50, 0x84, 0xc4, 0xc1, 0x5b, 0x72, 0x00, 0xc5, 0x6d, 0x98, 0x44, 0x15,
+ 0xaa, 0x38, 0x30, 0xd9, 0x7d, 0xeb, 0x0c, 0xde, 0xdd, 0x59, 0x66, 0xc6, 0xa6, 0xb9, 0x71, 0xe2,
+ 0x8c, 0x38, 0xf0, 0x0b, 0xf8, 0x1f, 0x1c, 0xc9, 0x09, 0xf5, 0xd8, 0x93, 0x45, 0xcc, 0xbf, 0x88,
+ 0x38, 0xa0, 0x99, 0x9d, 0x78, 0xd7, 0x5e, 0x9b, 0x36, 0x3d, 0xf4, 0xe6, 0xf7, 0xe3, 0x79, 0xde,
+ 0xef, 0x59, 0xa3, 0x87, 0xbd, 0x03, 0xe1, 0x50, 0xe6, 0xf6, 0xfa, 0x67, 0xc0, 0x63, 0x90, 0x20,
+ 0xdc, 0x01, 0xc4, 0x01, 0xe3, 0xae, 0x31, 0x90, 0x84, 0xba, 0x42, 0x32, 0x4e, 0xba, 0xe0, 0x0e,
+ 0xf6, 0xce, 0x40, 0x92, 0x3d, 0xb7, 0x0b, 0x31, 0x70, 0x22, 0x21, 0x70, 0x12, 0xce, 0x24, 0xb3,
+ 0x6b, 0xa9, 0xaf, 0x43, 0x12, 0xea, 0x18, 0x5f, 0xc7, 0xf8, 0xd6, 0x76, 0xbb, 0x54, 0x9e, 0xf7,
+ 0xcf, 0x1c, 0x9f, 0x45, 0x6e, 0x97, 0x75, 0x99, 0xab, 0x21, 0x67, 0xfd, 0x67, 0x5a, 0xd2, 0x82,
+ 0xfe, 0x95, 0x52, 0xd5, 0x9a, 0xb9, 0xb0, 0x3e, 0xe3, 0x2a, 0xe6, 0x74, 0xb8, 0x5a, 0x27, 0xf3,
+ 0x81, 0xe7, 0x12, 0x62, 0x41, 0x59, 0x2c, 0x76, 0x49, 0x42, 0x05, 0xf0, 0x01, 0x70, 0x37, 0xe9,
+ 0x75, 0x95, 0x4d, 0x4c, 0x3a, 0xcc, 0xcb, 0xbe, 0xf6, 0x20, 0xa3, 0x8b, 0x88, 0x7f, 0x4e, 0x63,
+ 0xe0, 0x17, 0x19, 0x47, 0x04, 0x92, 0xcc, 0x4a, 0xc2, 0x9d, 0x87, 0xe2, 0xfd, 0x58, 0xd2, 0x08,
+ 0x0a, 0x80, 0x4f, 0x5f, 0x05, 0x10, 0xfe, 0x39, 0x44, 0xa4, 0x80, 0xfb, 0x78, 0x1e, 0xae, 0x2f,
+ 0x69, 0xe8, 0xd2, 0x58, 0x0a, 0xc9, 0xa7, 0x41, 0xcd, 0x5f, 0x57, 0xd0, 0xfa, 0x49, 0x3a, 0x89,
+ 0x87, 0x21, 0x11, 0xc2, 0xfe, 0x0e, 0x95, 0x55, 0x25, 0x01, 0x91, 0xa4, 0x6a, 0xed, 0x58, 0xad,
+ 0xca, 0xfe, 0x7d, 0x27, 0x9b, 0xda, 0x98, 0xd8, 0x49, 0x7a, 0x5d, 0xa5, 0x10, 0x8e, 0xf2, 0x76,
+ 0x06, 0x7b, 0xce, 0xe3, 0xb3, 0xef, 0xc1, 0x97, 0x1d, 0x90, 0xc4, 0xb3, 0x2f, 0x87, 0x8d, 0x85,
+ 0xd1, 0xb0, 0x81, 0x32, 0x1d, 0x1e, 0xb3, 0xda, 0x9f, 0xa0, 0x4a, 0xc2, 0xd9, 0x80, 0xaa, 0x66,
+ 0x03, 0xaf, 0x2e, 0xee, 0x58, 0xad, 0x35, 0xef, 0x5d, 0x03, 0xa9, 0x1c, 0x67, 0x26, 0x9c, 0xf7,
+ 0xb3, 0x43, 0x84, 0x12, 0xc2, 0x49, 0x04, 0x12, 0xb8, 0xa8, 0x96, 0x76, 0x4a, 0xad, 0xca, 0xfe,
+ 0x81, 0x33, 0x7f, 0xa1, 0x9c, 0x7c, 0x59, 0xce, 0xf1, 0x18, 0x7a, 0x18, 0x4b, 0x7e, 0x91, 0xa5,
+ 0x98, 0x19, 0x70, 0x8e, 0xdf, 0xee, 0xa1, 0x0d, 0x0e, 0x7e, 0x48, 0x68, 0x74, 0xcc, 0x42, 0xea,
+ 0x5f, 0x54, 0x97, 0x74, 0x9a, 0x87, 0xa3, 0x61, 0x63, 0x03, 0xe7, 0x0d, 0xd7, 0xc3, 0xc6, 0xfd,
+ 0xe2, 0x2a, 0x3a, 0xc7, 0xc0, 0x05, 0x15, 0x12, 0x62, 0xf9, 0x84, 0x85, 0xfd, 0x08, 0x26, 0x30,
+ 0x78, 0x92, 0xdb, 0x7e, 0x80, 0xd6, 0x23, 0xd6, 0x8f, 0xe5, 0xe3, 0x44, 0xaa, 0x05, 0xac, 0x2e,
+ 0xef, 0x94, 0x5a, 0x6b, 0xde, 0xe6, 0x68, 0xd8, 0x58, 0xef, 0xe4, 0xf4, 0x78, 0xc2, 0xcb, 0x3e,
+ 0x42, 0xdb, 0x24, 0x0c, 0xd9, 0x8f, 0x69, 0x80, 0xc3, 0xe7, 0x09, 0xd1, 0xfb, 0x5b, 0x5d, 0xd9,
+ 0xb1, 0x5a, 0x65, 0xaf, 0x3a, 0x1a, 0x36, 0xb6, 0xdb, 0x33, 0xec, 0x78, 0x26, 0xca, 0xfe, 0x06,
+ 0x6d, 0x0d, 0xb4, 0xca, 0xa3, 0x71, 0x40, 0xe3, 0x6e, 0x87, 0x05, 0x50, 0x5d, 0xd5, 0x45, 0xdf,
+ 0x1d, 0x0d, 0x1b, 0x5b, 0x4f, 0xa6, 0x8d, 0xd7, 0xb3, 0x94, 0xb8, 0x48, 0x62, 0xff, 0x80, 0xb6,
+ 0x74, 0x44, 0x08, 0x4e, 0x59, 0xc2, 0x42, 0xd6, 0xa5, 0x20, 0xaa, 0x65, 0x3d, 0xbf, 0x56, 0x7e,
+ 0x7e, 0xaa, 0x75, 0x6a, 0x91, 0x8c, 0xd7, 0xc5, 0x09, 0x84, 0xe0, 0x4b, 0xc6, 0x4f, 0x81, 0x47,
+ 0xde, 0x07, 0x66, 0x5e, 0x5b, 0xed, 0x69, 0x2a, 0x5c, 0x64, 0xaf, 0x7d, 0x8e, 0xee, 0x4c, 0x0d,
+ 0xdc, 0xde, 0x44, 0xa5, 0x1e, 0x5c, 0xe8, 0x95, 0x5e, 0xc3, 0xea, 0xa7, 0xbd, 0x8d, 0x96, 0x07,
+ 0x24, 0xec, 0x43, 0xba, 0x81, 0x38, 0x15, 0x3e, 0x5b, 0x3c, 0xb0, 0x9a, 0x7f, 0x58, 0x68, 0x33,
+ 0xbf, 0x3d, 0x47, 0x54, 0x48, 0xfb, 0xdb, 0xc2, 0x61, 0x38, 0xaf, 0x77, 0x18, 0x0a, 0xad, 0xcf,
+ 0x62, 0xd3, 0xd4, 0x50, 0xbe, 0xd1, 0xe4, 0x8e, 0xa2, 0x83, 0x96, 0xa9, 0x84, 0x48, 0x54, 0x17,
+ 0x8b, 0x8d, 0xf9, 0xbf, 0xc5, 0xf6, 0x36, 0x0c, 0xe9, 0xf2, 0x97, 0x0a, 0x8e, 0x53, 0x96, 0xe6,
+ 0xef, 0x8b, 0x68, 0x33, 0x1d, 0x4e, 0x5b, 0x4a, 0xe2, 0x9f, 0x47, 0x10, 0xcb, 0xb7, 0x70, 0xda,
+ 0x18, 0x2d, 0x89, 0x04, 0x7c, 0xdd, 0xd1, 0x49, 0xf6, 0x42, 0x11, 0xd3, 0xd9, 0x9d, 0x24, 0xe0,
+ 0x7b, 0xeb, 0x86, 0x7d, 0x49, 0x49, 0x58, 0x73, 0xd9, 0x4f, 0xd1, 0x8a, 0x90, 0x44, 0xf6, 0xd5,
+ 0xcd, 0x2b, 0xd6, 0xfd, 0x5b, 0xb1, 0x6a, 0xa4, 0xf7, 0x8e, 0xe1, 0x5d, 0x49, 0x65, 0x6c, 0x18,
+ 0x9b, 0x7f, 0x5a, 0x68, 0x7b, 0x1a, 0xf2, 0x16, 0x86, 0xfd, 0xf5, 0xe4, 0xb0, 0xef, 0xdd, 0xa6,
+ 0xa2, 0x39, 0x03, 0x7f, 0x86, 0xde, 0x2b, 0xd4, 0xce, 0xfa, 0xdc, 0x07, 0xf5, 0x4c, 0x24, 0x53,
+ 0x8f, 0xd1, 0x23, 0x12, 0x41, 0x7a, 0x09, 0xe9, 0x33, 0x71, 0x3c, 0xc3, 0x8e, 0x67, 0xa2, 0x9a,
+ 0x7f, 0xcd, 0xe8, 0x98, 0x1a, 0x96, 0x7d, 0x0f, 0x95, 0x89, 0xd6, 0x00, 0x37, 0xd4, 0xe3, 0x0e,
+ 0xb4, 0x8d, 0x1e, 0x8f, 0x3d, 0xf4, 0x50, 0x75, 0x7a, 0x66, 0x55, 0x6e, 0x37, 0x54, 0x8d, 0xcc,
+ 0x0d, 0x55, 0xcb, 0xd8, 0x30, 0xaa, 0x4c, 0x62, 0x16, 0xa4, 0x45, 0x96, 0x26, 0x33, 0x79, 0x64,
+ 0xf4, 0x78, 0xec, 0xd1, 0xfc, 0xb7, 0x34, 0xa3, 0x73, 0x7a, 0x3b, 0x72, 0x25, 0x05, 0xba, 0xa4,
+ 0x72, 0xa1, 0xa4, 0x60, 0x5c, 0x52, 0x60, 0xff, 0x66, 0x21, 0x9b, 0x8c, 0x29, 0x3a, 0x37, 0xdb,
+ 0x93, 0x8e, 0xf8, 0xab, 0xdb, 0x2f, 0xad, 0xd3, 0x2e, 0x90, 0xa5, 0x9f, 0xae, 0x9a, 0x49, 0xc2,
+ 0x2e, 0x3a, 0xe0, 0x19, 0x19, 0xd8, 0x14, 0x55, 0x52, 0xed, 0x21, 0xe7, 0x8c, 0x9b, 0x2b, 0xfa,
+ 0xf0, 0xd5, 0x09, 0x69, 0x77, 0xaf, 0xae, 0x3e, 0xca, 0xed, 0x0c, 0x7f, 0x3d, 0x6c, 0x54, 0x72,
+ 0x76, 0x9c, 0xe7, 0x56, 0xa1, 0x02, 0xc8, 0x42, 0x2d, 0xbd, 0x41, 0xa8, 0x2f, 0x60, 0x7e, 0xa8,
+ 0x1c, 0x77, 0xed, 0x10, 0xbd, 0x3f, 0xa7, 0x41, 0xb7, 0x7a, 0xea, 0x7f, 0xb6, 0x50, 0x3e, 0x86,
+ 0x7d, 0x84, 0x96, 0xd4, 0x7f, 0x2c, 0x73, 0xf4, 0x77, 0x5f, 0xef, 0xe8, 0x4f, 0x69, 0x04, 0xd9,
+ 0xdb, 0xa5, 0x24, 0xac, 0x59, 0xec, 0x8f, 0xd0, 0x6a, 0x04, 0x42, 0x90, 0xae, 0x89, 0xec, 0xdd,
+ 0x31, 0x4e, 0xab, 0x9d, 0x54, 0x8d, 0x6f, 0xec, 0xde, 0xee, 0xe5, 0x55, 0x7d, 0xe1, 0xc5, 0x55,
+ 0x7d, 0xe1, 0xe5, 0x55, 0x7d, 0xe1, 0xa7, 0x51, 0xdd, 0xba, 0x1c, 0xd5, 0xad, 0x17, 0xa3, 0xba,
+ 0xf5, 0x72, 0x54, 0xb7, 0xfe, 0x1e, 0xd5, 0xad, 0x5f, 0xfe, 0xa9, 0x2f, 0x3c, 0x5d, 0x35, 0x7d,
+ 0xfb, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xd8, 0xa9, 0x81, 0xd5, 0x8f, 0x0b, 0x00, 0x00,
}
diff --git a/staging/src/k8s.io/api/storage/v1beta1/generated.proto b/staging/src/k8s.io/api/storage/v1beta1/generated.proto
index 31548fc740e..32032b1a327 100644
--- a/staging/src/k8s.io/api/storage/v1beta1/generated.proto
+++ b/staging/src/k8s.io/api/storage/v1beta1/generated.proto
@@ -71,6 +71,14 @@ message StorageClass {
// the VolumeScheduling feature.
// +optional
optional string volumeBindingMode = 7;
+
+ // Restrict the node topologies where volumes can be dynamically provisioned.
+ // Each volume plugin defines its own supported topology specifications.
+ // An empty TopologySelectorTerm list means there is no topology restriction.
+ // This field is alpha-level and is only honored by servers that enable
+ // the DynamicProvisioningScheduling feature.
+ // +optional
+ repeated k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8;
}
// StorageClassList is a collection of storage classes.
diff --git a/staging/src/k8s.io/api/storage/v1beta1/types.go b/staging/src/k8s.io/api/storage/v1beta1/types.go
index 99c9e4594d8..7ec1e908f47 100644
--- a/staging/src/k8s.io/api/storage/v1beta1/types.go
+++ b/staging/src/k8s.io/api/storage/v1beta1/types.go
@@ -66,6 +66,14 @@ type StorageClass struct {
// the VolumeScheduling feature.
// +optional
VolumeBindingMode *VolumeBindingMode `json:"volumeBindingMode,omitempty" protobuf:"bytes,7,opt,name=volumeBindingMode"`
+
+ // Restrict the node topologies where volumes can be dynamically provisioned.
+ // Each volume plugin defines its own supported topology specifications.
+ // An empty TopologySelectorTerm list means there is no topology restriction.
+ // This field is alpha-level and is only honored by servers that enable
+ // the DynamicProvisioningScheduling feature.
+ // +optional
+ AllowedTopologies []v1.TopologySelectorTerm `json:"allowedTopologies,omitempty" protobuf:"bytes,8,rep,name=allowedTopologies"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
diff --git a/staging/src/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go
index 138586956ac..423e7f271b4 100644
--- a/staging/src/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go
+++ b/staging/src/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go
@@ -36,6 +36,7 @@ var map_StorageClass = map[string]string{
"mountOptions": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.",
"allowVolumeExpansion": "AllowVolumeExpansion shows whether the storage class allow volume expand",
"volumeBindingMode": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.",
+ "allowedTopologies": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is alpha-level and is only honored by servers that enable the DynamicProvisioningScheduling feature.",
}
func (StorageClass) SwaggerDoc() map[string]string {
diff --git a/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go
index fa6c55d4404..7c7c8fde5d1 100644
--- a/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go
+++ b/staging/src/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go
@@ -69,6 +69,13 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) {
**out = **in
}
}
+ if in.AllowedTopologies != nil {
+ in, out := &in.AllowedTopologies, &out.AllowedTopologies
+ *out = make([]v1.TopologySelectorTerm, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
return
}