diff --git a/api/json-schema/schema.json b/api/json-schema/schema.json
index b6ba9f1629..bd2f1f0df8 100644
--- a/api/json-schema/schema.json
+++ b/api/json-schema/schema.json
@@ -20991,7 +20991,7 @@
"io.numaproj.numaflow.v1alpha1.MonoVertexLifecycle": {
"properties": {
"desiredPhase": {
- "description": "DesiredPhase used to bring the pipeline from current phase to desired phase",
+ "description": "DesiredPhase used to bring the MonoVertex from current phase to desired phase",
"type": "string"
}
},
@@ -22391,6 +22391,15 @@
},
"type": "object"
},
+ "io.numaproj.numaflow.v1alpha1.VertexLifecycle": {
+ "properties": {
+ "desiredPhase": {
+ "description": "DesiredPhase used to bring the vertex from current phase to desired phase",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
"io.numaproj.numaflow.v1alpha1.VertexLimits": {
"properties": {
"bufferMaxLength": {
@@ -22491,6 +22500,10 @@
"interStepBufferServiceName": {
"type": "string"
},
+ "lifecycle": {
+ "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.VertexLifecycle",
+ "description": "Lifecycle defines the Lifecycle properties of a ertex"
+ },
"limits": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.VertexLimits",
"description": "Limits define the limitations such as buffer read batch size for all the vertices of a pipeline, will override pipeline level settings"
diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json
index 2d0b9dd227..ee65944db0 100644
--- a/api/openapi-spec/swagger.json
+++ b/api/openapi-spec/swagger.json
@@ -20987,7 +20987,7 @@
"type": "object",
"properties": {
"desiredPhase": {
- "description": "DesiredPhase used to bring the pipeline from current phase to desired phase",
+ "description": "DesiredPhase used to bring the MonoVertex from current phase to desired phase",
"type": "string"
}
}
@@ -22368,6 +22368,15 @@
}
}
},
+ "io.numaproj.numaflow.v1alpha1.VertexLifecycle": {
+ "type": "object",
+ "properties": {
+ "desiredPhase": {
+ "description": "DesiredPhase used to bring the vertex from current phase to desired phase",
+ "type": "string"
+ }
+ }
+ },
"io.numaproj.numaflow.v1alpha1.VertexLimits": {
"type": "object",
"properties": {
@@ -22473,6 +22482,10 @@
"interStepBufferServiceName": {
"type": "string"
},
+ "lifecycle": {
+ "description": "Lifecycle defines the Lifecycle properties of a ertex",
+ "$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.VertexLifecycle"
+ },
"limits": {
"description": "Limits define the limitations such as buffer read batch size for all the vertices of a pipeline, will override pipeline level settings",
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.VertexLimits"
diff --git a/config/base/crds/full/numaflow.numaproj.io_vertices.yaml b/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
index 4fb2d2d566..475c809074 100644
--- a/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
+++ b/config/base/crds/full/numaflow.numaproj.io_vertices.yaml
@@ -1758,6 +1758,19 @@ spec:
type: array
interStepBufferServiceName:
type: string
+ lifecycle:
+ default:
+ desiredPhase: Running
+ properties:
+ desiredPhase:
+ default: Running
+ enum:
+ - ""
+ - Running
+ - Paused
+ - Failed
+ type: string
+ type: object
limits:
properties:
bufferMaxLength:
@@ -6596,6 +6609,7 @@ spec:
enum:
- ""
- Running
+ - Paused
- Failed
type: string
readyReplicas:
diff --git a/config/install.yaml b/config/install.yaml
index e932871dfd..b7327e0eb8 100644
--- a/config/install.yaml
+++ b/config/install.yaml
@@ -23402,6 +23402,19 @@ spec:
type: array
interStepBufferServiceName:
type: string
+ lifecycle:
+ default:
+ desiredPhase: Running
+ properties:
+ desiredPhase:
+ default: Running
+ enum:
+ - ""
+ - Running
+ - Paused
+ - Failed
+ type: string
+ type: object
limits:
properties:
bufferMaxLength:
@@ -28240,6 +28253,7 @@ spec:
enum:
- ""
- Running
+ - Paused
- Failed
type: string
readyReplicas:
diff --git a/config/namespace-install.yaml b/config/namespace-install.yaml
index 3bdb14aa39..665b147111 100644
--- a/config/namespace-install.yaml
+++ b/config/namespace-install.yaml
@@ -23402,6 +23402,19 @@ spec:
type: array
interStepBufferServiceName:
type: string
+ lifecycle:
+ default:
+ desiredPhase: Running
+ properties:
+ desiredPhase:
+ default: Running
+ enum:
+ - ""
+ - Running
+ - Paused
+ - Failed
+ type: string
+ type: object
limits:
properties:
bufferMaxLength:
@@ -28240,6 +28253,7 @@ spec:
enum:
- ""
- Running
+ - Paused
- Failed
type: string
readyReplicas:
diff --git a/docs/APIs.md b/docs/APIs.md
index a3e3ba1e1f..9b8add9158 100644
--- a/docs/APIs.md
+++ b/docs/APIs.md
@@ -6064,7 +6064,7 @@ MonoVertexPhase
(Optional)
-DesiredPhase used to bring the pipeline from current phase to desired
+DesiredPhase used to bring the MonoVertex from current phase to desired
phase
@@ -11840,6 +11840,27 @@ from the pipeline watermark settings.
+
+
+
+
+lifecycle
+
+VertexLifecycle
+ |
+
+
+
+(Optional)
+
+
+Lifecycle defines the Lifecycle properties of a ertex
+
+
+ |
+
+
+
@@ -11948,6 +11969,69 @@ Description
+
+
+VertexLifecycle
+
+
+
+
+(Appears on:
+VertexSpec)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field
+ |
+
+
+
+Description
+ |
+
+
+
+
+
+
+
+
+
+
+
+desiredPhase
+ VertexPhase
+
+ |
+
+
+
+(Optional)
+
+
+DesiredPhase used to bring the vertex from current phase to desired
+phase
+
+
+ |
+
+
+
+
+
+
+
VertexLimits
@@ -12083,6 +12167,7 @@ VertexPhase (string
alias)
(Appears on:
+VertexLifecycle,
VertexStatus)
@@ -12241,6 +12326,27 @@ from the pipeline watermark settings.
+
+
+
+
+lifecycle
+
+VertexLifecycle
+ |
+
+
+
+(Optional)
+
+
+Lifecycle defines the Lifecycle properties of a ertex
+
+
+ |
+
+
+
diff --git a/pkg/apis/numaflow/v1alpha1/generated.pb.go b/pkg/apis/numaflow/v1alpha1/generated.pb.go
index a03d2ec9dc..c85e1bc98a 100644
--- a/pkg/apis/numaflow/v1alpha1/generated.pb.go
+++ b/pkg/apis/numaflow/v1alpha1/generated.pb.go
@@ -2654,10 +2654,38 @@ func (m *VertexInstance) XXX_DiscardUnknown() {
var xxx_messageInfo_VertexInstance proto.InternalMessageInfo
+func (m *VertexLifecycle) Reset() { *m = VertexLifecycle{} }
+func (*VertexLifecycle) ProtoMessage() {}
+func (*VertexLifecycle) Descriptor() ([]byte, []int) {
+ return fileDescriptor_9d0d1b17d3865563, []int{93}
+}
+func (m *VertexLifecycle) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *VertexLifecycle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+}
+func (m *VertexLifecycle) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_VertexLifecycle.Merge(m, src)
+}
+func (m *VertexLifecycle) XXX_Size() int {
+ return m.Size()
+}
+func (m *VertexLifecycle) XXX_DiscardUnknown() {
+ xxx_messageInfo_VertexLifecycle.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_VertexLifecycle proto.InternalMessageInfo
+
func (m *VertexLimits) Reset() { *m = VertexLimits{} }
func (*VertexLimits) ProtoMessage() {}
func (*VertexLimits) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{93}
+ return fileDescriptor_9d0d1b17d3865563, []int{94}
}
func (m *VertexLimits) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2685,7 +2713,7 @@ var xxx_messageInfo_VertexLimits proto.InternalMessageInfo
func (m *VertexList) Reset() { *m = VertexList{} }
func (*VertexList) ProtoMessage() {}
func (*VertexList) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{94}
+ return fileDescriptor_9d0d1b17d3865563, []int{95}
}
func (m *VertexList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2713,7 +2741,7 @@ var xxx_messageInfo_VertexList proto.InternalMessageInfo
func (m *VertexSpec) Reset() { *m = VertexSpec{} }
func (*VertexSpec) ProtoMessage() {}
func (*VertexSpec) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{95}
+ return fileDescriptor_9d0d1b17d3865563, []int{96}
}
func (m *VertexSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2741,7 +2769,7 @@ var xxx_messageInfo_VertexSpec proto.InternalMessageInfo
func (m *VertexStatus) Reset() { *m = VertexStatus{} }
func (*VertexStatus) ProtoMessage() {}
func (*VertexStatus) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{96}
+ return fileDescriptor_9d0d1b17d3865563, []int{97}
}
func (m *VertexStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2769,7 +2797,7 @@ var xxx_messageInfo_VertexStatus proto.InternalMessageInfo
func (m *VertexTemplate) Reset() { *m = VertexTemplate{} }
func (*VertexTemplate) ProtoMessage() {}
func (*VertexTemplate) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{97}
+ return fileDescriptor_9d0d1b17d3865563, []int{98}
}
func (m *VertexTemplate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2797,7 +2825,7 @@ var xxx_messageInfo_VertexTemplate proto.InternalMessageInfo
func (m *Watermark) Reset() { *m = Watermark{} }
func (*Watermark) ProtoMessage() {}
func (*Watermark) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{98}
+ return fileDescriptor_9d0d1b17d3865563, []int{99}
}
func (m *Watermark) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2825,7 +2853,7 @@ var xxx_messageInfo_Watermark proto.InternalMessageInfo
func (m *Window) Reset() { *m = Window{} }
func (*Window) ProtoMessage() {}
func (*Window) Descriptor() ([]byte, []int) {
- return fileDescriptor_9d0d1b17d3865563, []int{99}
+ return fileDescriptor_9d0d1b17d3865563, []int{100}
}
func (m *Window) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2953,6 +2981,7 @@ func init() {
proto.RegisterType((*UpdateStrategy)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.UpdateStrategy")
proto.RegisterType((*Vertex)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.Vertex")
proto.RegisterType((*VertexInstance)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.VertexInstance")
+ proto.RegisterType((*VertexLifecycle)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.VertexLifecycle")
proto.RegisterType((*VertexLimits)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.VertexLimits")
proto.RegisterType((*VertexList)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.VertexList")
proto.RegisterType((*VertexSpec)(nil), "github.com.numaproj.numaflow.pkg.apis.numaflow.v1alpha1.VertexSpec")
@@ -2967,530 +2996,532 @@ func init() {
}
var fileDescriptor_9d0d1b17d3865563 = []byte{
- // 8368 bytes of a gzipped FileDescriptorProto
+ // 8397 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6f, 0x6c, 0x24, 0x49,
- 0x96, 0xd7, 0xd4, 0xff, 0xaa, 0x57, 0xb6, 0xdb, 0x13, 0xdd, 0xd3, 0xe3, 0xf6, 0xf6, 0x74, 0xf5,
- 0xe6, 0xde, 0xce, 0xf6, 0x71, 0x7b, 0x36, 0xe3, 0xdb, 0x99, 0x9d, 0xbd, 0xbd, 0xdd, 0x19, 0x97,
- 0xdd, 0xee, 0xf6, 0xb4, 0xdd, 0xed, 0x7d, 0x65, 0xf7, 0xcc, 0xde, 0x70, 0x3b, 0xa4, 0x33, 0xc3,
- 0xe5, 0x1c, 0x67, 0x65, 0xd6, 0x66, 0x66, 0xb9, 0xdb, 0x73, 0x9c, 0xf6, 0x6e, 0x17, 0x34, 0x8b,
- 0x00, 0x81, 0xee, 0xd3, 0x49, 0xe8, 0x40, 0x20, 0xa4, 0xfb, 0x70, 0x3a, 0x3e, 0x9c, 0x58, 0x3e,
- 0x20, 0xf1, 0xe7, 0x10, 0x82, 0xe5, 0xff, 0x0a, 0x21, 0xb1, 0x48, 0x60, 0xb1, 0x46, 0x08, 0x81,
- 0x04, 0x3a, 0x38, 0x01, 0x47, 0x0b, 0x71, 0x28, 0xfe, 0xe5, 0xbf, 0xca, 0xea, 0xb6, 0x2b, 0xcb,
- 0x3d, 0x3d, 0xcb, 0x7c, 0xab, 0x8a, 0xf7, 0xe2, 0xf7, 0x22, 0x23, 0x23, 0x23, 0x5e, 0xbc, 0xf7,
- 0xe2, 0x05, 0xdc, 0xea, 0x5a, 0xc1, 0xfe, 0x60, 0x77, 0xc1, 0x70, 0x7b, 0x8b, 0xce, 0xa0, 0xa7,
- 0xf7, 0x3d, 0xf7, 0x7d, 0xfe, 0x63, 0xcf, 0x76, 0x1f, 0x2c, 0xf6, 0x0f, 0xba, 0x8b, 0x7a, 0xdf,
- 0xf2, 0xa3, 0x92, 0xc3, 0x57, 0x74, 0xbb, 0xbf, 0xaf, 0xbf, 0xb2, 0xd8, 0xa5, 0x0e, 0xf5, 0xf4,
- 0x80, 0x9a, 0x0b, 0x7d, 0xcf, 0x0d, 0x5c, 0xf2, 0xc5, 0x08, 0x68, 0x41, 0x01, 0x2d, 0xa8, 0x6a,
- 0x0b, 0xfd, 0x83, 0xee, 0x02, 0x03, 0x8a, 0x4a, 0x14, 0xd0, 0xfc, 0x4f, 0xc7, 0x5a, 0xd0, 0x75,
- 0xbb, 0xee, 0x22, 0xc7, 0xdb, 0x1d, 0xec, 0xf1, 0x7f, 0xfc, 0x0f, 0xff, 0x25, 0xe4, 0xcc, 0x6b,
- 0x07, 0xaf, 0xfb, 0x0b, 0x96, 0xcb, 0x9a, 0xb5, 0x68, 0xb8, 0x1e, 0x5d, 0x3c, 0x1c, 0x6a, 0xcb,
- 0xfc, 0x17, 0x22, 0x9e, 0x9e, 0x6e, 0xec, 0x5b, 0x0e, 0xf5, 0x8e, 0xd4, 0xb3, 0x2c, 0x7a, 0xd4,
- 0x77, 0x07, 0x9e, 0x41, 0xcf, 0x54, 0xcb, 0x5f, 0xec, 0xd1, 0x40, 0xcf, 0x92, 0xb5, 0x38, 0xaa,
- 0x96, 0x37, 0x70, 0x02, 0xab, 0x37, 0x2c, 0xe6, 0xb5, 0x27, 0x55, 0xf0, 0x8d, 0x7d, 0xda, 0xd3,
- 0x87, 0xea, 0xfd, 0xcc, 0xa8, 0x7a, 0x83, 0xc0, 0xb2, 0x17, 0x2d, 0x27, 0xf0, 0x03, 0x2f, 0x5d,
- 0x49, 0xfb, 0x1d, 0x80, 0x8b, 0xcb, 0xbb, 0x7e, 0xe0, 0xe9, 0x46, 0xb0, 0xe5, 0x9a, 0xdb, 0xb4,
- 0xd7, 0xb7, 0xf5, 0x80, 0x92, 0x03, 0xa8, 0xb3, 0x07, 0x32, 0xf5, 0x40, 0x9f, 0x2b, 0x5c, 0x2f,
- 0xdc, 0x68, 0x2e, 0x2d, 0x2f, 0x8c, 0xf9, 0x02, 0x17, 0x36, 0x25, 0x50, 0x7b, 0xea, 0xe4, 0xb8,
- 0x55, 0x57, 0xff, 0x30, 0x14, 0x40, 0x7e, 0xad, 0x00, 0x53, 0x8e, 0x6b, 0xd2, 0x0e, 0xb5, 0xa9,
- 0x11, 0xb8, 0xde, 0x5c, 0xf1, 0x7a, 0xe9, 0x46, 0x73, 0xe9, 0x1b, 0x63, 0x4b, 0xcc, 0x78, 0xa2,
- 0x85, 0xbb, 0x31, 0x01, 0x37, 0x9d, 0xc0, 0x3b, 0x6a, 0x5f, 0xfa, 0xfe, 0x71, 0xeb, 0xb9, 0x93,
- 0xe3, 0xd6, 0x54, 0x9c, 0x84, 0x89, 0x96, 0x90, 0x1d, 0x68, 0x06, 0xae, 0xcd, 0xba, 0xcc, 0x72,
- 0x1d, 0x7f, 0xae, 0xc4, 0x1b, 0x76, 0x6d, 0x41, 0x74, 0x35, 0x13, 0xbf, 0xc0, 0xc6, 0xd8, 0xc2,
- 0xe1, 0x2b, 0x0b, 0xdb, 0x21, 0x5b, 0xfb, 0xa2, 0x04, 0x6e, 0x46, 0x65, 0x3e, 0xc6, 0x71, 0x08,
- 0x85, 0x0b, 0x3e, 0x35, 0x06, 0x9e, 0x15, 0x1c, 0xad, 0xb8, 0x4e, 0x40, 0x1f, 0x06, 0x73, 0x65,
- 0xde, 0xcb, 0x2f, 0x67, 0x41, 0x6f, 0xb9, 0x66, 0x27, 0xc9, 0xdd, 0xbe, 0x78, 0x72, 0xdc, 0xba,
- 0x90, 0x2a, 0xc4, 0x34, 0x26, 0x71, 0x60, 0xd6, 0xea, 0xe9, 0x5d, 0xba, 0x35, 0xb0, 0xed, 0x0e,
- 0x35, 0x3c, 0x1a, 0xf8, 0x73, 0x15, 0xfe, 0x08, 0x37, 0xb2, 0xe4, 0x6c, 0xb8, 0x86, 0x6e, 0xdf,
- 0xdb, 0x7d, 0x9f, 0x1a, 0x01, 0xd2, 0x3d, 0xea, 0x51, 0xc7, 0xa0, 0xed, 0x39, 0xf9, 0x30, 0xb3,
- 0xeb, 0x29, 0x24, 0x1c, 0xc2, 0x26, 0xb7, 0xe0, 0xf9, 0xbe, 0x67, 0xb9, 0xbc, 0x09, 0xb6, 0xee,
- 0xfb, 0x77, 0xf5, 0x1e, 0x9d, 0xab, 0x5e, 0x2f, 0xdc, 0x68, 0xb4, 0xaf, 0x48, 0x98, 0xe7, 0xb7,
- 0xd2, 0x0c, 0x38, 0x5c, 0x87, 0xdc, 0x80, 0xba, 0x2a, 0x9c, 0xab, 0x5d, 0x2f, 0xdc, 0xa8, 0x88,
- 0xb1, 0xa3, 0xea, 0x62, 0x48, 0x25, 0x6b, 0x50, 0xd7, 0xf7, 0xf6, 0x2c, 0x87, 0x71, 0xd6, 0x79,
- 0x17, 0x5e, 0xcd, 0x7a, 0xb4, 0x65, 0xc9, 0x23, 0x70, 0xd4, 0x3f, 0x0c, 0xeb, 0x92, 0xb7, 0x80,
- 0xf8, 0xd4, 0x3b, 0xb4, 0x0c, 0xba, 0x6c, 0x18, 0xee, 0xc0, 0x09, 0x78, 0xdb, 0x1b, 0xbc, 0xed,
- 0xf3, 0xb2, 0xed, 0xa4, 0x33, 0xc4, 0x81, 0x19, 0xb5, 0xc8, 0x9b, 0x30, 0x2b, 0xbf, 0xd5, 0xa8,
- 0x17, 0x80, 0x23, 0x5d, 0x62, 0x1d, 0x89, 0x29, 0x1a, 0x0e, 0x71, 0x13, 0x13, 0xae, 0xea, 0x83,
- 0xc0, 0xed, 0x31, 0xc8, 0xa4, 0xd0, 0x6d, 0xf7, 0x80, 0x3a, 0x73, 0xcd, 0xeb, 0x85, 0x1b, 0xf5,
- 0xf6, 0xf5, 0x93, 0xe3, 0xd6, 0xd5, 0xe5, 0xc7, 0xf0, 0xe1, 0x63, 0x51, 0xc8, 0x3d, 0x68, 0x98,
- 0x8e, 0xbf, 0xe5, 0xda, 0x96, 0x71, 0x34, 0x37, 0xc5, 0x1b, 0xf8, 0x8a, 0x7c, 0xd4, 0xc6, 0xea,
- 0xdd, 0x8e, 0x20, 0x3c, 0x3a, 0x6e, 0x5d, 0x1d, 0x9e, 0x52, 0x17, 0x42, 0x3a, 0x46, 0x18, 0x64,
- 0x93, 0x03, 0xae, 0xb8, 0xce, 0x9e, 0xd5, 0x9d, 0x9b, 0xe6, 0x6f, 0xe3, 0xfa, 0x88, 0x01, 0xbd,
- 0x7a, 0xb7, 0x23, 0xf8, 0xda, 0xd3, 0x52, 0x9c, 0xf8, 0x8b, 0x11, 0x02, 0x31, 0x61, 0x46, 0x4d,
- 0xc6, 0x2b, 0xb6, 0x6e, 0xf5, 0xfc, 0xb9, 0x19, 0x3e, 0x78, 0x7f, 0x62, 0x04, 0x26, 0xc6, 0x99,
- 0xdb, 0x97, 0xe5, 0xa3, 0xcc, 0x24, 0x8a, 0x7d, 0x4c, 0x61, 0xce, 0xbf, 0x01, 0xcf, 0x0f, 0xcd,
- 0x0d, 0x64, 0x16, 0x4a, 0x07, 0xf4, 0x88, 0x4f, 0x7d, 0x0d, 0x64, 0x3f, 0xc9, 0x25, 0xa8, 0x1c,
- 0xea, 0xf6, 0x80, 0xce, 0x15, 0x79, 0x99, 0xf8, 0xf3, 0xb3, 0xc5, 0xd7, 0x0b, 0xda, 0x5f, 0x2e,
- 0xc1, 0x94, 0x9a, 0x71, 0x3a, 0x96, 0x73, 0x40, 0xde, 0x86, 0x92, 0xed, 0x76, 0xe5, 0xbc, 0xf9,
- 0x73, 0x63, 0xcf, 0x62, 0x1b, 0x6e, 0xb7, 0x5d, 0x3b, 0x39, 0x6e, 0x95, 0x36, 0xdc, 0x2e, 0x32,
- 0x44, 0x62, 0x40, 0xe5, 0x40, 0xdf, 0x3b, 0xd0, 0x79, 0x1b, 0x9a, 0x4b, 0xed, 0xb1, 0xa1, 0xef,
- 0x30, 0x14, 0xd6, 0xd6, 0x76, 0xe3, 0xe4, 0xb8, 0x55, 0xe1, 0x7f, 0x51, 0x60, 0x13, 0x17, 0x1a,
- 0xbb, 0xb6, 0x6e, 0x1c, 0xec, 0xbb, 0x36, 0x9d, 0x2b, 0xe5, 0x14, 0xd4, 0x56, 0x48, 0xe2, 0x35,
- 0x87, 0x7f, 0x31, 0x92, 0x41, 0x0c, 0xa8, 0x0e, 0x4c, 0xdf, 0x72, 0x0e, 0xe4, 0x1c, 0xf8, 0xc6,
- 0xd8, 0xd2, 0x76, 0x56, 0xf9, 0x33, 0xc1, 0xc9, 0x71, 0xab, 0x2a, 0x7e, 0xa3, 0x84, 0xd6, 0x7e,
- 0x7f, 0x0a, 0x66, 0xd4, 0x4b, 0xba, 0x4f, 0xbd, 0x80, 0x3e, 0x24, 0xd7, 0xa1, 0xec, 0xb0, 0x4f,
- 0x93, 0xbf, 0xe4, 0xf6, 0x94, 0x1c, 0x2e, 0x65, 0xfe, 0x49, 0x72, 0x0a, 0x6b, 0x99, 0x18, 0x2a,
- 0xb2, 0xc3, 0xc7, 0x6f, 0x59, 0x87, 0xc3, 0x88, 0x96, 0x89, 0xdf, 0x28, 0xa1, 0xc9, 0xbb, 0x50,
- 0xe6, 0x0f, 0x2f, 0xba, 0xfa, 0x2b, 0xe3, 0x8b, 0x60, 0x8f, 0x5e, 0x67, 0x4f, 0xc0, 0x1f, 0x9c,
- 0x83, 0xb2, 0xa1, 0x38, 0x30, 0xf7, 0x64, 0xc7, 0xfe, 0x5c, 0x8e, 0x8e, 0x5d, 0x13, 0x43, 0x71,
- 0x67, 0x75, 0x0d, 0x19, 0x22, 0xf9, 0xb3, 0x05, 0x78, 0xde, 0x70, 0x9d, 0x40, 0x67, 0x7a, 0x86,
- 0x5a, 0x64, 0xe7, 0x2a, 0x5c, 0xce, 0x5b, 0x63, 0xcb, 0x59, 0x49, 0x23, 0xb6, 0x5f, 0x60, 0x6b,
- 0xc6, 0x50, 0x31, 0x0e, 0xcb, 0x26, 0x7f, 0xbe, 0x00, 0x2f, 0xb0, 0xb9, 0x7c, 0x88, 0x99, 0xaf,
- 0x40, 0x93, 0x6d, 0xd5, 0x95, 0x93, 0xe3, 0xd6, 0x0b, 0xeb, 0x59, 0xc2, 0x30, 0xbb, 0x0d, 0xac,
- 0x75, 0x17, 0xf5, 0x61, 0xb5, 0x84, 0xaf, 0x6e, 0xcd, 0xa5, 0x8d, 0x49, 0xaa, 0x3a, 0xed, 0x4f,
- 0xc9, 0xa1, 0x9c, 0xa5, 0xd9, 0x61, 0x56, 0x2b, 0xc8, 0x4d, 0xa8, 0x1d, 0xba, 0xf6, 0xa0, 0x47,
- 0xfd, 0xb9, 0x3a, 0x9f, 0x62, 0xe7, 0xb3, 0xa6, 0xd8, 0xfb, 0x9c, 0xa5, 0x7d, 0x41, 0xc2, 0xd7,
- 0xc4, 0x7f, 0x1f, 0x55, 0x5d, 0x62, 0x41, 0xd5, 0xb6, 0x7a, 0x56, 0xe0, 0xf3, 0x85, 0xb3, 0xb9,
- 0x74, 0x73, 0xec, 0xc7, 0x12, 0x9f, 0xe8, 0x06, 0x07, 0x13, 0x5f, 0x8d, 0xf8, 0x8d, 0x52, 0x00,
- 0x9b, 0x0a, 0x7d, 0x43, 0xb7, 0xc5, 0xc2, 0xda, 0x5c, 0xfa, 0xea, 0xf8, 0x9f, 0x0d, 0x43, 0x69,
- 0x4f, 0xcb, 0x67, 0xaa, 0xf0, 0xbf, 0x28, 0xb0, 0xc9, 0x2f, 0xc0, 0x4c, 0xe2, 0x6d, 0xfa, 0x73,
- 0x4d, 0xde, 0x3b, 0x2f, 0x65, 0xf5, 0x4e, 0xc8, 0x15, 0xad, 0x3c, 0x89, 0x11, 0xe2, 0x63, 0x0a,
- 0x8c, 0xdc, 0x81, 0xba, 0x6f, 0x99, 0xd4, 0xd0, 0x3d, 0x7f, 0x6e, 0xea, 0x34, 0xc0, 0xb3, 0x12,
- 0xb8, 0xde, 0x91, 0xd5, 0x30, 0x04, 0x20, 0x0b, 0x00, 0x7d, 0xdd, 0x0b, 0x2c, 0xa1, 0xa8, 0x4e,
- 0x73, 0xa5, 0x69, 0xe6, 0xe4, 0xb8, 0x05, 0x5b, 0x61, 0x29, 0xc6, 0x38, 0x18, 0x3f, 0xab, 0xbb,
- 0xee, 0xf4, 0x07, 0x81, 0x58, 0x58, 0x1b, 0x82, 0xbf, 0x13, 0x96, 0x62, 0x8c, 0x83, 0xfc, 0x56,
- 0x01, 0x3e, 0x15, 0xfd, 0x1d, 0xfe, 0xc8, 0x2e, 0x4c, 0xfc, 0x23, 0x6b, 0x9d, 0x1c, 0xb7, 0x3e,
- 0xd5, 0x19, 0x2d, 0x12, 0x1f, 0xd7, 0x1e, 0xf2, 0x61, 0x01, 0x66, 0x06, 0x7d, 0x53, 0x0f, 0x68,
- 0x27, 0x60, 0x3b, 0x9e, 0xee, 0xd1, 0xdc, 0x2c, 0x6f, 0xe2, 0xad, 0xf1, 0x67, 0xc1, 0x04, 0x5c,
- 0xf4, 0x9a, 0x93, 0xe5, 0x98, 0x12, 0xab, 0xbd, 0x0d, 0xd3, 0xcb, 0x83, 0x60, 0xdf, 0xf5, 0xac,
- 0x0f, 0xb8, 0xfa, 0x4f, 0xd6, 0xa0, 0x12, 0x70, 0x35, 0x4e, 0x68, 0x08, 0x9f, 0xcd, 0x7a, 0xe9,
- 0x42, 0xa5, 0xbe, 0x43, 0x8f, 0x94, 0x5e, 0x22, 0x56, 0x6a, 0xa1, 0xd6, 0x89, 0xea, 0xda, 0x1f,
- 0x2f, 0x40, 0xad, 0xad, 0x1b, 0x07, 0xee, 0xde, 0x1e, 0x79, 0x07, 0xea, 0x96, 0x13, 0x50, 0xef,
- 0x50, 0xb7, 0x25, 0xec, 0x42, 0x0c, 0x36, 0xdc, 0x10, 0x46, 0x8f, 0xc7, 0x76, 0x5f, 0x4c, 0xd0,
- 0xea, 0x40, 0xee, 0x5a, 0xb8, 0x66, 0xbc, 0x2e, 0x31, 0x30, 0x44, 0x23, 0x2d, 0xa8, 0xf8, 0x01,
- 0xed, 0xfb, 0x7c, 0x0d, 0x9c, 0x16, 0xcd, 0xe8, 0xb0, 0x02, 0x14, 0xe5, 0xda, 0x5f, 0x2a, 0x40,
- 0xa3, 0xad, 0xfb, 0x96, 0xc1, 0x9e, 0x92, 0xac, 0x40, 0x79, 0xe0, 0x53, 0xef, 0x6c, 0xcf, 0xc6,
- 0x97, 0xad, 0x1d, 0x9f, 0x7a, 0xc8, 0x2b, 0x93, 0x7b, 0x50, 0xef, 0xeb, 0xbe, 0xff, 0xc0, 0xf5,
- 0x4c, 0xb9, 0xf4, 0x9e, 0x12, 0x48, 0x6c, 0x13, 0x64, 0x55, 0x0c, 0x41, 0xb4, 0x26, 0x44, 0xba,
- 0x87, 0xf6, 0x7b, 0x05, 0xb8, 0xd8, 0x1e, 0xec, 0xed, 0x51, 0x4f, 0x6a, 0xc5, 0x52, 0xdf, 0xa4,
- 0x50, 0xf1, 0xa8, 0x69, 0xf9, 0xb2, 0xed, 0xab, 0x63, 0x0f, 0x14, 0x64, 0x28, 0x52, 0xbd, 0xe5,
- 0xfd, 0xc5, 0x0b, 0x50, 0xa0, 0x93, 0x01, 0x34, 0xde, 0xa7, 0x6c, 0x37, 0x4e, 0xf5, 0x9e, 0x7c,
- 0xba, 0xdb, 0x63, 0x8b, 0x7a, 0x8b, 0x06, 0x1d, 0x8e, 0x14, 0xd7, 0xa6, 0xc3, 0x42, 0x8c, 0x24,
- 0x69, 0xbf, 0x53, 0x81, 0xa9, 0x15, 0xb7, 0xb7, 0x6b, 0x39, 0xd4, 0xbc, 0x69, 0x76, 0x29, 0x79,
- 0x0f, 0xca, 0xd4, 0xec, 0x52, 0xf9, 0xb4, 0xe3, 0x2b, 0x1e, 0x0c, 0x2c, 0x52, 0x9f, 0xd8, 0x3f,
- 0xe4, 0xc0, 0x64, 0x03, 0x66, 0xf6, 0x3c, 0xb7, 0x27, 0xe6, 0xf2, 0xed, 0xa3, 0xbe, 0xd4, 0x9d,
- 0xdb, 0x3f, 0xa1, 0x3e, 0x9c, 0xb5, 0x04, 0xf5, 0xd1, 0x71, 0x0b, 0xa2, 0x7f, 0x98, 0xaa, 0x4b,
- 0xde, 0x81, 0xb9, 0xa8, 0x24, 0x9c, 0xd4, 0x56, 0xd8, 0x76, 0x86, 0xeb, 0x4e, 0x95, 0xf6, 0xd5,
- 0x93, 0xe3, 0xd6, 0xdc, 0xda, 0x08, 0x1e, 0x1c, 0x59, 0x9b, 0x4d, 0x15, 0xb3, 0x11, 0x51, 0x2c,
- 0x34, 0x52, 0x65, 0x9a, 0xd0, 0x0a, 0xc6, 0xf7, 0x7d, 0x6b, 0x29, 0x11, 0x38, 0x24, 0x94, 0xac,
- 0xc1, 0x54, 0xe0, 0xc6, 0xfa, 0xab, 0xc2, 0xfb, 0x4b, 0x53, 0x86, 0x8a, 0x6d, 0x77, 0x64, 0x6f,
- 0x25, 0xea, 0x11, 0x84, 0xcb, 0xea, 0x7f, 0xaa, 0xa7, 0xaa, 0xbc, 0xa7, 0xe6, 0x4f, 0x8e, 0x5b,
- 0x97, 0xb7, 0x33, 0x39, 0x70, 0x44, 0x4d, 0xf2, 0x2b, 0x05, 0x98, 0x51, 0x24, 0xd9, 0x47, 0xb5,
- 0x49, 0xf6, 0x11, 0x61, 0x23, 0x62, 0x3b, 0x21, 0x00, 0x53, 0x02, 0xb5, 0xef, 0xd5, 0xa0, 0x11,
- 0x4e, 0xf5, 0xe4, 0x33, 0x50, 0xe1, 0x26, 0x08, 0xa9, 0xc1, 0x87, 0x6b, 0x38, 0xb7, 0x54, 0xa0,
- 0xa0, 0x91, 0xcf, 0x42, 0xcd, 0x70, 0x7b, 0x3d, 0xdd, 0x31, 0xb9, 0x59, 0xa9, 0xd1, 0x6e, 0x32,
- 0xd5, 0x65, 0x45, 0x14, 0xa1, 0xa2, 0x91, 0xab, 0x50, 0xd6, 0xbd, 0xae, 0xb0, 0xf0, 0x34, 0xc4,
- 0x7c, 0xb4, 0xec, 0x75, 0x7d, 0xe4, 0xa5, 0xe4, 0x4b, 0x50, 0xa2, 0xce, 0xe1, 0x5c, 0x79, 0xb4,
- 0x6e, 0x74, 0xd3, 0x39, 0xbc, 0xaf, 0x7b, 0xed, 0xa6, 0x6c, 0x43, 0xe9, 0xa6, 0x73, 0x88, 0xac,
- 0x0e, 0xd9, 0x80, 0x1a, 0x75, 0x0e, 0xd9, 0xbb, 0x97, 0xa6, 0x97, 0x4f, 0x8f, 0xa8, 0xce, 0x58,
- 0xe4, 0x36, 0x21, 0xd4, 0xb0, 0x64, 0x31, 0x2a, 0x08, 0xf2, 0x75, 0x98, 0x12, 0xca, 0xd6, 0x26,
- 0x7b, 0x27, 0xfe, 0x5c, 0x95, 0x43, 0xb6, 0x46, 0x6b, 0x6b, 0x9c, 0x2f, 0x32, 0x75, 0xc5, 0x0a,
- 0x7d, 0x4c, 0x40, 0x91, 0xaf, 0x43, 0x43, 0xed, 0x8c, 0xd5, 0x9b, 0xcd, 0xb4, 0x12, 0xa9, 0xed,
- 0x34, 0xd2, 0x6f, 0x0e, 0x2c, 0x8f, 0xf6, 0xa8, 0x13, 0xf8, 0xed, 0xe7, 0x95, 0xdd, 0x40, 0x51,
- 0x7d, 0x8c, 0xd0, 0xc8, 0xee, 0xb0, 0xb9, 0x4b, 0xd8, 0x6a, 0x3e, 0x33, 0x62, 0x56, 0x1f, 0xc3,
- 0xd6, 0xf5, 0x0d, 0xb8, 0x10, 0xda, 0xa3, 0xa4, 0x49, 0x43, 0x58, 0x6f, 0xbe, 0xc0, 0xaa, 0xaf,
- 0x27, 0x49, 0x8f, 0x8e, 0x5b, 0x2f, 0x65, 0x18, 0x35, 0x22, 0x06, 0x4c, 0x83, 0x91, 0x0f, 0x60,
- 0xc6, 0xa3, 0xba, 0x69, 0x39, 0xd4, 0xf7, 0xb7, 0x3c, 0x77, 0x37, 0xbf, 0xe6, 0xc9, 0x51, 0xc4,
- 0xb0, 0xc7, 0x04, 0x32, 0xa6, 0x24, 0x91, 0x07, 0x30, 0x6d, 0x5b, 0x87, 0x34, 0x12, 0xdd, 0x9c,
- 0x88, 0xe8, 0xe7, 0x4f, 0x8e, 0x5b, 0xd3, 0x1b, 0x71, 0x60, 0x4c, 0xca, 0x61, 0x9a, 0x4a, 0xdf,
- 0xf5, 0x02, 0xa5, 0x9e, 0x7e, 0xfa, 0xb1, 0xea, 0xe9, 0x96, 0xeb, 0x05, 0xd1, 0x47, 0xc8, 0xfe,
- 0xf9, 0x28, 0xaa, 0x6b, 0x7f, 0xad, 0x02, 0xc3, 0x9b, 0xb8, 0xe4, 0x88, 0x2b, 0x4c, 0x7a, 0xc4,
- 0xa5, 0x47, 0x83, 0x58, 0x7b, 0x5e, 0x97, 0xd5, 0x26, 0x30, 0x22, 0x32, 0x46, 0x75, 0x69, 0xd2,
- 0xa3, 0xfa, 0x99, 0x99, 0x78, 0x86, 0x87, 0x7f, 0xf5, 0xa3, 0x1b, 0xfe, 0xb5, 0xa7, 0x33, 0xfc,
- 0xb5, 0xef, 0x96, 0x61, 0x66, 0x55, 0xa7, 0x3d, 0xd7, 0x79, 0xe2, 0x3e, 0xbe, 0xf0, 0x4c, 0xec,
- 0xe3, 0x6f, 0x40, 0xdd, 0xa3, 0x7d, 0xdb, 0x32, 0x74, 0xa1, 0xae, 0x4b, 0xbb, 0x39, 0xca, 0x32,
- 0x0c, 0xa9, 0x23, 0xec, 0x37, 0xa5, 0x67, 0xd2, 0x7e, 0x53, 0xfe, 0xe8, 0xed, 0x37, 0xda, 0xaf,
- 0x14, 0x81, 0xab, 0xb6, 0xe4, 0x3a, 0x94, 0x99, 0xda, 0x96, 0xb6, 0x1a, 0xf2, 0xaf, 0x85, 0x53,
- 0xc8, 0x3c, 0x14, 0x03, 0x57, 0x4e, 0x37, 0x20, 0xe9, 0xc5, 0x6d, 0x17, 0x8b, 0x81, 0x4b, 0x3e,
- 0x00, 0x30, 0x5c, 0xc7, 0xb4, 0x94, 0x3b, 0x29, 0xdf, 0x83, 0xad, 0xb9, 0xde, 0x03, 0xdd, 0x33,
- 0x57, 0x42, 0x44, 0xb1, 0x83, 0x8f, 0xfe, 0x63, 0x4c, 0x1a, 0x79, 0x03, 0xaa, 0xae, 0xb3, 0x36,
- 0xb0, 0x6d, 0xde, 0xa1, 0x8d, 0xf6, 0xe7, 0x4e, 0x8e, 0x5b, 0xd5, 0x7b, 0xbc, 0xe4, 0xd1, 0x71,
- 0xeb, 0x8a, 0xd8, 0x11, 0xb1, 0x7f, 0x6f, 0x7b, 0x56, 0x60, 0x39, 0xdd, 0x70, 0x43, 0x2b, 0xab,
- 0x69, 0xbf, 0x5a, 0x80, 0xe6, 0x9a, 0xf5, 0x90, 0x9a, 0x6f, 0x5b, 0x8e, 0xe9, 0x3e, 0x20, 0x08,
- 0x55, 0x9b, 0x3a, 0xdd, 0x60, 0x7f, 0xcc, 0x1d, 0xa7, 0xb0, 0xeb, 0x70, 0x04, 0x94, 0x48, 0x64,
- 0x11, 0x1a, 0x62, 0xbf, 0x62, 0x39, 0x5d, 0xde, 0x87, 0xf5, 0x68, 0xa6, 0xef, 0x28, 0x02, 0x46,
- 0x3c, 0xda, 0x11, 0x3c, 0x3f, 0xd4, 0x0d, 0xc4, 0x84, 0x72, 0xa0, 0x77, 0xd5, 0xa2, 0xb2, 0x36,
- 0x76, 0x07, 0x6f, 0xeb, 0xdd, 0x58, 0xe7, 0x72, 0xad, 0x70, 0x5b, 0x67, 0x5a, 0x21, 0x43, 0xd7,
- 0xfe, 0x4f, 0x01, 0xea, 0x6b, 0x03, 0xc7, 0xe0, 0x9b, 0xfa, 0x27, 0x5b, 0x93, 0x95, 0x8a, 0x59,
- 0xcc, 0x54, 0x31, 0x07, 0x50, 0x3d, 0x78, 0x10, 0xaa, 0xa0, 0xcd, 0xa5, 0xcd, 0xf1, 0x47, 0x85,
- 0x6c, 0xd2, 0xc2, 0x1d, 0x8e, 0x27, 0x9c, 0x9d, 0x33, 0xb2, 0x41, 0xd5, 0x3b, 0x6f, 0x73, 0xa1,
- 0x52, 0xd8, 0xfc, 0x97, 0xa0, 0x19, 0x63, 0x3b, 0x93, 0xdf, 0xe3, 0xaf, 0x97, 0xa1, 0x7a, 0xab,
- 0xd3, 0x59, 0xde, 0x5a, 0x27, 0xaf, 0x42, 0x53, 0xfa, 0xc1, 0xee, 0x46, 0x7d, 0x10, 0xba, 0x41,
- 0x3b, 0x11, 0x09, 0xe3, 0x7c, 0x4c, 0x81, 0xf7, 0xa8, 0x6e, 0xf7, 0xe4, 0xc7, 0x12, 0xea, 0x0e,
- 0xc8, 0x0a, 0x51, 0xd0, 0x88, 0x0e, 0x33, 0x03, 0x9f, 0x7a, 0xac, 0x0b, 0xc5, 0x7e, 0x5f, 0x7e,
- 0x36, 0xa7, 0xb4, 0x08, 0xf0, 0x05, 0x66, 0x27, 0x01, 0x80, 0x29, 0x40, 0xf2, 0x3a, 0xd4, 0xf5,
- 0x41, 0xb0, 0xcf, 0xb7, 0x5c, 0xe2, 0xdb, 0xb8, 0xca, 0xdd, 0x84, 0xb2, 0xec, 0xd1, 0x71, 0x6b,
- 0xea, 0x0e, 0xb6, 0x5f, 0x55, 0xff, 0x31, 0xe4, 0x66, 0x8d, 0x53, 0x36, 0x06, 0xd9, 0xb8, 0xca,
- 0x99, 0x1b, 0xb7, 0x95, 0x00, 0xc0, 0x14, 0x20, 0x79, 0x17, 0xa6, 0x0e, 0xe8, 0x51, 0xa0, 0xef,
- 0x4a, 0x01, 0xd5, 0xb3, 0x08, 0x98, 0x65, 0x4a, 0xff, 0x9d, 0x58, 0x75, 0x4c, 0x80, 0x11, 0x1f,
- 0x2e, 0x1d, 0x50, 0x6f, 0x97, 0x7a, 0xae, 0xb4, 0x57, 0x48, 0x21, 0xb5, 0xb3, 0x08, 0x99, 0x3b,
- 0x39, 0x6e, 0x5d, 0xba, 0x93, 0x01, 0x83, 0x99, 0xe0, 0xda, 0xff, 0x2e, 0xc2, 0x85, 0x5b, 0x22,
- 0x10, 0xc1, 0xf5, 0x84, 0xe6, 0x41, 0xae, 0x40, 0xc9, 0xeb, 0x0f, 0xf8, 0xc8, 0x29, 0x09, 0x57,
- 0x03, 0x6e, 0xed, 0x20, 0x2b, 0x23, 0xef, 0x40, 0xdd, 0x94, 0x53, 0x86, 0x34, 0x97, 0x8c, 0x65,
- 0xda, 0x52, 0xff, 0x30, 0x44, 0x63, 0x7b, 0xc3, 0x9e, 0xdf, 0xed, 0x58, 0x1f, 0x50, 0x69, 0x41,
- 0xe0, 0x7b, 0xc3, 0x4d, 0x51, 0x84, 0x8a, 0xc6, 0x56, 0xd5, 0x03, 0x7a, 0x24, 0xf6, 0xcf, 0xe5,
- 0x68, 0x55, 0xbd, 0x23, 0xcb, 0x30, 0xa4, 0x92, 0x96, 0xfa, 0x58, 0xd8, 0x28, 0x28, 0x0b, 0xdb,
- 0xcf, 0x7d, 0x56, 0x20, 0xbf, 0x1b, 0x36, 0x65, 0xbe, 0x6f, 0x05, 0x01, 0xf5, 0xe4, 0x6b, 0x1c,
- 0x6b, 0xca, 0x7c, 0x8b, 0x23, 0xa0, 0x44, 0x22, 0x3f, 0x05, 0x0d, 0x0e, 0xde, 0xb6, 0xdd, 0x5d,
- 0xfe, 0xe2, 0x1a, 0xc2, 0x0a, 0x74, 0x5f, 0x15, 0x62, 0x44, 0xd7, 0xfe, 0xa0, 0x08, 0x97, 0x6f,
- 0xd1, 0x40, 0x68, 0x35, 0xab, 0xb4, 0x6f, 0xbb, 0x47, 0x4c, 0x9f, 0x46, 0xfa, 0x4d, 0xf2, 0x26,
- 0x80, 0xe5, 0xef, 0x76, 0x0e, 0x0d, 0xfe, 0x1d, 0x88, 0x6f, 0xf8, 0xba, 0xfc, 0x24, 0x61, 0xbd,
- 0xd3, 0x96, 0x94, 0x47, 0x89, 0x7f, 0x18, 0xab, 0x13, 0x6d, 0xc8, 0x8b, 0x8f, 0xd9, 0x90, 0x77,
- 0x00, 0xfa, 0x91, 0x56, 0x5e, 0xe2, 0x9c, 0x3f, 0xa3, 0xc4, 0x9c, 0x45, 0x21, 0x8f, 0xc1, 0xe4,
- 0xd1, 0x93, 0x1d, 0x98, 0x35, 0xe9, 0x9e, 0x3e, 0xb0, 0x83, 0x70, 0x27, 0x21, 0x3f, 0xe2, 0xd3,
- 0x6f, 0x46, 0xc2, 0x20, 0x89, 0xd5, 0x14, 0x12, 0x0e, 0x61, 0x6b, 0x7f, 0xa3, 0x04, 0xf3, 0xb7,
- 0x68, 0x10, 0xda, 0xe8, 0xe4, 0xec, 0xd8, 0xe9, 0x53, 0x83, 0xbd, 0x85, 0x0f, 0x0b, 0x50, 0xb5,
- 0xf5, 0x5d, 0x6a, 0xb3, 0xd5, 0x8b, 0x3d, 0xcd, 0x7b, 0x63, 0x2f, 0x04, 0xa3, 0xa5, 0x2c, 0x6c,
- 0x70, 0x09, 0xa9, 0xa5, 0x41, 0x14, 0xa2, 0x14, 0xcf, 0x26, 0x75, 0xc3, 0x1e, 0xf8, 0x81, 0xd8,
- 0xd9, 0x49, 0x7d, 0x32, 0x9c, 0xd4, 0x57, 0x22, 0x12, 0xc6, 0xf9, 0xc8, 0x12, 0x80, 0x61, 0x5b,
- 0xd4, 0x09, 0x78, 0x2d, 0xf1, 0x5d, 0x11, 0xf5, 0x7e, 0x57, 0x42, 0x0a, 0xc6, 0xb8, 0x98, 0xa8,
- 0x9e, 0xeb, 0x58, 0x81, 0x2b, 0x44, 0x95, 0x93, 0xa2, 0x36, 0x23, 0x12, 0xc6, 0xf9, 0x78, 0x35,
- 0x1a, 0x78, 0x96, 0xe1, 0xf3, 0x6a, 0x95, 0x54, 0xb5, 0x88, 0x84, 0x71, 0x3e, 0xb6, 0xe6, 0xc5,
- 0x9e, 0xff, 0x4c, 0x6b, 0xde, 0x6f, 0x36, 0xe0, 0x5a, 0xa2, 0x5b, 0x03, 0x3d, 0xa0, 0x7b, 0x03,
- 0xbb, 0x43, 0x03, 0xf5, 0x02, 0xc7, 0x5c, 0x0b, 0xff, 0x54, 0xf4, 0xde, 0x45, 0xf8, 0x93, 0x31,
- 0x99, 0xf7, 0x3e, 0xd4, 0xc0, 0x53, 0xbd, 0xfb, 0x45, 0x68, 0x38, 0x7a, 0xe0, 0xf3, 0x0f, 0x57,
- 0x7e, 0xa3, 0xa1, 0x1a, 0x76, 0x57, 0x11, 0x30, 0xe2, 0x21, 0x5b, 0x70, 0x49, 0x76, 0xf1, 0xcd,
- 0x87, 0x6c, 0xcf, 0x4f, 0x3d, 0x51, 0x57, 0x2e, 0xa7, 0xb2, 0xee, 0xa5, 0xcd, 0x0c, 0x1e, 0xcc,
- 0xac, 0x49, 0x36, 0xe1, 0xa2, 0x21, 0x42, 0x42, 0xa8, 0xed, 0xea, 0xa6, 0x02, 0x14, 0x26, 0xd1,
- 0x70, 0x6b, 0xb4, 0x32, 0xcc, 0x82, 0x59, 0xf5, 0xd2, 0xa3, 0xb9, 0x3a, 0xd6, 0x68, 0xae, 0x8d,
- 0x33, 0x9a, 0xeb, 0xe3, 0x8d, 0xe6, 0xc6, 0xe9, 0x46, 0x33, 0xeb, 0x79, 0x36, 0x8e, 0xa8, 0xc7,
- 0xd4, 0x13, 0xb1, 0xc2, 0xc6, 0x22, 0x8e, 0xc2, 0x9e, 0xef, 0x64, 0xf0, 0x60, 0x66, 0x4d, 0xb2,
- 0x0b, 0xf3, 0xa2, 0xfc, 0xa6, 0x63, 0x78, 0x47, 0x7d, 0xb6, 0xf0, 0xc4, 0x70, 0x9b, 0x09, 0x9b,
- 0xf4, 0x7c, 0x67, 0x24, 0x27, 0x3e, 0x06, 0x85, 0x7c, 0x19, 0xa6, 0xc5, 0x5b, 0xda, 0xd4, 0xfb,
- 0x1c, 0x56, 0xc4, 0x1f, 0xbd, 0x20, 0x61, 0xa7, 0x57, 0xe2, 0x44, 0x4c, 0xf2, 0x92, 0x65, 0xb8,
- 0xd0, 0x3f, 0x34, 0xd8, 0xcf, 0xf5, 0xbd, 0xbb, 0x94, 0x9a, 0xd4, 0xe4, 0x0e, 0xcf, 0x46, 0xfb,
- 0x45, 0x65, 0xdd, 0xd9, 0x4a, 0x92, 0x31, 0xcd, 0x4f, 0x5e, 0x87, 0x29, 0x3f, 0xd0, 0xbd, 0x40,
- 0x1a, 0x82, 0xe7, 0x66, 0x44, 0x7c, 0x96, 0xb2, 0x93, 0x76, 0x62, 0x34, 0x4c, 0x70, 0x66, 0xae,
- 0x17, 0x17, 0xce, 0x6f, 0xbd, 0xc8, 0x33, 0x5b, 0xfd, 0x83, 0x22, 0x5c, 0xbf, 0x45, 0x83, 0x4d,
- 0xd7, 0x91, 0x66, 0xf4, 0xac, 0x65, 0xff, 0x54, 0x56, 0xf4, 0xe4, 0xa2, 0x5d, 0x9c, 0xe8, 0xa2,
- 0x5d, 0x9a, 0xd0, 0xa2, 0x5d, 0x3e, 0xc7, 0x45, 0xfb, 0x6f, 0x15, 0xe1, 0xc5, 0x44, 0x4f, 0x6e,
- 0xb9, 0xa6, 0x9a, 0xf0, 0x3f, 0xe9, 0xc0, 0x53, 0x74, 0xe0, 0x23, 0xa1, 0x77, 0x72, 0x47, 0x68,
- 0x4a, 0xe3, 0xf9, 0x4e, 0x5a, 0xe3, 0x79, 0x37, 0xcf, 0xca, 0x97, 0x21, 0xe1, 0x54, 0x2b, 0xde,
- 0x5b, 0x40, 0x3c, 0xe9, 0xb6, 0x8d, 0xcc, 0xd9, 0x52, 0xe9, 0x09, 0x03, 0x40, 0x71, 0x88, 0x03,
- 0x33, 0x6a, 0x91, 0x0e, 0xbc, 0xe0, 0x53, 0x27, 0xb0, 0x1c, 0x6a, 0x27, 0xe1, 0x84, 0x36, 0xf4,
- 0x92, 0x84, 0x7b, 0xa1, 0x93, 0xc5, 0x84, 0xd9, 0x75, 0xf3, 0xcc, 0x03, 0xff, 0x04, 0xb8, 0xca,
- 0x29, 0xba, 0x66, 0x62, 0x1a, 0xcb, 0x87, 0x69, 0x8d, 0xe5, 0xbd, 0xfc, 0xef, 0x6d, 0x3c, 0x6d,
- 0x65, 0x09, 0x80, 0xbf, 0x85, 0xb8, 0xba, 0x12, 0x2e, 0xd2, 0x18, 0x52, 0x30, 0xc6, 0xc5, 0x16,
- 0x20, 0xd5, 0xcf, 0x71, 0x4d, 0x25, 0x5c, 0x80, 0x3a, 0x71, 0x22, 0x26, 0x79, 0x47, 0x6a, 0x3b,
- 0x95, 0xb1, 0xb5, 0x9d, 0xb7, 0x80, 0x24, 0x0c, 0x8f, 0x02, 0xaf, 0x9a, 0x8c, 0x3f, 0x5e, 0x1f,
- 0xe2, 0xc0, 0x8c, 0x5a, 0x23, 0x86, 0x72, 0x6d, 0xb2, 0x43, 0xb9, 0x3e, 0xfe, 0x50, 0x26, 0xef,
- 0xc1, 0x15, 0x2e, 0x4a, 0xf6, 0x4f, 0x12, 0x58, 0xe8, 0x3d, 0x9f, 0x96, 0xc0, 0x57, 0x70, 0x14,
- 0x23, 0x8e, 0xc6, 0x60, 0xef, 0xc7, 0xf0, 0xa8, 0xc9, 0x84, 0xeb, 0xf6, 0x68, 0x9d, 0x68, 0x25,
- 0x83, 0x07, 0x33, 0x6b, 0xb2, 0x21, 0x16, 0xb0, 0x61, 0xa8, 0xef, 0xda, 0xd4, 0x94, 0xf1, 0xd7,
- 0xe1, 0x10, 0xdb, 0xde, 0xe8, 0x48, 0x0a, 0xc6, 0xb8, 0xb2, 0xd4, 0x94, 0xa9, 0x33, 0xaa, 0x29,
- 0xb7, 0xb8, 0x95, 0x7e, 0x2f, 0xa1, 0x0d, 0x49, 0x5d, 0x27, 0x8c, 0xa8, 0x5f, 0x49, 0x33, 0xe0,
- 0x70, 0x1d, 0xae, 0x25, 0x1a, 0x9e, 0xd5, 0x0f, 0xfc, 0x24, 0xd6, 0x4c, 0x4a, 0x4b, 0xcc, 0xe0,
- 0xc1, 0xcc, 0x9a, 0x4c, 0x3f, 0xdf, 0xa7, 0xba, 0x1d, 0xec, 0x27, 0x01, 0x2f, 0x24, 0xf5, 0xf3,
- 0xdb, 0xc3, 0x2c, 0x98, 0x55, 0x2f, 0x73, 0x41, 0x9a, 0x7d, 0x36, 0xd5, 0xaa, 0x6f, 0x97, 0xe0,
- 0xca, 0x2d, 0x1a, 0x84, 0xa1, 0x69, 0x9f, 0x98, 0x51, 0x3e, 0x02, 0x33, 0xca, 0x6f, 0x54, 0xe0,
- 0xe2, 0x2d, 0x1a, 0x0c, 0x69, 0x63, 0xff, 0x9f, 0x76, 0xff, 0x26, 0x5c, 0x8c, 0xa2, 0x21, 0x3b,
- 0x81, 0xeb, 0x89, 0xb5, 0x3c, 0xb5, 0x5b, 0xee, 0x0c, 0xb3, 0x60, 0x56, 0x3d, 0xf2, 0x75, 0x78,
- 0x91, 0x2f, 0xf5, 0x4e, 0x57, 0xd8, 0x67, 0x85, 0x31, 0x21, 0x76, 0x9e, 0xa7, 0x25, 0x21, 0x5f,
- 0xec, 0x64, 0xb3, 0xe1, 0xa8, 0xfa, 0xe4, 0x5b, 0x30, 0xd5, 0xb7, 0xfa, 0xd4, 0xb6, 0x1c, 0xae,
- 0x9f, 0xe5, 0x0e, 0x22, 0xda, 0x8a, 0x81, 0x45, 0x1b, 0xb8, 0x78, 0x29, 0x26, 0x04, 0x66, 0x8e,
- 0xd4, 0xfa, 0x39, 0x8e, 0xd4, 0xff, 0x5e, 0x84, 0xda, 0x2d, 0xcf, 0x1d, 0xf4, 0xdb, 0x47, 0xa4,
- 0x0b, 0xd5, 0x07, 0xdc, 0x79, 0x26, 0x5d, 0x53, 0xe3, 0x9f, 0x28, 0x10, 0x3e, 0xb8, 0x48, 0x25,
- 0x12, 0xff, 0x51, 0xc2, 0xb3, 0x41, 0x7c, 0x40, 0x8f, 0xa8, 0x29, 0x7d, 0x68, 0xe1, 0x20, 0xbe,
- 0xc3, 0x0a, 0x51, 0xd0, 0x48, 0x0f, 0x2e, 0xe8, 0xb6, 0xed, 0x3e, 0xa0, 0xe6, 0x86, 0x1e, 0x70,
- 0xbf, 0xb7, 0xf4, 0xad, 0x9c, 0xd5, 0x2c, 0xcd, 0x83, 0x19, 0x96, 0x93, 0x50, 0x98, 0xc6, 0x26,
- 0xef, 0x43, 0xcd, 0x0f, 0x5c, 0x4f, 0x29, 0x5b, 0xcd, 0xa5, 0x95, 0xf1, 0x5f, 0x7a, 0xfb, 0x6b,
- 0x1d, 0x01, 0x25, 0x6c, 0xf6, 0xf2, 0x0f, 0x2a, 0x01, 0xda, 0xaf, 0x17, 0x00, 0x6e, 0x6f, 0x6f,
- 0x6f, 0x49, 0xf7, 0x82, 0x09, 0x65, 0x7d, 0x10, 0x3a, 0x2a, 0xc7, 0x77, 0x08, 0x26, 0x02, 0x79,
- 0xa5, 0x0f, 0x6f, 0x10, 0xec, 0x23, 0x47, 0x27, 0x3f, 0x09, 0x35, 0xa9, 0x20, 0xcb, 0x6e, 0x0f,
- 0xe3, 0x29, 0xa4, 0x12, 0x8d, 0x8a, 0xae, 0xfd, 0x76, 0x11, 0x60, 0xdd, 0xb4, 0x69, 0x47, 0x1d,
- 0x02, 0x69, 0x04, 0xfb, 0x1e, 0xf5, 0xf7, 0x5d, 0xdb, 0x1c, 0xd3, 0x9b, 0xca, 0x6d, 0xfe, 0xdb,
- 0x0a, 0x04, 0x23, 0x3c, 0x62, 0xc2, 0x94, 0x1f, 0xd0, 0xbe, 0x8a, 0xed, 0x1d, 0xd3, 0x89, 0x32,
- 0x2b, 0xec, 0x22, 0x11, 0x0e, 0x26, 0x50, 0x89, 0x0e, 0x4d, 0xcb, 0x31, 0xc4, 0x07, 0xd2, 0x3e,
- 0x1a, 0x73, 0x20, 0x5d, 0x60, 0x3b, 0x8e, 0xf5, 0x08, 0x06, 0xe3, 0x98, 0xda, 0xef, 0x16, 0xe1,
- 0x32, 0x97, 0xc7, 0x9a, 0x91, 0x88, 0xe0, 0x25, 0x7f, 0x74, 0xe8, 0xc0, 0xea, 0x1f, 0x3e, 0x9d,
- 0x68, 0x71, 0xde, 0x71, 0x93, 0x06, 0x7a, 0xa4, 0xcf, 0x45, 0x65, 0xb1, 0x53, 0xaa, 0x03, 0x28,
- 0xfb, 0x6c, 0xbe, 0x12, 0xbd, 0xd7, 0x19, 0x7b, 0x08, 0x65, 0x3f, 0x00, 0x9f, 0xbd, 0x42, 0xaf,
- 0x31, 0x9f, 0xb5, 0xb8, 0x38, 0xf2, 0x4b, 0x50, 0xf5, 0x03, 0x3d, 0x18, 0xa8, 0x4f, 0x73, 0x67,
- 0xd2, 0x82, 0x39, 0x78, 0x34, 0x8f, 0x88, 0xff, 0x28, 0x85, 0x6a, 0xbf, 0x5b, 0x80, 0xf9, 0xec,
- 0x8a, 0x1b, 0x96, 0x1f, 0x90, 0x3f, 0x32, 0xd4, 0xed, 0xa7, 0x7c, 0xe3, 0xac, 0x36, 0xef, 0xf4,
- 0xf0, 0x4c, 0x83, 0x2a, 0x89, 0x75, 0x79, 0x00, 0x15, 0x2b, 0xa0, 0x3d, 0xb5, 0xbf, 0xbc, 0x37,
- 0xe1, 0x47, 0x8f, 0x2d, 0xed, 0x4c, 0x0a, 0x0a, 0x61, 0xda, 0x77, 0x8b, 0xa3, 0x1e, 0x99, 0x2f,
- 0x1f, 0x76, 0x32, 0x4a, 0xfc, 0x4e, 0xbe, 0x28, 0xf1, 0x64, 0x83, 0x86, 0x83, 0xc5, 0xff, 0xd8,
- 0x70, 0xb0, 0xf8, 0xbd, 0xfc, 0xc1, 0xe2, 0xa9, 0x6e, 0x18, 0x19, 0x33, 0xfe, 0xc3, 0x12, 0x5c,
- 0x7d, 0xdc, 0xb0, 0x61, 0xeb, 0x99, 0x1c, 0x9d, 0x79, 0xd7, 0xb3, 0xc7, 0x8f, 0x43, 0xb2, 0x04,
- 0x95, 0xfe, 0xbe, 0xee, 0x2b, 0xa5, 0xec, 0x6a, 0x18, 0x66, 0xc8, 0x0a, 0x1f, 0xb1, 0x49, 0x83,
- 0x2b, 0x73, 0xfc, 0x2f, 0x0a, 0x56, 0x36, 0x1d, 0xf7, 0xa8, 0xef, 0x47, 0x36, 0x81, 0x70, 0x3a,
- 0xde, 0x14, 0xc5, 0xa8, 0xe8, 0x24, 0x80, 0xaa, 0x30, 0x31, 0xcb, 0x95, 0x69, 0xfc, 0x40, 0xae,
- 0x8c, 0x83, 0x05, 0xd1, 0x43, 0x49, 0x6f, 0x85, 0x94, 0x45, 0x16, 0xa0, 0x1c, 0x44, 0x61, 0xde,
- 0x6a, 0x6b, 0x5e, 0xce, 0xd0, 0x4f, 0x39, 0x1f, 0xdb, 0xd8, 0xbb, 0xbb, 0xdc, 0xa8, 0x6e, 0x4a,
- 0xff, 0xb9, 0xe5, 0x3a, 0x5c, 0x21, 0x2b, 0x45, 0x1b, 0xfb, 0x7b, 0x43, 0x1c, 0x98, 0x51, 0x4b,
- 0xfb, 0xe7, 0x75, 0xb8, 0x9c, 0x3d, 0x1e, 0x58, 0xbf, 0x1d, 0x52, 0xcf, 0x67, 0xd8, 0x85, 0x64,
- 0xbf, 0xdd, 0x17, 0xc5, 0xa8, 0xe8, 0x1f, 0xeb, 0x80, 0xb3, 0xdf, 0x28, 0xc0, 0x15, 0x4f, 0xfa,
- 0x88, 0x9e, 0x46, 0xd0, 0xd9, 0x4b, 0xc2, 0x9c, 0x31, 0x42, 0x20, 0x8e, 0x6e, 0x0b, 0xf9, 0x2b,
- 0x05, 0x98, 0xeb, 0xa5, 0xec, 0x1c, 0xe7, 0x78, 0xe6, 0x92, 0x9f, 0xa3, 0xd8, 0x1c, 0x21, 0x0f,
- 0x47, 0xb6, 0x84, 0x7c, 0x0b, 0x9a, 0x7d, 0x36, 0x2e, 0xfc, 0x80, 0x3a, 0x86, 0x0a, 0x10, 0x1d,
- 0xff, 0x4b, 0xda, 0x8a, 0xb0, 0xc2, 0x33, 0x57, 0x5c, 0x3f, 0x88, 0x11, 0x30, 0x2e, 0xf1, 0x19,
- 0x3f, 0x64, 0x79, 0x03, 0xea, 0x3e, 0x0d, 0x02, 0xcb, 0xe9, 0x8a, 0xfd, 0x46, 0x43, 0x7c, 0x2b,
- 0x1d, 0x59, 0x86, 0x21, 0x95, 0xfc, 0x14, 0x34, 0xb8, 0xcb, 0x69, 0xd9, 0xeb, 0xfa, 0x73, 0x0d,
- 0x1e, 0x2e, 0x36, 0x2d, 0x02, 0xe0, 0x64, 0x21, 0x46, 0x74, 0xf2, 0x05, 0x98, 0xda, 0xe5, 0x9f,
- 0xaf, 0x3c, 0x77, 0x2f, 0x6c, 0x5c, 0x5c, 0x5b, 0x6b, 0xc7, 0xca, 0x31, 0xc1, 0x45, 0x96, 0x00,
- 0x68, 0xe8, 0x97, 0x4b, 0xdb, 0xb3, 0x22, 0x8f, 0x1d, 0xc6, 0xb8, 0xc8, 0x4b, 0x50, 0x0a, 0x6c,
- 0x9f, 0xdb, 0xb0, 0xea, 0xd1, 0x16, 0x74, 0x7b, 0xa3, 0x83, 0xac, 0x5c, 0xfb, 0x83, 0x02, 0x5c,
- 0x48, 0x1d, 0x47, 0x62, 0x55, 0x06, 0x9e, 0x2d, 0xa7, 0x91, 0xb0, 0xca, 0x0e, 0x6e, 0x20, 0x2b,
- 0x27, 0xef, 0x49, 0xb5, 0xbc, 0x98, 0x33, 0xc5, 0xc8, 0x5d, 0x3d, 0xf0, 0x99, 0x1e, 0x3e, 0xa4,
- 0x91, 0x73, 0x37, 0x5f, 0xd4, 0x1e, 0xb9, 0x0e, 0xc4, 0xdc, 0x7c, 0x11, 0x0d, 0x13, 0x9c, 0x29,
- 0x83, 0x5f, 0xf9, 0x34, 0x06, 0x3f, 0xed, 0x57, 0x8b, 0xb1, 0x1e, 0x90, 0x9a, 0xfd, 0x13, 0x7a,
- 0xe0, 0x65, 0xb6, 0x80, 0x86, 0x8b, 0x7b, 0x23, 0xbe, 0xfe, 0xf1, 0xc5, 0x58, 0x52, 0xc9, 0xdb,
- 0xa2, 0xef, 0x4b, 0x39, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x74, 0x95, 0x7a, 0x6b, 0xe1, 0x2b,
- 0x28, 0x9f, 0xd3, 0x2b, 0xd0, 0xfe, 0x51, 0x09, 0x9a, 0x6f, 0xb9, 0xbb, 0x1f, 0x93, 0x08, 0xea,
- 0xec, 0x65, 0xaa, 0xf8, 0x11, 0x2e, 0x53, 0x3b, 0xf0, 0x62, 0x10, 0xd8, 0x1d, 0x6a, 0xb8, 0x8e,
- 0xe9, 0x2f, 0xef, 0x05, 0xd4, 0x5b, 0xb3, 0x1c, 0xcb, 0xdf, 0xa7, 0xa6, 0x74, 0x27, 0x7d, 0xea,
- 0xe4, 0xb8, 0xf5, 0xe2, 0xf6, 0xf6, 0x46, 0x16, 0x0b, 0x8e, 0xaa, 0xcb, 0xa7, 0x0d, 0x71, 0x76,
- 0x94, 0x9f, 0xad, 0x92, 0x31, 0x37, 0x62, 0xda, 0x88, 0x95, 0x63, 0x82, 0x4b, 0xfb, 0xb7, 0x45,
- 0x68, 0x84, 0xc9, 0x23, 0xc8, 0x67, 0xa1, 0xb6, 0xeb, 0xb9, 0x07, 0xd4, 0x13, 0x9e, 0x3b, 0x79,
- 0xb6, 0xaa, 0x2d, 0x8a, 0x50, 0xd1, 0xc8, 0x67, 0xa0, 0x12, 0xb8, 0x7d, 0xcb, 0x48, 0x1b, 0xd4,
- 0xb6, 0x59, 0x21, 0x0a, 0x1a, 0xff, 0x10, 0x78, 0x58, 0x21, 0x7f, 0xaa, 0x7a, 0xec, 0x43, 0xe0,
- 0xa5, 0x28, 0xa9, 0xea, 0x43, 0x28, 0x4f, 0xfc, 0x43, 0x78, 0x39, 0x54, 0x01, 0x2b, 0xc9, 0x2f,
- 0x31, 0xa5, 0xb4, 0xbd, 0x0b, 0x65, 0x5f, 0xf7, 0x6d, 0xb9, 0xbc, 0xe5, 0xc8, 0xd7, 0xb0, 0xdc,
- 0xd9, 0x90, 0xf9, 0x1a, 0x96, 0x3b, 0x1b, 0xc8, 0x41, 0xb5, 0xdf, 0x2e, 0x41, 0x53, 0xf4, 0xaf,
- 0x98, 0x3d, 0x26, 0xd9, 0xc3, 0x6f, 0xf0, 0x90, 0x0b, 0x7f, 0xd0, 0xa3, 0x1e, 0x37, 0x47, 0xc9,
- 0xc9, 0x30, 0xee, 0x47, 0x88, 0x88, 0x61, 0xd8, 0x45, 0x54, 0xf4, 0xe3, 0xdd, 0xf5, 0x6c, 0xa9,
- 0xe0, 0x09, 0x50, 0xa4, 0x8e, 0x2b, 0x23, 0x29, 0xc3, 0xa5, 0xe2, 0x4e, 0x8c, 0x86, 0x09, 0x4e,
- 0xed, 0xbf, 0x15, 0xa1, 0xb1, 0x61, 0xed, 0x51, 0xe3, 0xc8, 0xb0, 0x29, 0xf9, 0x06, 0xcc, 0x9b,
- 0xd4, 0xa6, 0x6c, 0xc5, 0xbc, 0xe5, 0xe9, 0x06, 0xdd, 0xa2, 0x9e, 0xc5, 0x13, 0x38, 0xb1, 0x6f,
- 0x50, 0x06, 0xb8, 0x5e, 0x3b, 0x39, 0x6e, 0xcd, 0xaf, 0x8e, 0xe4, 0xc2, 0xc7, 0x20, 0x90, 0x75,
- 0x98, 0x32, 0xa9, 0x6f, 0x79, 0xd4, 0xdc, 0x8a, 0x6d, 0x88, 0x3e, 0xab, 0xda, 0xb9, 0x1a, 0xa3,
- 0x3d, 0x3a, 0x6e, 0x4d, 0x2b, 0x43, 0xa8, 0xd8, 0x19, 0x25, 0xaa, 0xb2, 0xa9, 0xa5, 0xaf, 0x0f,
- 0x7c, 0x9a, 0xd1, 0xce, 0x12, 0x6f, 0x27, 0x9f, 0x5a, 0xb6, 0xb2, 0x59, 0x70, 0x54, 0x5d, 0xb2,
- 0x0b, 0x73, 0xbc, 0xfd, 0x59, 0xb8, 0x65, 0x8e, 0xfb, 0xf2, 0xc9, 0x71, 0x4b, 0x5b, 0xa5, 0x7d,
- 0x8f, 0x1a, 0x7a, 0x40, 0xcd, 0xd5, 0x11, 0xdc, 0x38, 0x12, 0x47, 0xab, 0x40, 0x69, 0xc3, 0xed,
- 0x6a, 0xdf, 0x2d, 0x41, 0x98, 0x51, 0x8c, 0xfc, 0xc9, 0x02, 0x34, 0x75, 0xc7, 0x71, 0x03, 0x99,
- 0xad, 0x4b, 0x44, 0x13, 0x60, 0xee, 0xc4, 0x65, 0x0b, 0xcb, 0x11, 0xa8, 0x70, 0x44, 0x87, 0xce,
- 0xf1, 0x18, 0x05, 0xe3, 0xb2, 0xc9, 0x20, 0xe5, 0x1b, 0xdf, 0xcc, 0xdf, 0x8a, 0x53, 0x78, 0xc2,
- 0xe7, 0xbf, 0x0a, 0xb3, 0xe9, 0xc6, 0x9e, 0xc5, 0xb5, 0x95, 0x2b, 0xc8, 0xa0, 0x08, 0x10, 0xc5,
- 0xc7, 0x3c, 0x05, 0x83, 0x9c, 0x95, 0x30, 0xc8, 0x8d, 0x9f, 0xd6, 0x21, 0x6a, 0xf4, 0x48, 0x23,
- 0xdc, 0x37, 0x53, 0x46, 0xb8, 0xf5, 0x49, 0x08, 0x7b, 0xbc, 0xe1, 0x6d, 0x17, 0x2e, 0x46, 0xbc,
- 0xd1, 0xec, 0x72, 0x27, 0xf5, 0xf5, 0x0b, 0xbd, 0xf2, 0x73, 0x23, 0xbe, 0xfe, 0x0b, 0xb1, 0x80,
- 0xa5, 0xe1, 0xef, 0x5f, 0xfb, 0xab, 0x05, 0x98, 0x8d, 0x0b, 0xe1, 0x67, 0xd0, 0xbf, 0x08, 0xd3,
- 0x1e, 0xd5, 0xcd, 0xb6, 0x1e, 0x18, 0xfb, 0x3c, 0x34, 0xbe, 0xc0, 0x63, 0xd9, 0xf9, 0x69, 0x39,
- 0x8c, 0x13, 0x30, 0xc9, 0x47, 0x74, 0x68, 0xb2, 0x82, 0x6d, 0xab, 0x47, 0xdd, 0x41, 0x30, 0xa6,
- 0x95, 0x99, 0x6f, 0xf0, 0x30, 0x82, 0xc1, 0x38, 0xa6, 0xf6, 0xc3, 0x02, 0xcc, 0xc4, 0x1b, 0x7c,
- 0xee, 0x16, 0xc8, 0xfd, 0xa4, 0x05, 0x72, 0x65, 0x02, 0xef, 0x7d, 0x84, 0xd5, 0xf1, 0xdb, 0xcd,
- 0xf8, 0xa3, 0x71, 0x4b, 0x63, 0xdc, 0xb8, 0x52, 0x78, 0xac, 0x71, 0xe5, 0xe3, 0x9f, 0xa8, 0x6a,
- 0xd4, 0xae, 0xa0, 0xfc, 0x0c, 0xef, 0x0a, 0x3e, 0xca, 0x6c, 0x57, 0xb1, 0x8c, 0x4d, 0xd5, 0x1c,
- 0x19, 0x9b, 0x7a, 0x61, 0xc6, 0xa6, 0xda, 0xc4, 0x26, 0xb6, 0xd3, 0x64, 0x6d, 0xaa, 0x3f, 0xd5,
- 0xac, 0x4d, 0x8d, 0xf3, 0xca, 0xda, 0x04, 0x79, 0xb3, 0x36, 0x7d, 0xa7, 0x00, 0x33, 0x66, 0xe2,
- 0x84, 0xb1, 0x3c, 0xdb, 0x3f, 0xfe, 0x72, 0x96, 0x3c, 0xb0, 0x2c, 0x8e, 0x98, 0x25, 0xcb, 0x30,
- 0x25, 0x32, 0x2b, 0x57, 0xd2, 0xd4, 0x47, 0x92, 0x2b, 0x89, 0xfc, 0x12, 0x34, 0x6c, 0xb5, 0xd6,
- 0xc9, 0x0c, 0x92, 0x1b, 0x13, 0x19, 0x92, 0x12, 0x33, 0x3a, 0xc5, 0x10, 0x16, 0x61, 0x24, 0x51,
- 0xfb, 0x5f, 0xb5, 0xf8, 0x82, 0xf8, 0xb4, 0x7d, 0x1c, 0xaf, 0x25, 0x7d, 0x1c, 0xd7, 0xd3, 0x3e,
- 0x8e, 0xa1, 0xd5, 0x5c, 0xfa, 0x39, 0x3e, 0x1f, 0x5b, 0x27, 0x4a, 0x3c, 0x49, 0x53, 0x38, 0xe4,
- 0x32, 0xd6, 0x8a, 0x65, 0xb8, 0x20, 0x95, 0x00, 0x45, 0xe4, 0x93, 0xec, 0x74, 0x14, 0x95, 0xb6,
- 0x9a, 0x24, 0x63, 0x9a, 0x9f, 0x09, 0xf4, 0x55, 0xae, 0x5e, 0xb1, 0x63, 0x8b, 0xc6, 0xb8, 0xca,
- 0xa3, 0x1b, 0x72, 0xb0, 0xdd, 0x9d, 0x47, 0x75, 0x5f, 0x7a, 0x2a, 0x62, 0xbb, 0x3b, 0xe4, 0xa5,
- 0x28, 0xa9, 0x71, 0x77, 0x4d, 0xed, 0x09, 0xee, 0x1a, 0x1d, 0x9a, 0xb6, 0xee, 0x07, 0x62, 0x30,
- 0x99, 0x72, 0x36, 0xf9, 0x43, 0xa7, 0x5b, 0xf7, 0x99, 0x2e, 0x11, 0x29, 0xf0, 0x1b, 0x11, 0x0c,
- 0xc6, 0x31, 0x89, 0x09, 0x53, 0xec, 0x2f, 0x9f, 0x59, 0xcc, 0xe5, 0x40, 0x66, 0xb4, 0x3b, 0x8b,
- 0x8c, 0x70, 0xeb, 0xb8, 0x11, 0xc3, 0xc1, 0x04, 0xea, 0x08, 0x8f, 0x0e, 0x8c, 0xe3, 0xd1, 0x21,
- 0x5f, 0x16, 0x8a, 0xdb, 0x51, 0xf8, 0x5a, 0x9b, 0xfc, 0xb5, 0x86, 0x11, 0xad, 0x18, 0x27, 0x62,
- 0x92, 0x97, 0x8d, 0x8a, 0x81, 0xec, 0x06, 0x55, 0x7d, 0x2a, 0x39, 0x2a, 0x76, 0x92, 0x64, 0x4c,
- 0xf3, 0x93, 0x2d, 0xb8, 0x14, 0x16, 0xc5, 0x9b, 0x31, 0xcd, 0x71, 0xc2, 0x10, 0xc3, 0x9d, 0x0c,
- 0x1e, 0xcc, 0xac, 0xc9, 0xcf, 0xec, 0x0c, 0x3c, 0x8f, 0x3a, 0xc1, 0x6d, 0xdd, 0xdf, 0x97, 0xb1,
- 0x8a, 0xd1, 0x99, 0x9d, 0x88, 0x84, 0x71, 0x3e, 0xb2, 0x04, 0x20, 0xe0, 0x78, 0xad, 0x0b, 0xc9,
- 0x70, 0xe0, 0x9d, 0x90, 0x82, 0x31, 0x2e, 0xed, 0x3b, 0x0d, 0x68, 0xde, 0xd5, 0x03, 0xeb, 0x90,
- 0x72, 0xf7, 0xeb, 0xf9, 0xf8, 0xc0, 0xfe, 0x42, 0x01, 0x2e, 0x27, 0x63, 0x6c, 0xcf, 0xd1, 0x11,
- 0xc6, 0x73, 0x3c, 0x61, 0xa6, 0x34, 0x1c, 0xd1, 0x0a, 0xee, 0x12, 0x1b, 0x0a, 0xd9, 0x3d, 0x6f,
- 0x97, 0x58, 0x67, 0x94, 0x40, 0x1c, 0xdd, 0x96, 0x8f, 0x8b, 0x4b, 0xec, 0xd9, 0x4e, 0x4a, 0x9a,
- 0x72, 0xd8, 0xd5, 0x9e, 0x19, 0x87, 0x5d, 0xfd, 0x99, 0xd0, 0xfa, 0xfb, 0x31, 0x87, 0x5d, 0x23,
- 0x67, 0xe0, 0x98, 0x3c, 0x96, 0x22, 0xd0, 0x46, 0x39, 0xfe, 0x78, 0x46, 0x09, 0xe5, 0x48, 0x61,
- 0xca, 0xf2, 0xae, 0xee, 0x5b, 0x86, 0x54, 0x3b, 0x72, 0x24, 0x61, 0x56, 0xc9, 0x19, 0x45, 0x7c,
- 0x09, 0xff, 0x8b, 0x02, 0x3b, 0xca, 0x45, 0x59, 0xcc, 0x95, 0x8b, 0x92, 0xac, 0x40, 0xd9, 0x39,
- 0xa0, 0x47, 0x67, 0xcb, 0xcd, 0xc0, 0x37, 0x81, 0x77, 0xef, 0xd0, 0x23, 0xe4, 0x95, 0xb5, 0xef,
- 0x15, 0x01, 0xd8, 0xe3, 0x9f, 0xce, 0x75, 0xf6, 0x93, 0x50, 0xf3, 0x07, 0xdc, 0x30, 0x24, 0x15,
- 0xa6, 0x28, 0xda, 0x4e, 0x14, 0xa3, 0xa2, 0x93, 0xcf, 0x40, 0xe5, 0x9b, 0x03, 0x3a, 0x50, 0x71,
- 0x20, 0xe1, 0xbe, 0xe1, 0x6b, 0xac, 0x10, 0x05, 0xed, 0xfc, 0xcc, 0xdb, 0xca, 0xc5, 0x56, 0x39,
- 0x2f, 0x17, 0x5b, 0x03, 0x6a, 0x77, 0x5d, 0x1e, 0xbc, 0xab, 0xfd, 0xe7, 0x22, 0x40, 0x14, 0x1c,
- 0x49, 0x7e, 0xbd, 0x00, 0x2f, 0x84, 0x1f, 0x5c, 0x20, 0xb6, 0x7f, 0x3c, 0xef, 0x79, 0x6e, 0x77,
- 0x5b, 0xd6, 0xc7, 0xce, 0x67, 0xa0, 0xad, 0x2c, 0x71, 0x98, 0xdd, 0x0a, 0x82, 0x50, 0xa7, 0xbd,
- 0x7e, 0x70, 0xb4, 0x6a, 0x79, 0x72, 0x04, 0x66, 0xc6, 0xe0, 0xde, 0x94, 0x3c, 0xa2, 0xaa, 0xb4,
- 0x51, 0xf0, 0x8f, 0x48, 0x51, 0x30, 0xc4, 0x21, 0xfb, 0x50, 0x77, 0xdc, 0xf7, 0x7c, 0xd6, 0x1d,
- 0x72, 0x38, 0xbe, 0x39, 0x7e, 0x97, 0x8b, 0x6e, 0x15, 0x6e, 0x17, 0xf9, 0x07, 0x6b, 0x8e, 0xec,
- 0xec, 0x5f, 0x2b, 0xc2, 0xc5, 0x8c, 0x7e, 0x20, 0x6f, 0xc2, 0xac, 0x8c, 0x43, 0x8d, 0x2e, 0x00,
- 0x28, 0x44, 0x17, 0x00, 0x74, 0x52, 0x34, 0x1c, 0xe2, 0x26, 0xef, 0x01, 0xe8, 0x86, 0x41, 0x7d,
- 0x7f, 0xd3, 0x35, 0xd5, 0x7e, 0xe0, 0x0d, 0xa6, 0xbe, 0x2c, 0x87, 0xa5, 0x8f, 0x8e, 0x5b, 0x3f,
- 0x9d, 0x15, 0x5a, 0x9e, 0xea, 0xe7, 0xa8, 0x02, 0xc6, 0x20, 0xc9, 0x37, 0x00, 0x84, 0x0d, 0x20,
- 0xcc, 0x7e, 0xf1, 0x04, 0xc3, 0xd9, 0x82, 0x4a, 0xae, 0xb6, 0xf0, 0xb5, 0x81, 0xee, 0x04, 0x56,
- 0x70, 0x24, 0x92, 0x0d, 0xdd, 0x0f, 0x51, 0x30, 0x86, 0xa8, 0xfd, 0xfd, 0x22, 0xd4, 0x95, 0xeb,
- 0xe1, 0x29, 0xd8, 0x82, 0xbb, 0x09, 0x5b, 0xf0, 0x84, 0x82, 0xc9, 0xb3, 0x2c, 0xc1, 0x6e, 0xca,
- 0x12, 0x7c, 0x2b, 0xbf, 0xa8, 0xc7, 0xdb, 0x81, 0x7f, 0xab, 0x08, 0x33, 0x8a, 0x35, 0xaf, 0x85,
- 0xf6, 0x2b, 0x70, 0x41, 0x04, 0x81, 0x6c, 0xea, 0x0f, 0x45, 0xde, 0x25, 0xde, 0x61, 0x65, 0x11,
- 0xbf, 0xdd, 0x4e, 0x92, 0x30, 0xcd, 0xcb, 0x86, 0xb5, 0x28, 0xda, 0x61, 0x9b, 0x30, 0xe1, 0x36,
- 0x16, 0xfb, 0x4d, 0x3e, 0xac, 0xdb, 0x29, 0x1a, 0x0e, 0x71, 0xa7, 0x4d, 0xc4, 0xe5, 0x73, 0x30,
- 0x11, 0xff, 0xcb, 0x02, 0x4c, 0x45, 0xfd, 0x75, 0xee, 0x06, 0xe2, 0xbd, 0xa4, 0x81, 0x78, 0x39,
- 0xf7, 0x70, 0x18, 0x61, 0x1e, 0xfe, 0x33, 0x35, 0x48, 0x9c, 0x69, 0x20, 0xbb, 0x30, 0x6f, 0x65,
- 0x46, 0x66, 0xc6, 0x66, 0x9b, 0xf0, 0x90, 0xfe, 0xfa, 0x48, 0x4e, 0x7c, 0x0c, 0x0a, 0x19, 0x40,
- 0xfd, 0x90, 0x7a, 0x81, 0x65, 0x50, 0xf5, 0x7c, 0xb7, 0x72, 0xab, 0x64, 0xd2, 0x08, 0x1e, 0xf6,
- 0xe9, 0x7d, 0x29, 0x00, 0x43, 0x51, 0x64, 0x17, 0x2a, 0xd4, 0xec, 0x52, 0x95, 0x09, 0x2b, 0x67,
- 0x66, 0xe2, 0xb0, 0x3f, 0xd9, 0x3f, 0x1f, 0x05, 0x34, 0xf1, 0xe3, 0x86, 0xa6, 0x72, 0x4e, 0x05,
- 0xeb, 0x94, 0xe6, 0x25, 0x72, 0x10, 0x5a, 0x5b, 0x2b, 0x13, 0x9a, 0x3c, 0x1e, 0x63, 0x6b, 0xf5,
- 0xa1, 0xf1, 0x40, 0x0f, 0xa8, 0xd7, 0xd3, 0xbd, 0x03, 0xb9, 0xdb, 0x18, 0xff, 0x09, 0xdf, 0x56,
- 0x48, 0xd1, 0x13, 0x86, 0x45, 0x18, 0xc9, 0x21, 0x2e, 0x34, 0x02, 0xa9, 0x3e, 0x2b, 0x93, 0xf2,
- 0xf8, 0x42, 0x95, 0x22, 0xee, 0xcb, 0xb3, 0x0d, 0xea, 0x2f, 0x46, 0x32, 0xc8, 0x61, 0x22, 0x8d,
- 0xbd, 0xb8, 0xbc, 0xa0, 0x9d, 0xc3, 0x35, 0x21, 0xa1, 0xa2, 0xe5, 0x26, 0x3b, 0x1d, 0xbe, 0xf6,
- 0x3f, 0x2a, 0xd1, 0xb4, 0xfc, 0xb4, 0xed, 0x84, 0x5f, 0x48, 0xda, 0x09, 0xaf, 0xa5, 0xed, 0x84,
- 0x29, 0x9f, 0xff, 0xd9, 0xa3, 0xa1, 0x53, 0xe6, 0xb5, 0xf2, 0x39, 0x98, 0xd7, 0x5e, 0x81, 0xe6,
- 0x21, 0x9f, 0x09, 0x44, 0x5a, 0xad, 0x0a, 0x5f, 0x46, 0xf8, 0xcc, 0x7e, 0x3f, 0x2a, 0xc6, 0x38,
- 0x0f, 0xab, 0x22, 0x2f, 0xee, 0x09, 0x33, 0x59, 0xcb, 0x2a, 0x9d, 0xa8, 0x18, 0xe3, 0x3c, 0x3c,
- 0x90, 0xd2, 0x72, 0x0e, 0x44, 0x85, 0x1a, 0xaf, 0x20, 0x02, 0x29, 0x55, 0x21, 0x46, 0x74, 0x72,
- 0x03, 0xea, 0x03, 0x73, 0x4f, 0xf0, 0xd6, 0x39, 0x2f, 0xd7, 0x30, 0x77, 0x56, 0xd7, 0x64, 0x9a,
- 0x2f, 0x45, 0x65, 0x2d, 0xe9, 0xe9, 0x7d, 0x45, 0xe0, 0x7b, 0x43, 0xd9, 0x92, 0xcd, 0xa8, 0x18,
- 0xe3, 0x3c, 0xe4, 0x67, 0x61, 0xc6, 0xa3, 0xe6, 0xc0, 0xa0, 0x61, 0x2d, 0xe0, 0xb5, 0x64, 0xfe,
- 0xd3, 0x38, 0x05, 0x53, 0x9c, 0x23, 0x8c, 0x84, 0xcd, 0xb1, 0x8c, 0x84, 0x5f, 0x85, 0x19, 0xd3,
- 0xd3, 0x2d, 0x87, 0x9a, 0xf7, 0x1c, 0x1e, 0xd8, 0x21, 0xc3, 0x39, 0x43, 0x03, 0xfd, 0x6a, 0x82,
- 0x8a, 0x29, 0x6e, 0xed, 0x1f, 0x17, 0xa1, 0x22, 0xb2, 0xb2, 0xae, 0xc3, 0x45, 0xcb, 0xb1, 0x02,
- 0x4b, 0xb7, 0x57, 0xa9, 0xad, 0x1f, 0xc5, 0x03, 0x5c, 0x2a, 0xed, 0x17, 0xd9, 0x46, 0x7b, 0x7d,
- 0x98, 0x8c, 0x59, 0x75, 0x58, 0xe7, 0x04, 0x62, 0xf9, 0x56, 0x28, 0xc2, 0x8e, 0x26, 0x52, 0x82,
- 0x27, 0x28, 0x98, 0xe2, 0x64, 0xca, 0x50, 0x7f, 0x28, 0x72, 0xa5, 0x22, 0x94, 0xa1, 0x64, 0x30,
- 0x49, 0x92, 0x8f, 0x2b, 0xe9, 0x03, 0xae, 0x10, 0x87, 0x87, 0xa6, 0x64, 0x10, 0x9c, 0x50, 0xd2,
- 0x53, 0x34, 0x1c, 0xe2, 0x66, 0x08, 0x7b, 0xba, 0x65, 0x0f, 0x3c, 0x1a, 0x21, 0x54, 0x22, 0x84,
- 0xb5, 0x14, 0x0d, 0x87, 0xb8, 0xb5, 0x6d, 0x80, 0xad, 0x81, 0xed, 0xeb, 0x3c, 0x03, 0xcf, 0xc4,
- 0xee, 0x85, 0xf8, 0xfd, 0x22, 0x4c, 0x09, 0x58, 0xb9, 0x91, 0x5e, 0x02, 0x90, 0x89, 0x7e, 0x4c,
- 0xd3, 0x93, 0xba, 0x41, 0x34, 0xc1, 0x85, 0x14, 0x8c, 0x71, 0x9d, 0x2e, 0xa4, 0xec, 0x75, 0x98,
- 0x52, 0x21, 0x62, 0x5c, 0xed, 0x48, 0x85, 0xd7, 0xae, 0xc4, 0x68, 0x98, 0xe0, 0x24, 0xab, 0xac,
- 0xf7, 0x77, 0xc5, 0xc1, 0x72, 0xcb, 0x75, 0x78, 0x6d, 0x91, 0x81, 0x21, 0x3c, 0x5a, 0xd9, 0x49,
- 0xd1, 0x71, 0xa8, 0x06, 0xf9, 0x3c, 0xd4, 0x7b, 0xfa, 0xc3, 0x1d, 0x47, 0x37, 0x0e, 0xe4, 0x14,
- 0x12, 0xea, 0x15, 0x9b, 0xb2, 0x1c, 0x43, 0x0e, 0xa2, 0xcb, 0x7d, 0x78, 0x35, 0xef, 0xe1, 0xc3,
- 0xf0, 0x95, 0x0d, 0xed, 0xc4, 0xff, 0x6b, 0x01, 0xc8, 0xf0, 0xb9, 0x1e, 0xb2, 0x0f, 0x55, 0x87,
- 0x1b, 0x97, 0x73, 0x5f, 0x2d, 0x11, 0xb3, 0x51, 0x8b, 0x55, 0x5f, 0x16, 0x48, 0x7c, 0xe2, 0x40,
- 0x9d, 0x3e, 0x0c, 0xa8, 0xe7, 0x84, 0xe7, 0xfc, 0x26, 0x73, 0x8d, 0x85, 0xd8, 0x6c, 0x4b, 0x64,
- 0x0c, 0x65, 0x68, 0xbf, 0x57, 0x84, 0x66, 0x8c, 0xef, 0x49, 0x36, 0x1b, 0x9e, 0x6a, 0x44, 0xd8,
- 0x74, 0x77, 0x3c, 0x5b, 0x8e, 0xad, 0x58, 0xaa, 0x11, 0x49, 0xc2, 0x0d, 0x8c, 0xf3, 0xb1, 0x01,
- 0xdc, 0xd3, 0xfd, 0x20, 0x31, 0xca, 0xc2, 0x01, 0xbc, 0x19, 0x52, 0x30, 0xc6, 0x45, 0xae, 0xcb,
- 0x8b, 0x48, 0xca, 0xc9, 0x84, 0xac, 0x23, 0x6e, 0x19, 0xa9, 0x4c, 0xe0, 0x96, 0x11, 0xd2, 0x85,
- 0x59, 0xd5, 0x6a, 0x45, 0x3d, 0x5b, 0xba, 0x4e, 0x31, 0xf3, 0xa4, 0x20, 0x70, 0x08, 0x54, 0xfb,
- 0x5e, 0x01, 0xa6, 0x13, 0x16, 0x45, 0x91, 0x4a, 0x55, 0x9d, 0x4a, 0x4b, 0xa4, 0x52, 0x8d, 0x1d,
- 0x26, 0x7b, 0x19, 0xaa, 0xa2, 0x83, 0xd2, 0xc1, 0xe6, 0xa2, 0x0b, 0x51, 0x52, 0x99, 0xaa, 0x20,
- 0x7d, 0x16, 0x69, 0x55, 0x41, 0x3a, 0x35, 0x50, 0xd1, 0x85, 0x2b, 0x50, 0xb4, 0x4e, 0xf6, 0x74,
- 0xcc, 0x15, 0x28, 0xca, 0x31, 0xe4, 0xd0, 0xfe, 0x36, 0x6f, 0x77, 0xe0, 0x1d, 0x85, 0xa6, 0x92,
- 0x2e, 0xd4, 0x64, 0x80, 0xb1, 0xfc, 0x34, 0xde, 0xcc, 0x61, 0xe6, 0xe4, 0x38, 0x32, 0x44, 0x56,
- 0x37, 0x0e, 0xee, 0xed, 0xed, 0xa1, 0x42, 0x27, 0x37, 0xa1, 0xe1, 0x3a, 0x72, 0x4a, 0x96, 0x8f,
- 0xff, 0x39, 0xa6, 0x0a, 0xdc, 0x53, 0x85, 0x8f, 0x8e, 0x5b, 0x97, 0xc3, 0x3f, 0x89, 0x46, 0x62,
- 0x54, 0x53, 0xfb, 0x13, 0x05, 0x78, 0x01, 0x5d, 0xdb, 0xb6, 0x9c, 0x6e, 0xd2, 0x95, 0x4d, 0x6c,
- 0x98, 0x11, 0x33, 0xcd, 0xa1, 0x6e, 0xd9, 0xfa, 0xae, 0x4d, 0x9f, 0x68, 0xea, 0x18, 0x04, 0x96,
- 0xbd, 0x20, 0x2e, 0x66, 0x5d, 0x58, 0x77, 0x82, 0x7b, 0x5e, 0x27, 0xf0, 0x2c, 0xa7, 0x2b, 0x96,
- 0xbd, 0xcd, 0x04, 0x16, 0xa6, 0xb0, 0xb5, 0x7f, 0x53, 0x06, 0x1e, 0xbc, 0x4a, 0xbe, 0x08, 0x8d,
- 0x1e, 0x35, 0xf6, 0x75, 0xc7, 0xf2, 0x55, 0x52, 0xea, 0x2b, 0xec, 0xb9, 0x36, 0x55, 0xe1, 0x23,
- 0xf6, 0x2a, 0x96, 0x3b, 0x1b, 0xfc, 0x1c, 0x59, 0xc4, 0x4b, 0x0c, 0xa8, 0x76, 0x7d, 0x5f, 0xef,
- 0x5b, 0xb9, 0x63, 0x86, 0x44, 0x12, 0x60, 0x31, 0x1d, 0x89, 0xdf, 0x28, 0xa1, 0x89, 0x01, 0x95,
- 0xbe, 0xad, 0x5b, 0x4e, 0xee, 0x8b, 0x04, 0xd9, 0x13, 0x6c, 0x31, 0x24, 0xb1, 0xde, 0xf1, 0x9f,
- 0x28, 0xb0, 0xc9, 0x00, 0x9a, 0xbe, 0xe1, 0xe9, 0x3d, 0x7f, 0x5f, 0x5f, 0x7a, 0xf5, 0xb5, 0xdc,
- 0xbb, 0xb9, 0x48, 0x94, 0x50, 0x2e, 0x57, 0x70, 0x79, 0xb3, 0x73, 0x7b, 0x79, 0xe9, 0xd5, 0xd7,
- 0x30, 0x2e, 0x27, 0x2e, 0xf6, 0xd5, 0x57, 0x96, 0xe4, 0x0c, 0x32, 0x71, 0xb1, 0xaf, 0xbe, 0xb2,
- 0x84, 0x71, 0x39, 0xac, 0x4b, 0xdd, 0xd8, 0x32, 0x96, 0x4f, 0xe0, 0xbd, 0xc8, 0x2d, 0xc0, 0x7f,
- 0xa2, 0xc0, 0xd6, 0xfe, 0x67, 0x01, 0x1a, 0x21, 0x9d, 0x4d, 0x94, 0x22, 0xbd, 0xe1, 0xfa, 0xea,
- 0xd9, 0x74, 0x13, 0x3e, 0x51, 0xae, 0xc8, 0xaa, 0x18, 0x82, 0x90, 0x77, 0x61, 0x4a, 0xfc, 0x96,
- 0xe9, 0x86, 0x8b, 0x67, 0xce, 0x69, 0xbc, 0x12, 0xab, 0x8e, 0x09, 0x30, 0xf2, 0x65, 0x98, 0xe6,
- 0x7a, 0xd0, 0x4d, 0xc7, 0xec, 0xbb, 0x96, 0xbc, 0x1d, 0x28, 0x96, 0xd9, 0x69, 0x3b, 0x4e, 0xc4,
- 0x24, 0x6f, 0xf8, 0xe0, 0xfc, 0x4d, 0x90, 0x1d, 0x00, 0xb6, 0x52, 0xc8, 0x56, 0x9e, 0xe9, 0xd1,
- 0xb9, 0x71, 0x74, 0x27, 0xac, 0x8c, 0x31, 0xa0, 0x8c, 0xac, 0xd1, 0xc5, 0x49, 0x67, 0x8d, 0x5e,
- 0x84, 0xc6, 0xbe, 0xee, 0x98, 0xfe, 0xbe, 0x7e, 0x40, 0xe5, 0x89, 0x8a, 0x70, 0xe7, 0x7e, 0x5b,
- 0x11, 0x30, 0xe2, 0xd1, 0xfe, 0x6e, 0x15, 0x44, 0x18, 0x15, 0x9b, 0xd2, 0x4d, 0xcb, 0x17, 0xe7,
- 0x9e, 0x0a, 0xbc, 0x66, 0x38, 0xa5, 0xaf, 0xca, 0x72, 0x0c, 0x39, 0xc8, 0x15, 0x28, 0xf5, 0x2c,
- 0x47, 0x2a, 0xec, 0xdc, 0xef, 0xb1, 0x69, 0x39, 0xc8, 0xca, 0x38, 0x49, 0x7f, 0x28, 0x15, 0x72,
- 0x41, 0xd2, 0x1f, 0x22, 0x2b, 0x23, 0x5f, 0x81, 0x0b, 0xb6, 0xeb, 0x1e, 0xb0, 0xc9, 0x39, 0x1e,
- 0x19, 0x3e, 0x2d, 0x2c, 0x91, 0x1b, 0x49, 0x12, 0xa6, 0x79, 0xc9, 0x0e, 0xbc, 0xf8, 0x01, 0xf5,
- 0x5c, 0xb9, 0x1a, 0x75, 0x6c, 0x4a, 0xfb, 0x0a, 0x46, 0xa8, 0x81, 0x3c, 0x70, 0xfd, 0xe7, 0xb3,
- 0x59, 0x70, 0x54, 0x5d, 0x7e, 0xd4, 0x46, 0xf7, 0xba, 0x34, 0xd8, 0xf2, 0x5c, 0xa6, 0xea, 0x5b,
- 0x4e, 0x57, 0xc1, 0x56, 0x23, 0xd8, 0xed, 0x6c, 0x16, 0x1c, 0x55, 0x97, 0xbc, 0x03, 0x73, 0x82,
- 0x24, 0x94, 0xc2, 0x65, 0x31, 0x89, 0x5b, 0xb6, 0xba, 0xdd, 0x78, 0x5a, 0xb8, 0x97, 0xb7, 0x47,
- 0xf0, 0xe0, 0xc8, 0xda, 0xe4, 0x2d, 0x98, 0x55, 0xc1, 0x05, 0x5b, 0xd4, 0xeb, 0x84, 0xa1, 0x75,
- 0xd3, 0xea, 0x84, 0x81, 0x8a, 0xb0, 0xc7, 0x14, 0x17, 0x0e, 0xd5, 0x23, 0x08, 0x97, 0x79, 0xfc,
- 0xdc, 0x4e, 0x7f, 0xc5, 0x75, 0x6d, 0xd3, 0x7d, 0xe0, 0xa8, 0x67, 0x17, 0xfb, 0x5b, 0x1e, 0x4f,
- 0xd0, 0xc9, 0xe4, 0xc0, 0x11, 0x35, 0xd9, 0x93, 0x73, 0xca, 0xaa, 0xfb, 0xc0, 0x49, 0xa3, 0x42,
- 0xf4, 0xe4, 0x9d, 0x11, 0x3c, 0x38, 0xb2, 0x36, 0x59, 0x03, 0x92, 0x7e, 0x82, 0x9d, 0xbe, 0x8c,
- 0x78, 0xb9, 0x2c, 0xf2, 0x9b, 0xa5, 0xa9, 0x98, 0x51, 0x83, 0x6c, 0xc0, 0xa5, 0x74, 0x29, 0x13,
- 0x27, 0x83, 0x5f, 0x78, 0x66, 0x73, 0xcc, 0xa0, 0x63, 0x66, 0x2d, 0xed, 0xef, 0x15, 0x61, 0x3a,
- 0x91, 0x10, 0xe7, 0x99, 0x4b, 0x3c, 0xc2, 0xf6, 0xda, 0x3d, 0xbf, 0xbb, 0xbe, 0x7a, 0x9b, 0xea,
- 0x26, 0xf5, 0xd4, 0x79, 0xab, 0x86, 0x54, 0x3a, 0x12, 0x14, 0x4c, 0x71, 0x92, 0x3d, 0xa8, 0x08,
- 0xb7, 0x5a, 0xde, 0xcb, 0xd1, 0x54, 0x1f, 0x71, 0xdf, 0x9a, 0xbc, 0x51, 0xd0, 0xf5, 0x28, 0x0a,
- 0x78, 0x2d, 0x80, 0xa9, 0x38, 0x07, 0x9b, 0x48, 0xa2, 0x4d, 0x45, 0x2d, 0xb1, 0xa1, 0x58, 0x87,
- 0x52, 0x10, 0x8c, 0x9b, 0xd2, 0x44, 0xb8, 0x69, 0xb7, 0x37, 0x90, 0x61, 0x68, 0x7b, 0xec, 0xdd,
- 0xf9, 0xbe, 0xe5, 0x3a, 0xf2, 0x7e, 0x8b, 0x1d, 0xa8, 0x49, 0x63, 0xc3, 0x98, 0x29, 0x59, 0xb8,
- 0x26, 0xaa, 0xbc, 0x14, 0x0a, 0x4b, 0xfb, 0x57, 0x45, 0x68, 0x84, 0x56, 0xc5, 0x53, 0xdc, 0x1b,
- 0xe1, 0x42, 0x23, 0x8c, 0xff, 0xcd, 0x7d, 0xf3, 0x73, 0x14, 0x96, 0xca, 0x0d, 0x61, 0xe1, 0x5f,
- 0x8c, 0x64, 0xc4, 0x63, 0x8b, 0x4b, 0x39, 0x62, 0x8b, 0xfb, 0x50, 0x0b, 0x3c, 0xab, 0xdb, 0x95,
- 0x7b, 0xb0, 0x3c, 0xc1, 0xc5, 0x61, 0x77, 0x6d, 0x0b, 0x40, 0xd9, 0xb3, 0xe2, 0x0f, 0x2a, 0x31,
- 0xda, 0xfb, 0x30, 0x9b, 0xe6, 0xe4, 0x1b, 0x14, 0x63, 0x9f, 0x9a, 0x03, 0x5b, 0xf5, 0x71, 0xb4,
- 0x41, 0x91, 0xe5, 0x18, 0x72, 0x90, 0x1b, 0x50, 0x67, 0xaf, 0xe9, 0x03, 0xd7, 0x51, 0x9b, 0x04,
- 0xae, 0xc2, 0x6c, 0xcb, 0x32, 0x0c, 0xa9, 0xda, 0x7f, 0x2a, 0xc1, 0x95, 0xc8, 0x36, 0xbc, 0xa9,
- 0x3b, 0x7a, 0xf7, 0x14, 0xd7, 0xfd, 0x7e, 0x72, 0xc8, 0xf5, 0xac, 0x97, 0xff, 0x94, 0x9e, 0x81,
- 0xcb, 0x7f, 0xfe, 0x6f, 0x11, 0xf8, 0x59, 0x05, 0xf2, 0x2d, 0x98, 0xd2, 0x63, 0x37, 0xbd, 0xcb,
- 0xd7, 0x79, 0x33, 0xf7, 0xeb, 0xe4, 0x47, 0x22, 0x42, 0xb3, 0x59, 0xbc, 0x14, 0x13, 0x02, 0x89,
- 0x0b, 0xf5, 0x3d, 0xdd, 0xb6, 0x99, 0x2e, 0x94, 0xdb, 0xd7, 0x9d, 0x10, 0xce, 0x87, 0xf9, 0x9a,
- 0x84, 0xc6, 0x50, 0x08, 0xf9, 0x4e, 0x01, 0xa6, 0xbd, 0xf8, 0x66, 0x58, 0xbe, 0x90, 0x3c, 0x91,
- 0x50, 0x31, 0xb4, 0x78, 0x74, 0x6a, 0x7c, 0xc7, 0x9d, 0x94, 0xa9, 0xfd, 0x87, 0x02, 0x4c, 0x77,
- 0x6c, 0xcb, 0xb4, 0x9c, 0xee, 0x39, 0xde, 0x3d, 0x74, 0x0f, 0x2a, 0xbe, 0x6d, 0x99, 0x74, 0xcc,
- 0xd5, 0x44, 0xac, 0x63, 0x0c, 0x00, 0x05, 0x4e, 0xf2, 0x32, 0xa3, 0xd2, 0x29, 0x2e, 0x33, 0xfa,
- 0x8f, 0x35, 0x90, 0xa7, 0x6e, 0xc8, 0x00, 0x1a, 0x5d, 0x75, 0x47, 0x8a, 0x7c, 0xc6, 0xdb, 0x39,
- 0xf2, 0xeb, 0x26, 0x6e, 0x5b, 0x11, 0x73, 0x7f, 0x58, 0x88, 0x91, 0x24, 0x42, 0xa1, 0xc2, 0xcf,
- 0xb6, 0xe6, 0x36, 0x1e, 0xc6, 0x4e, 0x31, 0x8b, 0x9e, 0xe1, 0x05, 0x28, 0xd0, 0x89, 0x0e, 0xe5,
- 0xfd, 0x20, 0xe8, 0xcb, 0xc1, 0x34, 0xbe, 0x29, 0x36, 0x4a, 0xf1, 0x26, 0x74, 0x22, 0xf6, 0x1f,
- 0x39, 0x34, 0x13, 0xe1, 0xe8, 0xe1, 0x45, 0xae, 0x2b, 0xb9, 0xa2, 0xae, 0xe2, 0x22, 0xd8, 0x7f,
- 0xe4, 0xd0, 0xe4, 0x17, 0xa1, 0x19, 0x78, 0xba, 0xe3, 0xef, 0xb9, 0x5e, 0x8f, 0x7a, 0xd2, 0x02,
- 0xb0, 0x96, 0xe3, 0x96, 0xfd, 0xed, 0x08, 0x4d, 0x78, 0x30, 0x12, 0x45, 0x18, 0x97, 0x46, 0x0e,
- 0xa0, 0x3e, 0x30, 0x45, 0xc3, 0xa4, 0x29, 0x60, 0x39, 0x87, 0xe4, 0x78, 0x4c, 0x95, 0xfa, 0x87,
- 0xa1, 0x80, 0xe4, 0x9d, 0xc5, 0xb5, 0x49, 0xdd, 0x59, 0x1c, 0x1f, 0x8d, 0x59, 0xf9, 0xa7, 0x48,
- 0x4f, 0xea, 0xb5, 0x4e, 0x57, 0x86, 0x84, 0xae, 0xe5, 0x56, 0x39, 0x85, 0xc8, 0x66, 0xa8, 0x1b,
- 0x3b, 0x5d, 0x54, 0x32, 0x88, 0x05, 0xd5, 0x3e, 0xb7, 0xed, 0xe7, 0xbe, 0xbf, 0x3e, 0xee, 0x7e,
- 0x11, 0x73, 0x8d, 0x28, 0x41, 0x29, 0x40, 0xeb, 0x81, 0xf4, 0xea, 0x12, 0x23, 0x71, 0x25, 0x9c,
- 0x38, 0xb3, 0xbc, 0x78, 0xba, 0xa9, 0x27, 0xbc, 0x9b, 0x2c, 0x76, 0x25, 0x45, 0xe6, 0xdd, 0x6f,
- 0xda, 0xbf, 0x2e, 0x42, 0x69, 0x7b, 0xa3, 0x23, 0xd2, 0x4c, 0xf3, 0x4b, 0x26, 0x69, 0xe7, 0xc0,
- 0xea, 0xdf, 0xa7, 0x9e, 0xb5, 0x77, 0x24, 0x77, 0xf9, 0xb1, 0x34, 0xd3, 0x69, 0x0e, 0xcc, 0xa8,
- 0xc5, 0x8d, 0x38, 0xfa, 0x0a, 0xf5, 0x72, 0x18, 0x71, 0x96, 0xa3, 0xea, 0x98, 0x00, 0x23, 0x3b,
- 0x00, 0x46, 0x04, 0x5d, 0x3a, 0xb3, 0xe5, 0x25, 0x06, 0x1c, 0x03, 0x22, 0x08, 0x8d, 0x03, 0xc6,
- 0xca, 0x51, 0xcb, 0x67, 0x41, 0xe5, 0x83, 0xf4, 0x8e, 0xaa, 0x8b, 0x11, 0x8c, 0xe6, 0xc0, 0x74,
- 0xe2, 0x9e, 0x38, 0xf2, 0x25, 0xa8, 0xbb, 0xfd, 0xd8, 0xcc, 0xdd, 0xe0, 0x71, 0xee, 0xf5, 0x7b,
- 0xb2, 0xec, 0xd1, 0x71, 0x6b, 0x7a, 0xc3, 0xed, 0x5a, 0x86, 0x2a, 0xc0, 0x90, 0x9d, 0x68, 0x50,
- 0xe5, 0x27, 0xaa, 0xd5, 0x2d, 0x71, 0x7c, 0xe8, 0xf0, 0x8b, 0x9c, 0x7c, 0x94, 0x14, 0xed, 0x97,
- 0xcb, 0x10, 0xc5, 0x42, 0x10, 0x1f, 0xaa, 0xe2, 0x34, 0x97, 0x5c, 0x24, 0xce, 0xf5, 0xe0, 0x98,
- 0x14, 0x45, 0xba, 0x50, 0x7a, 0xdf, 0xdd, 0xcd, 0xbd, 0x46, 0xc4, 0xd2, 0xc2, 0x08, 0xa3, 0x67,
- 0xac, 0x00, 0x99, 0x04, 0xf2, 0x17, 0x0b, 0xf0, 0xbc, 0x9f, 0xd6, 0xb2, 0xe5, 0x70, 0xc0, 0xfc,
- 0xdb, 0x89, 0xb4, 0xde, 0x2e, 0x0f, 0x24, 0x8c, 0x22, 0xe3, 0x70, 0x5b, 0x58, 0xff, 0x8b, 0x20,
- 0x05, 0x39, 0x9c, 0x6e, 0xe5, 0xbc, 0x0d, 0x3b, 0xd9, 0xff, 0xc9, 0x32, 0x94, 0xa2, 0xb4, 0x6f,
- 0x17, 0xa1, 0x19, 0x5b, 0x18, 0x72, 0x5f, 0x3e, 0xf8, 0x30, 0x75, 0xf9, 0xe0, 0xd6, 0xf8, 0x31,
- 0x3b, 0x51, 0xab, 0xce, 0xfb, 0xfe, 0xc1, 0x7f, 0x58, 0x84, 0xd2, 0xce, 0xea, 0x5a, 0x72, 0x7f,
- 0x5c, 0x78, 0x0a, 0xfb, 0xe3, 0x7d, 0xa8, 0xed, 0x0e, 0x2c, 0x3b, 0xb0, 0x9c, 0xdc, 0x89, 0xab,
- 0xd4, 0x5d, 0x8d, 0xd2, 0x69, 0x25, 0x50, 0x51, 0xc1, 0x93, 0x2e, 0xd4, 0xba, 0x22, 0x73, 0x70,
- 0xee, 0x48, 0x66, 0x99, 0x81, 0x58, 0x08, 0x92, 0x7f, 0x50, 0xa1, 0x6b, 0x47, 0x50, 0xdd, 0x59,
- 0x95, 0x3b, 0x8c, 0xa7, 0xdb, 0x9b, 0xda, 0x2f, 0x42, 0xa8, 0x70, 0x3c, 0x7d, 0xe1, 0xff, 0xa5,
- 0x00, 0x49, 0x1d, 0xeb, 0xe9, 0x8f, 0xa6, 0x83, 0xf4, 0x68, 0x5a, 0x9d, 0xc4, 0xc7, 0x97, 0x3d,
- 0xa0, 0xb4, 0x7f, 0x51, 0x80, 0xd4, 0x11, 0x5c, 0xf2, 0x9a, 0x4c, 0x42, 0x99, 0x0c, 0x19, 0x55,
- 0x49, 0x28, 0x49, 0x92, 0x3b, 0x96, 0x8c, 0xf2, 0x43, 0xb6, 0x33, 0x8c, 0x7b, 0x42, 0x65, 0xf3,
- 0xef, 0x8e, 0xbf, 0x33, 0xcc, 0xf2, 0xab, 0xca, 0xb0, 0xe6, 0x38, 0x09, 0x93, 0x72, 0xb5, 0xbf,
- 0x53, 0x84, 0xea, 0x53, 0xcb, 0x3a, 0x42, 0x13, 0x91, 0xe6, 0x2b, 0x39, 0x67, 0xfb, 0x91, 0x71,
- 0xe6, 0xbd, 0x54, 0x9c, 0xf9, 0xcd, 0xbc, 0x82, 0x1e, 0x1f, 0x65, 0xfe, 0xcf, 0x0a, 0x20, 0xd7,
- 0x9a, 0x75, 0xc7, 0x0f, 0x74, 0xc7, 0xa0, 0xc4, 0x08, 0x17, 0xb6, 0xbc, 0xe1, 0x8c, 0x32, 0xe4,
- 0x57, 0xe8, 0x32, 0xfc, 0xb7, 0x5a, 0xc8, 0xc8, 0xe7, 0xa1, 0xbe, 0xef, 0xfa, 0x01, 0x5f, 0xbc,
- 0x8a, 0x49, 0xeb, 0xdc, 0x6d, 0x59, 0x8e, 0x21, 0x47, 0x3a, 0x2e, 0xa1, 0x32, 0x3a, 0x2e, 0x41,
- 0xfb, 0xcd, 0x22, 0x4c, 0x7d, 0x5c, 0xd2, 0x9a, 0x64, 0xc5, 0xe5, 0x97, 0x72, 0xc6, 0xe5, 0x97,
- 0xcf, 0x12, 0x97, 0xaf, 0xfd, 0xa0, 0x00, 0xf0, 0xd4, 0x72, 0xaa, 0x98, 0xc9, 0x90, 0xf9, 0xdc,
- 0xe3, 0x2a, 0x3b, 0x60, 0xfe, 0x6f, 0x56, 0xd4, 0x23, 0xf1, 0x70, 0xf9, 0x0f, 0x0b, 0x30, 0xa3,
- 0x27, 0x42, 0xd0, 0x73, 0xeb, 0xcb, 0xa9, 0x88, 0xf6, 0x30, 0x82, 0x32, 0x59, 0x8e, 0x29, 0xb1,
- 0xe4, 0xf5, 0xe8, 0xfe, 0x83, 0xbb, 0xd1, 0xb0, 0x1f, 0xba, 0xb8, 0x40, 0xc4, 0xcc, 0xc5, 0x39,
- 0x9f, 0x10, 0xf2, 0x5f, 0x9a, 0x48, 0xc8, 0x7f, 0xfc, 0x30, 0x73, 0xf9, 0xb1, 0x87, 0x99, 0x0f,
- 0xa1, 0xb1, 0xe7, 0xb9, 0x3d, 0x1e, 0x55, 0x3f, 0x57, 0xe1, 0xaf, 0xf2, 0x66, 0x8e, 0x85, 0xb2,
- 0xb7, 0x6b, 0x39, 0xd4, 0xe4, 0x11, 0xfb, 0xa1, 0x8d, 0x6c, 0x4d, 0xe1, 0x63, 0x24, 0x8a, 0xbb,
- 0x15, 0x5c, 0x21, 0xb5, 0x3a, 0x49, 0xa9, 0xe1, 0x5c, 0xb2, 0x2d, 0xd0, 0x51, 0x89, 0x49, 0x46,
- 0xd2, 0xd7, 0x9e, 0x4e, 0x24, 0xbd, 0xf6, 0xa7, 0x6b, 0x6a, 0x02, 0x7b, 0xe6, 0x52, 0x6d, 0x7f,
- 0x92, 0x82, 0xa2, 0x4b, 0x87, 0xf2, 0x43, 0xd4, 0x9f, 0x62, 0x7e, 0x88, 0xc6, 0x64, 0xf2, 0x43,
- 0x40, 0xbe, 0xfc, 0x10, 0xcd, 0x09, 0xe5, 0x87, 0x98, 0x9a, 0x54, 0x7e, 0x88, 0xe9, 0xb1, 0xf2,
- 0x43, 0xcc, 0x9c, 0x2a, 0x3f, 0xc4, 0x71, 0x09, 0x52, 0x9b, 0xf1, 0x4f, 0x7c, 0x7c, 0x3f, 0x56,
- 0x3e, 0xbe, 0xef, 0x16, 0x21, 0x9a, 0x88, 0xcf, 0x18, 0x03, 0xf5, 0x0e, 0x0f, 0x43, 0xe7, 0x47,
- 0x1a, 0xf2, 0xdc, 0x50, 0xbf, 0x29, 0x31, 0x30, 0x44, 0x23, 0x3e, 0x80, 0x15, 0xde, 0x12, 0x93,
- 0xdb, 0x5b, 0x12, 0x5d, 0x38, 0x23, 0x8c, 0xa4, 0xd1, 0x7f, 0x8c, 0x89, 0xd1, 0xfe, 0x69, 0x11,
- 0xe4, 0x75, 0x42, 0x84, 0x42, 0x65, 0xcf, 0x7a, 0x48, 0xcd, 0xdc, 0x71, 0xeb, 0x6b, 0x0c, 0x45,
- 0xde, 0x59, 0xc4, 0xdd, 0x41, 0xbc, 0x00, 0x05, 0x3a, 0xb7, 0xf3, 0x0b, 0xf7, 0x9e, 0xec, 0xbf,
- 0x1c, 0x76, 0xfe, 0xb8, 0x9b, 0x50, 0xda, 0xf9, 0x45, 0x11, 0x2a, 0x19, 0xc2, 0xad, 0xc0, 0x23,
- 0x3d, 0x72, 0x7b, 0x33, 0x13, 0x11, 0x23, 0xca, 0xad, 0xe0, 0x8b, 0x04, 0x31, 0x52, 0x46, 0xfb,
- 0x17, 0xbe, 0xff, 0xa3, 0x6b, 0xcf, 0xfd, 0xe0, 0x47, 0xd7, 0x9e, 0xfb, 0xe1, 0x8f, 0xae, 0x3d,
- 0xf7, 0xcb, 0x27, 0xd7, 0x0a, 0xdf, 0x3f, 0xb9, 0x56, 0xf8, 0xc1, 0xc9, 0xb5, 0xc2, 0x0f, 0x4f,
- 0xae, 0x15, 0xfe, 0xdd, 0xc9, 0xb5, 0xc2, 0x9f, 0xfb, 0xf7, 0xd7, 0x9e, 0xfb, 0xf9, 0x2f, 0x46,
- 0x4d, 0x58, 0x54, 0x4d, 0x58, 0x54, 0x02, 0x17, 0xfb, 0x07, 0xdd, 0x45, 0xd6, 0x84, 0xa8, 0x44,
- 0x35, 0xe1, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x83, 0x43, 0xf5, 0x85, 0xa3, 0xa3, 0x00, 0x00,
+ 0x96, 0xd7, 0xd4, 0xff, 0xaa, 0x57, 0xfe, 0x37, 0xd1, 0x3d, 0x3d, 0x6e, 0x6f, 0x4f, 0x57, 0x6f,
+ 0xce, 0xed, 0x6c, 0x1f, 0xb7, 0x67, 0x33, 0xbe, 0x9d, 0xd9, 0xd9, 0xdb, 0xdb, 0x9d, 0x71, 0xd9,
+ 0x6d, 0xb7, 0xbb, 0xed, 0x6e, 0xef, 0x2b, 0xbb, 0x67, 0x76, 0x87, 0xdb, 0x21, 0x5d, 0x19, 0x2e,
+ 0xe7, 0x38, 0x2b, 0xb3, 0x36, 0x33, 0xcb, 0xdd, 0x9e, 0xe3, 0xb4, 0x77, 0xbb, 0xa0, 0x59, 0x04,
+ 0x08, 0x74, 0x9f, 0x4e, 0x42, 0x07, 0x02, 0x21, 0xdd, 0x87, 0xd3, 0xf1, 0xe1, 0xc4, 0x22, 0xc4,
+ 0x07, 0xe0, 0x10, 0x82, 0xe5, 0xff, 0x0a, 0x21, 0x31, 0x48, 0x60, 0xb1, 0x46, 0x08, 0x81, 0x04,
+ 0x3a, 0x38, 0x01, 0x47, 0x0b, 0x71, 0x28, 0xfe, 0xe5, 0xbf, 0xca, 0x72, 0xdb, 0x95, 0xe5, 0x9e,
+ 0x9e, 0x63, 0xbe, 0x55, 0xc5, 0x7b, 0xf1, 0x7b, 0x91, 0x91, 0x91, 0x11, 0x2f, 0xde, 0x7b, 0xf1,
+ 0x02, 0xd6, 0x3a, 0xa6, 0xbf, 0xdf, 0xdf, 0x9d, 0x6f, 0x3b, 0xdd, 0x05, 0xbb, 0xdf, 0xd5, 0x7b,
+ 0xae, 0xf3, 0x3e, 0xff, 0xb1, 0x67, 0x39, 0x0f, 0x17, 0x7a, 0x07, 0x9d, 0x05, 0xbd, 0x67, 0x7a,
+ 0x61, 0xc9, 0xe1, 0xab, 0xba, 0xd5, 0xdb, 0xd7, 0x5f, 0x5d, 0xe8, 0x50, 0x9b, 0xba, 0xba, 0x4f,
+ 0x8d, 0xf9, 0x9e, 0xeb, 0xf8, 0x0e, 0xf9, 0x52, 0x08, 0x34, 0xaf, 0x80, 0xe6, 0x55, 0xb5, 0xf9,
+ 0xde, 0x41, 0x67, 0x9e, 0x01, 0x85, 0x25, 0x0a, 0x68, 0xee, 0xa7, 0x23, 0x2d, 0xe8, 0x38, 0x1d,
+ 0x67, 0x81, 0xe3, 0xed, 0xf6, 0xf7, 0xf8, 0x3f, 0xfe, 0x87, 0xff, 0x12, 0x72, 0xe6, 0xb4, 0x83,
+ 0x37, 0xbc, 0x79, 0xd3, 0x61, 0xcd, 0x5a, 0x68, 0x3b, 0x2e, 0x5d, 0x38, 0x1c, 0x68, 0xcb, 0xdc,
+ 0x17, 0x43, 0x9e, 0xae, 0xde, 0xde, 0x37, 0x6d, 0xea, 0x1e, 0xa9, 0x67, 0x59, 0x70, 0xa9, 0xe7,
+ 0xf4, 0xdd, 0x36, 0x3d, 0x57, 0x2d, 0x6f, 0xa1, 0x4b, 0x7d, 0x3d, 0x4d, 0xd6, 0xc2, 0xb0, 0x5a,
+ 0x6e, 0xdf, 0xf6, 0xcd, 0xee, 0xa0, 0x98, 0xd7, 0x9f, 0x54, 0xc1, 0x6b, 0xef, 0xd3, 0xae, 0x3e,
+ 0x50, 0xef, 0x67, 0x86, 0xd5, 0xeb, 0xfb, 0xa6, 0xb5, 0x60, 0xda, 0xbe, 0xe7, 0xbb, 0xc9, 0x4a,
+ 0xda, 0x6f, 0x03, 0x5c, 0x5a, 0xda, 0xf5, 0x7c, 0x57, 0x6f, 0xfb, 0x5b, 0x8e, 0xb1, 0x4d, 0xbb,
+ 0x3d, 0x4b, 0xf7, 0x29, 0x39, 0x80, 0x2a, 0x7b, 0x20, 0x43, 0xf7, 0xf5, 0xd9, 0xdc, 0x8d, 0xdc,
+ 0xcd, 0xfa, 0xe2, 0xd2, 0xfc, 0x88, 0x2f, 0x70, 0x7e, 0x53, 0x02, 0x35, 0x27, 0x4e, 0x8e, 0x1b,
+ 0x55, 0xf5, 0x0f, 0x03, 0x01, 0xe4, 0x57, 0x73, 0x30, 0x61, 0x3b, 0x06, 0x6d, 0x51, 0x8b, 0xb6,
+ 0x7d, 0xc7, 0x9d, 0xcd, 0xdf, 0x28, 0xdc, 0xac, 0x2f, 0x7e, 0x6b, 0x64, 0x89, 0x29, 0x4f, 0x34,
+ 0x7f, 0x2f, 0x22, 0xe0, 0x96, 0xed, 0xbb, 0x47, 0xcd, 0xcb, 0x3f, 0x3c, 0x6e, 0x3c, 0x77, 0x72,
+ 0xdc, 0x98, 0x88, 0x92, 0x30, 0xd6, 0x12, 0xb2, 0x03, 0x75, 0xdf, 0xb1, 0x58, 0x97, 0x99, 0x8e,
+ 0xed, 0xcd, 0x16, 0x78, 0xc3, 0xae, 0xcf, 0x8b, 0xae, 0x66, 0xe2, 0xe7, 0xd9, 0x18, 0x9b, 0x3f,
+ 0x7c, 0x75, 0x7e, 0x3b, 0x60, 0x6b, 0x5e, 0x92, 0xc0, 0xf5, 0xb0, 0xcc, 0xc3, 0x28, 0x0e, 0xa1,
+ 0x30, 0xed, 0xd1, 0x76, 0xdf, 0x35, 0xfd, 0xa3, 0x65, 0xc7, 0xf6, 0xe9, 0x23, 0x7f, 0xb6, 0xc8,
+ 0x7b, 0xf9, 0x95, 0x34, 0xe8, 0x2d, 0xc7, 0x68, 0xc5, 0xb9, 0x9b, 0x97, 0x4e, 0x8e, 0x1b, 0xd3,
+ 0x89, 0x42, 0x4c, 0x62, 0x12, 0x1b, 0x66, 0xcc, 0xae, 0xde, 0xa1, 0x5b, 0x7d, 0xcb, 0x6a, 0xd1,
+ 0xb6, 0x4b, 0x7d, 0x6f, 0xb6, 0xc4, 0x1f, 0xe1, 0x66, 0x9a, 0x9c, 0x0d, 0xa7, 0xad, 0x5b, 0xf7,
+ 0x77, 0xdf, 0xa7, 0x6d, 0x1f, 0xe9, 0x1e, 0x75, 0xa9, 0xdd, 0xa6, 0xcd, 0x59, 0xf9, 0x30, 0x33,
+ 0xeb, 0x09, 0x24, 0x1c, 0xc0, 0x26, 0x6b, 0xf0, 0x7c, 0xcf, 0x35, 0x1d, 0xde, 0x04, 0x4b, 0xf7,
+ 0xbc, 0x7b, 0x7a, 0x97, 0xce, 0x96, 0x6f, 0xe4, 0x6e, 0xd6, 0x9a, 0x57, 0x25, 0xcc, 0xf3, 0x5b,
+ 0x49, 0x06, 0x1c, 0xac, 0x43, 0x6e, 0x42, 0x55, 0x15, 0xce, 0x56, 0x6e, 0xe4, 0x6e, 0x96, 0xc4,
+ 0xd8, 0x51, 0x75, 0x31, 0xa0, 0x92, 0x55, 0xa8, 0xea, 0x7b, 0x7b, 0xa6, 0xcd, 0x38, 0xab, 0xbc,
+ 0x0b, 0xaf, 0xa5, 0x3d, 0xda, 0x92, 0xe4, 0x11, 0x38, 0xea, 0x1f, 0x06, 0x75, 0xc9, 0x1d, 0x20,
+ 0x1e, 0x75, 0x0f, 0xcd, 0x36, 0x5d, 0x6a, 0xb7, 0x9d, 0xbe, 0xed, 0xf3, 0xb6, 0xd7, 0x78, 0xdb,
+ 0xe7, 0x64, 0xdb, 0x49, 0x6b, 0x80, 0x03, 0x53, 0x6a, 0x91, 0xb7, 0x60, 0x46, 0x7e, 0xab, 0x61,
+ 0x2f, 0x00, 0x47, 0xba, 0xcc, 0x3a, 0x12, 0x13, 0x34, 0x1c, 0xe0, 0x26, 0x06, 0x5c, 0xd3, 0xfb,
+ 0xbe, 0xd3, 0x65, 0x90, 0x71, 0xa1, 0xdb, 0xce, 0x01, 0xb5, 0x67, 0xeb, 0x37, 0x72, 0x37, 0xab,
+ 0xcd, 0x1b, 0x27, 0xc7, 0x8d, 0x6b, 0x4b, 0xa7, 0xf0, 0xe1, 0xa9, 0x28, 0xe4, 0x3e, 0xd4, 0x0c,
+ 0xdb, 0xdb, 0x72, 0x2c, 0xb3, 0x7d, 0x34, 0x3b, 0xc1, 0x1b, 0xf8, 0xaa, 0x7c, 0xd4, 0xda, 0xca,
+ 0xbd, 0x96, 0x20, 0x3c, 0x3e, 0x6e, 0x5c, 0x1b, 0x9c, 0x52, 0xe7, 0x03, 0x3a, 0x86, 0x18, 0x64,
+ 0x93, 0x03, 0x2e, 0x3b, 0xf6, 0x9e, 0xd9, 0x99, 0x9d, 0xe4, 0x6f, 0xe3, 0xc6, 0x90, 0x01, 0xbd,
+ 0x72, 0xaf, 0x25, 0xf8, 0x9a, 0x93, 0x52, 0x9c, 0xf8, 0x8b, 0x21, 0x02, 0x31, 0x60, 0x4a, 0x4d,
+ 0xc6, 0xcb, 0x96, 0x6e, 0x76, 0xbd, 0xd9, 0x29, 0x3e, 0x78, 0x7f, 0x62, 0x08, 0x26, 0x46, 0x99,
+ 0x9b, 0x57, 0xe4, 0xa3, 0x4c, 0xc5, 0x8a, 0x3d, 0x4c, 0x60, 0xce, 0xbd, 0x09, 0xcf, 0x0f, 0xcc,
+ 0x0d, 0x64, 0x06, 0x0a, 0x07, 0xf4, 0x88, 0x4f, 0x7d, 0x35, 0x64, 0x3f, 0xc9, 0x65, 0x28, 0x1d,
+ 0xea, 0x56, 0x9f, 0xce, 0xe6, 0x79, 0x99, 0xf8, 0xf3, 0xb3, 0xf9, 0x37, 0x72, 0xda, 0x5f, 0x2e,
+ 0xc0, 0x84, 0x9a, 0x71, 0x5a, 0xa6, 0x7d, 0x40, 0xde, 0x86, 0x82, 0xe5, 0x74, 0xe4, 0xbc, 0xf9,
+ 0x73, 0x23, 0xcf, 0x62, 0x1b, 0x4e, 0xa7, 0x59, 0x39, 0x39, 0x6e, 0x14, 0x36, 0x9c, 0x0e, 0x32,
+ 0x44, 0xd2, 0x86, 0xd2, 0x81, 0xbe, 0x77, 0xa0, 0xf3, 0x36, 0xd4, 0x17, 0x9b, 0x23, 0x43, 0xdf,
+ 0x65, 0x28, 0xac, 0xad, 0xcd, 0xda, 0xc9, 0x71, 0xa3, 0xc4, 0xff, 0xa2, 0xc0, 0x26, 0x0e, 0xd4,
+ 0x76, 0x2d, 0xbd, 0x7d, 0xb0, 0xef, 0x58, 0x74, 0xb6, 0x90, 0x51, 0x50, 0x53, 0x21, 0x89, 0xd7,
+ 0x1c, 0xfc, 0xc5, 0x50, 0x06, 0x69, 0x43, 0xb9, 0x6f, 0x78, 0xa6, 0x7d, 0x20, 0xe7, 0xc0, 0x37,
+ 0x47, 0x96, 0xb6, 0xb3, 0xc2, 0x9f, 0x09, 0x4e, 0x8e, 0x1b, 0x65, 0xf1, 0x1b, 0x25, 0xb4, 0xf6,
+ 0x7b, 0x13, 0x30, 0xa5, 0x5e, 0xd2, 0x03, 0xea, 0xfa, 0xf4, 0x11, 0xb9, 0x01, 0x45, 0x9b, 0x7d,
+ 0x9a, 0xfc, 0x25, 0x37, 0x27, 0xe4, 0x70, 0x29, 0xf2, 0x4f, 0x92, 0x53, 0x58, 0xcb, 0xc4, 0x50,
+ 0x91, 0x1d, 0x3e, 0x7a, 0xcb, 0x5a, 0x1c, 0x46, 0xb4, 0x4c, 0xfc, 0x46, 0x09, 0x4d, 0xde, 0x85,
+ 0x22, 0x7f, 0x78, 0xd1, 0xd5, 0x5f, 0x1d, 0x5d, 0x04, 0x7b, 0xf4, 0x2a, 0x7b, 0x02, 0xfe, 0xe0,
+ 0x1c, 0x94, 0x0d, 0xc5, 0xbe, 0xb1, 0x27, 0x3b, 0xf6, 0xe7, 0x32, 0x74, 0xec, 0xaa, 0x18, 0x8a,
+ 0x3b, 0x2b, 0xab, 0xc8, 0x10, 0xc9, 0x9f, 0xcd, 0xc1, 0xf3, 0x6d, 0xc7, 0xf6, 0x75, 0xa6, 0x67,
+ 0xa8, 0x45, 0x76, 0xb6, 0xc4, 0xe5, 0xdc, 0x19, 0x59, 0xce, 0x72, 0x12, 0xb1, 0xf9, 0x02, 0x5b,
+ 0x33, 0x06, 0x8a, 0x71, 0x50, 0x36, 0xf9, 0xf3, 0x39, 0x78, 0x81, 0xcd, 0xe5, 0x03, 0xcc, 0x7c,
+ 0x05, 0x1a, 0x6f, 0xab, 0xae, 0x9e, 0x1c, 0x37, 0x5e, 0x58, 0x4f, 0x13, 0x86, 0xe9, 0x6d, 0x60,
+ 0xad, 0xbb, 0xa4, 0x0f, 0xaa, 0x25, 0x7c, 0x75, 0xab, 0x2f, 0x6e, 0x8c, 0x53, 0xd5, 0x69, 0x7e,
+ 0x46, 0x0e, 0xe5, 0x34, 0xcd, 0x0e, 0xd3, 0x5a, 0x41, 0x6e, 0x41, 0xe5, 0xd0, 0xb1, 0xfa, 0x5d,
+ 0xea, 0xcd, 0x56, 0xf9, 0x14, 0x3b, 0x97, 0x36, 0xc5, 0x3e, 0xe0, 0x2c, 0xcd, 0x69, 0x09, 0x5f,
+ 0x11, 0xff, 0x3d, 0x54, 0x75, 0x89, 0x09, 0x65, 0xcb, 0xec, 0x9a, 0xbe, 0xc7, 0x17, 0xce, 0xfa,
+ 0xe2, 0xad, 0x91, 0x1f, 0x4b, 0x7c, 0xa2, 0x1b, 0x1c, 0x4c, 0x7c, 0x35, 0xe2, 0x37, 0x4a, 0x01,
+ 0x6c, 0x2a, 0xf4, 0xda, 0xba, 0x25, 0x16, 0xd6, 0xfa, 0xe2, 0xd7, 0x46, 0xff, 0x6c, 0x18, 0x4a,
+ 0x73, 0x52, 0x3e, 0x53, 0x89, 0xff, 0x45, 0x81, 0x4d, 0x7e, 0x1e, 0xa6, 0x62, 0x6f, 0xd3, 0x9b,
+ 0xad, 0xf3, 0xde, 0x79, 0x29, 0xad, 0x77, 0x02, 0xae, 0x70, 0xe5, 0x89, 0x8d, 0x10, 0x0f, 0x13,
+ 0x60, 0xe4, 0x2e, 0x54, 0x3d, 0xd3, 0xa0, 0x6d, 0xdd, 0xf5, 0x66, 0x27, 0xce, 0x02, 0x3c, 0x23,
+ 0x81, 0xab, 0x2d, 0x59, 0x0d, 0x03, 0x00, 0x32, 0x0f, 0xd0, 0xd3, 0x5d, 0xdf, 0x14, 0x8a, 0xea,
+ 0x24, 0x57, 0x9a, 0xa6, 0x4e, 0x8e, 0x1b, 0xb0, 0x15, 0x94, 0x62, 0x84, 0x83, 0xf1, 0xb3, 0xba,
+ 0xeb, 0x76, 0xaf, 0xef, 0x8b, 0x85, 0xb5, 0x26, 0xf8, 0x5b, 0x41, 0x29, 0x46, 0x38, 0xc8, 0x6f,
+ 0xe6, 0xe0, 0x33, 0xe1, 0xdf, 0xc1, 0x8f, 0x6c, 0x7a, 0xec, 0x1f, 0x59, 0xe3, 0xe4, 0xb8, 0xf1,
+ 0x99, 0xd6, 0x70, 0x91, 0x78, 0x5a, 0x7b, 0xc8, 0x87, 0x39, 0x98, 0xea, 0xf7, 0x0c, 0xdd, 0xa7,
+ 0x2d, 0x9f, 0xed, 0x78, 0x3a, 0x47, 0xb3, 0x33, 0xbc, 0x89, 0x6b, 0xa3, 0xcf, 0x82, 0x31, 0xb8,
+ 0xf0, 0x35, 0xc7, 0xcb, 0x31, 0x21, 0x56, 0x7b, 0x1b, 0x26, 0x97, 0xfa, 0xfe, 0xbe, 0xe3, 0x9a,
+ 0x1f, 0x70, 0xf5, 0x9f, 0xac, 0x42, 0xc9, 0xe7, 0x6a, 0x9c, 0xd0, 0x10, 0x3e, 0x97, 0xf6, 0xd2,
+ 0x85, 0x4a, 0x7d, 0x97, 0x1e, 0x29, 0xbd, 0x44, 0xac, 0xd4, 0x42, 0xad, 0x13, 0xd5, 0xb5, 0x3f,
+ 0x9e, 0x83, 0x4a, 0x53, 0x6f, 0x1f, 0x38, 0x7b, 0x7b, 0xe4, 0x1d, 0xa8, 0x9a, 0xb6, 0x4f, 0xdd,
+ 0x43, 0xdd, 0x92, 0xb0, 0xf3, 0x11, 0xd8, 0x60, 0x43, 0x18, 0x3e, 0x1e, 0xdb, 0x7d, 0x31, 0x41,
+ 0x2b, 0x7d, 0xb9, 0x6b, 0xe1, 0x9a, 0xf1, 0xba, 0xc4, 0xc0, 0x00, 0x8d, 0x34, 0xa0, 0xe4, 0xf9,
+ 0xb4, 0xe7, 0xf1, 0x35, 0x70, 0x52, 0x34, 0xa3, 0xc5, 0x0a, 0x50, 0x94, 0x6b, 0x7f, 0x29, 0x07,
+ 0xb5, 0xa6, 0xee, 0x99, 0x6d, 0xf6, 0x94, 0x64, 0x19, 0x8a, 0x7d, 0x8f, 0xba, 0xe7, 0x7b, 0x36,
+ 0xbe, 0x6c, 0xed, 0x78, 0xd4, 0x45, 0x5e, 0x99, 0xdc, 0x87, 0x6a, 0x4f, 0xf7, 0xbc, 0x87, 0x8e,
+ 0x6b, 0xc8, 0xa5, 0xf7, 0x8c, 0x40, 0x62, 0x9b, 0x20, 0xab, 0x62, 0x00, 0xa2, 0xd5, 0x21, 0xd4,
+ 0x3d, 0xb4, 0xdf, 0xcd, 0xc1, 0xa5, 0x66, 0x7f, 0x6f, 0x8f, 0xba, 0x52, 0x2b, 0x96, 0xfa, 0x26,
+ 0x85, 0x92, 0x4b, 0x0d, 0xd3, 0x93, 0x6d, 0x5f, 0x19, 0x79, 0xa0, 0x20, 0x43, 0x91, 0xea, 0x2d,
+ 0xef, 0x2f, 0x5e, 0x80, 0x02, 0x9d, 0xf4, 0xa1, 0xf6, 0x3e, 0x65, 0xbb, 0x71, 0xaa, 0x77, 0xe5,
+ 0xd3, 0xdd, 0x1e, 0x59, 0xd4, 0x1d, 0xea, 0xb7, 0x38, 0x52, 0x54, 0x9b, 0x0e, 0x0a, 0x31, 0x94,
+ 0xa4, 0xfd, 0x76, 0x09, 0x26, 0x96, 0x9d, 0xee, 0xae, 0x69, 0x53, 0xe3, 0x96, 0xd1, 0xa1, 0xe4,
+ 0x3d, 0x28, 0x52, 0xa3, 0x43, 0xe5, 0xd3, 0x8e, 0xae, 0x78, 0x30, 0xb0, 0x50, 0x7d, 0x62, 0xff,
+ 0x90, 0x03, 0x93, 0x0d, 0x98, 0xda, 0x73, 0x9d, 0xae, 0x98, 0xcb, 0xb7, 0x8f, 0x7a, 0x52, 0x77,
+ 0x6e, 0xfe, 0x84, 0xfa, 0x70, 0x56, 0x63, 0xd4, 0xc7, 0xc7, 0x0d, 0x08, 0xff, 0x61, 0xa2, 0x2e,
+ 0x79, 0x07, 0x66, 0xc3, 0x92, 0x60, 0x52, 0x5b, 0x66, 0xdb, 0x19, 0xae, 0x3b, 0x95, 0x9a, 0xd7,
+ 0x4e, 0x8e, 0x1b, 0xb3, 0xab, 0x43, 0x78, 0x70, 0x68, 0x6d, 0x36, 0x55, 0xcc, 0x84, 0x44, 0xb1,
+ 0xd0, 0x48, 0x95, 0x69, 0x4c, 0x2b, 0x18, 0xdf, 0xf7, 0xad, 0x26, 0x44, 0xe0, 0x80, 0x50, 0xb2,
+ 0x0a, 0x13, 0xbe, 0x13, 0xe9, 0xaf, 0x12, 0xef, 0x2f, 0x4d, 0x19, 0x2a, 0xb6, 0x9d, 0xa1, 0xbd,
+ 0x15, 0xab, 0x47, 0x10, 0xae, 0xa8, 0xff, 0x89, 0x9e, 0x2a, 0xf3, 0x9e, 0x9a, 0x3b, 0x39, 0x6e,
+ 0x5c, 0xd9, 0x4e, 0xe5, 0xc0, 0x21, 0x35, 0xc9, 0x2f, 0xe7, 0x60, 0x4a, 0x91, 0x64, 0x1f, 0x55,
+ 0xc6, 0xd9, 0x47, 0x84, 0x8d, 0x88, 0xed, 0x98, 0x00, 0x4c, 0x08, 0xd4, 0x7e, 0x50, 0x81, 0x5a,
+ 0x30, 0xd5, 0x93, 0x97, 0xa1, 0xc4, 0x4d, 0x10, 0x52, 0x83, 0x0f, 0xd6, 0x70, 0x6e, 0xa9, 0x40,
+ 0x41, 0x23, 0x9f, 0x83, 0x4a, 0xdb, 0xe9, 0x76, 0x75, 0xdb, 0xe0, 0x66, 0xa5, 0x5a, 0xb3, 0xce,
+ 0x54, 0x97, 0x65, 0x51, 0x84, 0x8a, 0x46, 0xae, 0x41, 0x51, 0x77, 0x3b, 0xc2, 0xc2, 0x53, 0x13,
+ 0xf3, 0xd1, 0x92, 0xdb, 0xf1, 0x90, 0x97, 0x92, 0x2f, 0x43, 0x81, 0xda, 0x87, 0xb3, 0xc5, 0xe1,
+ 0xba, 0xd1, 0x2d, 0xfb, 0xf0, 0x81, 0xee, 0x36, 0xeb, 0xb2, 0x0d, 0x85, 0x5b, 0xf6, 0x21, 0xb2,
+ 0x3a, 0x64, 0x03, 0x2a, 0xd4, 0x3e, 0x64, 0xef, 0x5e, 0x9a, 0x5e, 0x3e, 0x3b, 0xa4, 0x3a, 0x63,
+ 0x91, 0xdb, 0x84, 0x40, 0xc3, 0x92, 0xc5, 0xa8, 0x20, 0xc8, 0x37, 0x60, 0x42, 0x28, 0x5b, 0x9b,
+ 0xec, 0x9d, 0x78, 0xb3, 0x65, 0x0e, 0xd9, 0x18, 0xae, 0xad, 0x71, 0xbe, 0xd0, 0xd4, 0x15, 0x29,
+ 0xf4, 0x30, 0x06, 0x45, 0xbe, 0x01, 0x35, 0xb5, 0x33, 0x56, 0x6f, 0x36, 0xd5, 0x4a, 0xa4, 0xb6,
+ 0xd3, 0x48, 0xbf, 0xdd, 0x37, 0x5d, 0xda, 0xa5, 0xb6, 0xef, 0x35, 0x9f, 0x57, 0x76, 0x03, 0x45,
+ 0xf5, 0x30, 0x44, 0x23, 0xbb, 0x83, 0xe6, 0x2e, 0x61, 0xab, 0x79, 0x79, 0xc8, 0xac, 0x3e, 0x82,
+ 0xad, 0xeb, 0x5b, 0x30, 0x1d, 0xd8, 0xa3, 0xa4, 0x49, 0x43, 0x58, 0x6f, 0xbe, 0xc8, 0xaa, 0xaf,
+ 0xc7, 0x49, 0x8f, 0x8f, 0x1b, 0x2f, 0xa5, 0x18, 0x35, 0x42, 0x06, 0x4c, 0x82, 0x91, 0x0f, 0x60,
+ 0xca, 0xa5, 0xba, 0x61, 0xda, 0xd4, 0xf3, 0xb6, 0x5c, 0x67, 0x37, 0xbb, 0xe6, 0xc9, 0x51, 0xc4,
+ 0xb0, 0xc7, 0x18, 0x32, 0x26, 0x24, 0x91, 0x87, 0x30, 0x69, 0x99, 0x87, 0x34, 0x14, 0x5d, 0x1f,
+ 0x8b, 0xe8, 0xe7, 0x4f, 0x8e, 0x1b, 0x93, 0x1b, 0x51, 0x60, 0x8c, 0xcb, 0x61, 0x9a, 0x4a, 0xcf,
+ 0x71, 0x7d, 0xa5, 0x9e, 0x7e, 0xf6, 0x54, 0xf5, 0x74, 0xcb, 0x71, 0xfd, 0xf0, 0x23, 0x64, 0xff,
+ 0x3c, 0x14, 0xd5, 0xb5, 0xbf, 0x56, 0x82, 0xc1, 0x4d, 0x5c, 0x7c, 0xc4, 0xe5, 0xc6, 0x3d, 0xe2,
+ 0x92, 0xa3, 0x41, 0xac, 0x3d, 0x6f, 0xc8, 0x6a, 0x63, 0x18, 0x11, 0x29, 0xa3, 0xba, 0x30, 0xee,
+ 0x51, 0xfd, 0xcc, 0x4c, 0x3c, 0x83, 0xc3, 0xbf, 0xfc, 0xf1, 0x0d, 0xff, 0xca, 0xd3, 0x19, 0xfe,
+ 0xda, 0xf7, 0x8b, 0x30, 0xb5, 0xa2, 0xd3, 0xae, 0x63, 0x3f, 0x71, 0x1f, 0x9f, 0x7b, 0x26, 0xf6,
+ 0xf1, 0x37, 0xa1, 0xea, 0xd2, 0x9e, 0x65, 0xb6, 0x75, 0xa1, 0xae, 0x4b, 0xbb, 0x39, 0xca, 0x32,
+ 0x0c, 0xa8, 0x43, 0xec, 0x37, 0x85, 0x67, 0xd2, 0x7e, 0x53, 0xfc, 0xf8, 0xed, 0x37, 0xda, 0x2f,
+ 0xe7, 0x81, 0xab, 0xb6, 0xe4, 0x06, 0x14, 0x99, 0xda, 0x96, 0xb4, 0x1a, 0xf2, 0xaf, 0x85, 0x53,
+ 0xc8, 0x1c, 0xe4, 0x7d, 0x47, 0x4e, 0x37, 0x20, 0xe9, 0xf9, 0x6d, 0x07, 0xf3, 0xbe, 0x43, 0x3e,
+ 0x00, 0x68, 0x3b, 0xb6, 0x61, 0x2a, 0x77, 0x52, 0xb6, 0x07, 0x5b, 0x75, 0xdc, 0x87, 0xba, 0x6b,
+ 0x2c, 0x07, 0x88, 0x62, 0x07, 0x1f, 0xfe, 0xc7, 0x88, 0x34, 0xf2, 0x26, 0x94, 0x1d, 0x7b, 0xb5,
+ 0x6f, 0x59, 0xbc, 0x43, 0x6b, 0xcd, 0xcf, 0x9f, 0x1c, 0x37, 0xca, 0xf7, 0x79, 0xc9, 0xe3, 0xe3,
+ 0xc6, 0x55, 0xb1, 0x23, 0x62, 0xff, 0xde, 0x76, 0x4d, 0xdf, 0xb4, 0x3b, 0xc1, 0x86, 0x56, 0x56,
+ 0xd3, 0x7e, 0x25, 0x07, 0xf5, 0x55, 0xf3, 0x11, 0x35, 0xde, 0x36, 0x6d, 0xc3, 0x79, 0x48, 0x10,
+ 0xca, 0x16, 0xb5, 0x3b, 0xfe, 0xfe, 0x88, 0x3b, 0x4e, 0x61, 0xd7, 0xe1, 0x08, 0x28, 0x91, 0xc8,
+ 0x02, 0xd4, 0xc4, 0x7e, 0xc5, 0xb4, 0x3b, 0xbc, 0x0f, 0xab, 0xe1, 0x4c, 0xdf, 0x52, 0x04, 0x0c,
+ 0x79, 0xb4, 0x23, 0x78, 0x7e, 0xa0, 0x1b, 0x88, 0x01, 0x45, 0x5f, 0xef, 0xa8, 0x45, 0x65, 0x75,
+ 0xe4, 0x0e, 0xde, 0xd6, 0x3b, 0x91, 0xce, 0xe5, 0x5a, 0xe1, 0xb6, 0xce, 0xb4, 0x42, 0x86, 0xae,
+ 0xfd, 0x9f, 0x1c, 0x54, 0x57, 0xfb, 0x76, 0x9b, 0x6f, 0xea, 0x9f, 0x6c, 0x4d, 0x56, 0x2a, 0x66,
+ 0x3e, 0x55, 0xc5, 0xec, 0x43, 0xf9, 0xe0, 0x61, 0xa0, 0x82, 0xd6, 0x17, 0x37, 0x47, 0x1f, 0x15,
+ 0xb2, 0x49, 0xf3, 0x77, 0x39, 0x9e, 0x70, 0x76, 0x4e, 0xc9, 0x06, 0x95, 0xef, 0xbe, 0xcd, 0x85,
+ 0x4a, 0x61, 0x73, 0x5f, 0x86, 0x7a, 0x84, 0xed, 0x5c, 0x7e, 0x8f, 0xbf, 0x5e, 0x84, 0xf2, 0x5a,
+ 0xab, 0xb5, 0xb4, 0xb5, 0x4e, 0x5e, 0x83, 0xba, 0xf4, 0x83, 0xdd, 0x0b, 0xfb, 0x20, 0x70, 0x83,
+ 0xb6, 0x42, 0x12, 0x46, 0xf9, 0x98, 0x02, 0xef, 0x52, 0xdd, 0xea, 0xca, 0x8f, 0x25, 0xd0, 0x1d,
+ 0x90, 0x15, 0xa2, 0xa0, 0x11, 0x1d, 0xa6, 0xfa, 0x1e, 0x75, 0x59, 0x17, 0x8a, 0xfd, 0xbe, 0xfc,
+ 0x6c, 0xce, 0x68, 0x11, 0xe0, 0x0b, 0xcc, 0x4e, 0x0c, 0x00, 0x13, 0x80, 0xe4, 0x0d, 0xa8, 0xea,
+ 0x7d, 0x7f, 0x9f, 0x6f, 0xb9, 0xc4, 0xb7, 0x71, 0x8d, 0xbb, 0x09, 0x65, 0xd9, 0xe3, 0xe3, 0xc6,
+ 0xc4, 0x5d, 0x6c, 0xbe, 0xa6, 0xfe, 0x63, 0xc0, 0xcd, 0x1a, 0xa7, 0x6c, 0x0c, 0xb2, 0x71, 0xa5,
+ 0x73, 0x37, 0x6e, 0x2b, 0x06, 0x80, 0x09, 0x40, 0xf2, 0x2e, 0x4c, 0x1c, 0xd0, 0x23, 0x5f, 0xdf,
+ 0x95, 0x02, 0xca, 0xe7, 0x11, 0x30, 0xc3, 0x94, 0xfe, 0xbb, 0x91, 0xea, 0x18, 0x03, 0x23, 0x1e,
+ 0x5c, 0x3e, 0xa0, 0xee, 0x2e, 0x75, 0x1d, 0x69, 0xaf, 0x90, 0x42, 0x2a, 0xe7, 0x11, 0x32, 0x7b,
+ 0x72, 0xdc, 0xb8, 0x7c, 0x37, 0x05, 0x06, 0x53, 0xc1, 0xb5, 0xff, 0x9d, 0x87, 0xe9, 0x35, 0x11,
+ 0x88, 0xe0, 0xb8, 0x42, 0xf3, 0x20, 0x57, 0xa1, 0xe0, 0xf6, 0xfa, 0x7c, 0xe4, 0x14, 0x84, 0xab,
+ 0x01, 0xb7, 0x76, 0x90, 0x95, 0x91, 0x77, 0xa0, 0x6a, 0xc8, 0x29, 0x43, 0x9a, 0x4b, 0x46, 0x32,
+ 0x6d, 0xa9, 0x7f, 0x18, 0xa0, 0xb1, 0xbd, 0x61, 0xd7, 0xeb, 0xb4, 0xcc, 0x0f, 0xa8, 0xb4, 0x20,
+ 0xf0, 0xbd, 0xe1, 0xa6, 0x28, 0x42, 0x45, 0x63, 0xab, 0xea, 0x01, 0x3d, 0x12, 0xfb, 0xe7, 0x62,
+ 0xb8, 0xaa, 0xde, 0x95, 0x65, 0x18, 0x50, 0x49, 0x43, 0x7d, 0x2c, 0x6c, 0x14, 0x14, 0x85, 0xed,
+ 0xe7, 0x01, 0x2b, 0x90, 0xdf, 0x0d, 0x9b, 0x32, 0xdf, 0x37, 0x7d, 0x9f, 0xba, 0xf2, 0x35, 0x8e,
+ 0x34, 0x65, 0xde, 0xe1, 0x08, 0x28, 0x91, 0xc8, 0x4f, 0x41, 0x8d, 0x83, 0x37, 0x2d, 0x67, 0x97,
+ 0xbf, 0xb8, 0x9a, 0xb0, 0x02, 0x3d, 0x50, 0x85, 0x18, 0xd2, 0xb5, 0xdf, 0xcf, 0xc3, 0x95, 0x35,
+ 0xea, 0x0b, 0xad, 0x66, 0x85, 0xf6, 0x2c, 0xe7, 0x88, 0xe9, 0xd3, 0x48, 0xbf, 0x4d, 0xde, 0x02,
+ 0x30, 0xbd, 0xdd, 0xd6, 0x61, 0x9b, 0x7f, 0x07, 0xe2, 0x1b, 0xbe, 0x21, 0x3f, 0x49, 0x58, 0x6f,
+ 0x35, 0x25, 0xe5, 0x71, 0xec, 0x1f, 0x46, 0xea, 0x84, 0x1b, 0xf2, 0xfc, 0x29, 0x1b, 0xf2, 0x16,
+ 0x40, 0x2f, 0xd4, 0xca, 0x0b, 0x9c, 0xf3, 0x67, 0x94, 0x98, 0xf3, 0x28, 0xe4, 0x11, 0x98, 0x2c,
+ 0x7a, 0xb2, 0x0d, 0x33, 0x06, 0xdd, 0xd3, 0xfb, 0x96, 0x1f, 0xec, 0x24, 0xe4, 0x47, 0x7c, 0xf6,
+ 0xcd, 0x48, 0x10, 0x24, 0xb1, 0x92, 0x40, 0xc2, 0x01, 0x6c, 0xed, 0x6f, 0x16, 0x60, 0x6e, 0x8d,
+ 0xfa, 0x81, 0x8d, 0x4e, 0xce, 0x8e, 0xad, 0x1e, 0x6d, 0xb3, 0xb7, 0xf0, 0x61, 0x0e, 0xca, 0x96,
+ 0xbe, 0x4b, 0x2d, 0xb6, 0x7a, 0xb1, 0xa7, 0x79, 0x6f, 0xe4, 0x85, 0x60, 0xb8, 0x94, 0xf9, 0x0d,
+ 0x2e, 0x21, 0xb1, 0x34, 0x88, 0x42, 0x94, 0xe2, 0xd9, 0xa4, 0xde, 0xb6, 0xfa, 0x9e, 0x2f, 0x76,
+ 0x76, 0x52, 0x9f, 0x0c, 0x26, 0xf5, 0xe5, 0x90, 0x84, 0x51, 0x3e, 0xb2, 0x08, 0xd0, 0xb6, 0x4c,
+ 0x6a, 0xfb, 0xbc, 0x96, 0xf8, 0xae, 0x88, 0x7a, 0xbf, 0xcb, 0x01, 0x05, 0x23, 0x5c, 0x4c, 0x54,
+ 0xd7, 0xb1, 0x4d, 0xdf, 0x11, 0xa2, 0x8a, 0x71, 0x51, 0x9b, 0x21, 0x09, 0xa3, 0x7c, 0xbc, 0x1a,
+ 0xf5, 0x5d, 0xb3, 0xed, 0xf1, 0x6a, 0xa5, 0x44, 0xb5, 0x90, 0x84, 0x51, 0x3e, 0xb6, 0xe6, 0x45,
+ 0x9e, 0xff, 0x5c, 0x6b, 0xde, 0x6f, 0xd4, 0xe0, 0x7a, 0xac, 0x5b, 0x7d, 0xdd, 0xa7, 0x7b, 0x7d,
+ 0xab, 0x45, 0x7d, 0xf5, 0x02, 0x47, 0x5c, 0x0b, 0xff, 0x54, 0xf8, 0xde, 0x45, 0xf8, 0x53, 0x7b,
+ 0x3c, 0xef, 0x7d, 0xa0, 0x81, 0x67, 0x7a, 0xf7, 0x0b, 0x50, 0xb3, 0x75, 0xdf, 0xe3, 0x1f, 0xae,
+ 0xfc, 0x46, 0x03, 0x35, 0xec, 0x9e, 0x22, 0x60, 0xc8, 0x43, 0xb6, 0xe0, 0xb2, 0xec, 0xe2, 0x5b,
+ 0x8f, 0xd8, 0x9e, 0x9f, 0xba, 0xa2, 0xae, 0x5c, 0x4e, 0x65, 0xdd, 0xcb, 0x9b, 0x29, 0x3c, 0x98,
+ 0x5a, 0x93, 0x6c, 0xc2, 0xa5, 0xb6, 0x08, 0x09, 0xa1, 0x96, 0xa3, 0x1b, 0x0a, 0x50, 0x98, 0x44,
+ 0x83, 0xad, 0xd1, 0xf2, 0x20, 0x0b, 0xa6, 0xd5, 0x4b, 0x8e, 0xe6, 0xf2, 0x48, 0xa3, 0xb9, 0x32,
+ 0xca, 0x68, 0xae, 0x8e, 0x36, 0x9a, 0x6b, 0x67, 0x1b, 0xcd, 0xac, 0xe7, 0xd9, 0x38, 0xa2, 0x2e,
+ 0x53, 0x4f, 0xc4, 0x0a, 0x1b, 0x89, 0x38, 0x0a, 0x7a, 0xbe, 0x95, 0xc2, 0x83, 0xa9, 0x35, 0xc9,
+ 0x2e, 0xcc, 0x89, 0xf2, 0x5b, 0x76, 0xdb, 0x3d, 0xea, 0xb1, 0x85, 0x27, 0x82, 0x5b, 0x8f, 0xd9,
+ 0xa4, 0xe7, 0x5a, 0x43, 0x39, 0xf1, 0x14, 0x14, 0xf2, 0x15, 0x98, 0x14, 0x6f, 0x69, 0x53, 0xef,
+ 0x71, 0x58, 0x11, 0x7f, 0xf4, 0x82, 0x84, 0x9d, 0x5c, 0x8e, 0x12, 0x31, 0xce, 0x4b, 0x96, 0x60,
+ 0xba, 0x77, 0xd8, 0x66, 0x3f, 0xd7, 0xf7, 0xee, 0x51, 0x6a, 0x50, 0x83, 0x3b, 0x3c, 0x6b, 0xcd,
+ 0x17, 0x95, 0x75, 0x67, 0x2b, 0x4e, 0xc6, 0x24, 0x3f, 0x79, 0x03, 0x26, 0x3c, 0x5f, 0x77, 0x7d,
+ 0x69, 0x08, 0x9e, 0x9d, 0x12, 0xf1, 0x59, 0xca, 0x4e, 0xda, 0x8a, 0xd0, 0x30, 0xc6, 0x99, 0xba,
+ 0x5e, 0x4c, 0x5f, 0xdc, 0x7a, 0x91, 0x65, 0xb6, 0xfa, 0x07, 0x79, 0xb8, 0xb1, 0x46, 0xfd, 0x4d,
+ 0xc7, 0x96, 0x66, 0xf4, 0xb4, 0x65, 0xff, 0x4c, 0x56, 0xf4, 0xf8, 0xa2, 0x9d, 0x1f, 0xeb, 0xa2,
+ 0x5d, 0x18, 0xd3, 0xa2, 0x5d, 0xbc, 0xc0, 0x45, 0xfb, 0x6f, 0xe5, 0xe1, 0xc5, 0x58, 0x4f, 0x6e,
+ 0x39, 0x86, 0x9a, 0xf0, 0x3f, 0xed, 0xc0, 0x33, 0x74, 0xe0, 0x63, 0xa1, 0x77, 0x72, 0x47, 0x68,
+ 0x42, 0xe3, 0xf9, 0x5e, 0x52, 0xe3, 0x79, 0x37, 0xcb, 0xca, 0x97, 0x22, 0xe1, 0x4c, 0x2b, 0xde,
+ 0x1d, 0x20, 0xae, 0x74, 0xdb, 0x86, 0xe6, 0x6c, 0xa9, 0xf4, 0x04, 0x01, 0xa0, 0x38, 0xc0, 0x81,
+ 0x29, 0xb5, 0x48, 0x0b, 0x5e, 0xf0, 0xa8, 0xed, 0x9b, 0x36, 0xb5, 0xe2, 0x70, 0x42, 0x1b, 0x7a,
+ 0x49, 0xc2, 0xbd, 0xd0, 0x4a, 0x63, 0xc2, 0xf4, 0xba, 0x59, 0xe6, 0x81, 0x7f, 0x02, 0x5c, 0xe5,
+ 0x14, 0x5d, 0x33, 0x36, 0x8d, 0xe5, 0xc3, 0xa4, 0xc6, 0xf2, 0x5e, 0xf6, 0xf7, 0x36, 0x9a, 0xb6,
+ 0xb2, 0x08, 0xc0, 0xdf, 0x42, 0x54, 0x5d, 0x09, 0x16, 0x69, 0x0c, 0x28, 0x18, 0xe1, 0x62, 0x0b,
+ 0x90, 0xea, 0xe7, 0xa8, 0xa6, 0x12, 0x2c, 0x40, 0xad, 0x28, 0x11, 0xe3, 0xbc, 0x43, 0xb5, 0x9d,
+ 0xd2, 0xc8, 0xda, 0xce, 0x1d, 0x20, 0x31, 0xc3, 0xa3, 0xc0, 0x2b, 0xc7, 0xe3, 0x8f, 0xd7, 0x07,
+ 0x38, 0x30, 0xa5, 0xd6, 0x90, 0xa1, 0x5c, 0x19, 0xef, 0x50, 0xae, 0x8e, 0x3e, 0x94, 0xc9, 0x7b,
+ 0x70, 0x95, 0x8b, 0x92, 0xfd, 0x13, 0x07, 0x16, 0x7a, 0xcf, 0x67, 0x25, 0xf0, 0x55, 0x1c, 0xc6,
+ 0x88, 0xc3, 0x31, 0xd8, 0xfb, 0x69, 0xbb, 0xd4, 0x60, 0xc2, 0x75, 0x6b, 0xb8, 0x4e, 0xb4, 0x9c,
+ 0xc2, 0x83, 0xa9, 0x35, 0xd9, 0x10, 0xf3, 0xd9, 0x30, 0xd4, 0x77, 0x2d, 0x6a, 0xc8, 0xf8, 0xeb,
+ 0x60, 0x88, 0x6d, 0x6f, 0xb4, 0x24, 0x05, 0x23, 0x5c, 0x69, 0x6a, 0xca, 0xc4, 0x39, 0xd5, 0x94,
+ 0x35, 0x6e, 0xa5, 0xdf, 0x8b, 0x69, 0x43, 0x52, 0xd7, 0x09, 0x22, 0xea, 0x97, 0x93, 0x0c, 0x38,
+ 0x58, 0x87, 0x6b, 0x89, 0x6d, 0xd7, 0xec, 0xf9, 0x5e, 0x1c, 0x6b, 0x2a, 0xa1, 0x25, 0xa6, 0xf0,
+ 0x60, 0x6a, 0x4d, 0xa6, 0x9f, 0xef, 0x53, 0xdd, 0xf2, 0xf7, 0xe3, 0x80, 0xd3, 0x71, 0xfd, 0xfc,
+ 0xf6, 0x20, 0x0b, 0xa6, 0xd5, 0x4b, 0x5d, 0x90, 0x66, 0x9e, 0x4d, 0xb5, 0xea, 0xbb, 0x05, 0xb8,
+ 0xba, 0x46, 0xfd, 0x20, 0x34, 0xed, 0x53, 0x33, 0xca, 0xc7, 0x60, 0x46, 0xf9, 0xf5, 0x12, 0x5c,
+ 0x5a, 0xa3, 0xfe, 0x80, 0x36, 0xf6, 0xff, 0x69, 0xf7, 0x6f, 0xc2, 0xa5, 0x30, 0x1a, 0xb2, 0xe5,
+ 0x3b, 0xae, 0x58, 0xcb, 0x13, 0xbb, 0xe5, 0xd6, 0x20, 0x0b, 0xa6, 0xd5, 0x23, 0xdf, 0x80, 0x17,
+ 0xf9, 0x52, 0x6f, 0x77, 0x84, 0x7d, 0x56, 0x18, 0x13, 0x22, 0xe7, 0x79, 0x1a, 0x12, 0xf2, 0xc5,
+ 0x56, 0x3a, 0x1b, 0x0e, 0xab, 0x4f, 0xbe, 0x03, 0x13, 0x3d, 0xb3, 0x47, 0x2d, 0xd3, 0xe6, 0xfa,
+ 0x59, 0xe6, 0x20, 0xa2, 0xad, 0x08, 0x58, 0xb8, 0x81, 0x8b, 0x96, 0x62, 0x4c, 0x60, 0xea, 0x48,
+ 0xad, 0x5e, 0xe0, 0x48, 0xfd, 0xef, 0x79, 0xa8, 0xac, 0xb9, 0x4e, 0xbf, 0xd7, 0x3c, 0x22, 0x1d,
+ 0x28, 0x3f, 0xe4, 0xce, 0x33, 0xe9, 0x9a, 0x1a, 0xfd, 0x44, 0x81, 0xf0, 0xc1, 0x85, 0x2a, 0x91,
+ 0xf8, 0x8f, 0x12, 0x9e, 0x0d, 0xe2, 0x03, 0x7a, 0x44, 0x0d, 0xe9, 0x43, 0x0b, 0x06, 0xf1, 0x5d,
+ 0x56, 0x88, 0x82, 0x46, 0xba, 0x30, 0xad, 0x5b, 0x96, 0xf3, 0x90, 0x1a, 0x1b, 0xba, 0xcf, 0xfd,
+ 0xde, 0xd2, 0xb7, 0x72, 0x5e, 0xb3, 0x34, 0x0f, 0x66, 0x58, 0x8a, 0x43, 0x61, 0x12, 0x9b, 0xbc,
+ 0x0f, 0x15, 0xcf, 0x77, 0x5c, 0xa5, 0x6c, 0xd5, 0x17, 0x97, 0x47, 0x7f, 0xe9, 0xcd, 0xaf, 0xb7,
+ 0x04, 0x94, 0xb0, 0xd9, 0xcb, 0x3f, 0xa8, 0x04, 0x68, 0xbf, 0x96, 0x03, 0xb8, 0xbd, 0xbd, 0xbd,
+ 0x25, 0xdd, 0x0b, 0x06, 0x14, 0xf5, 0x7e, 0xe0, 0xa8, 0x1c, 0xdd, 0x21, 0x18, 0x0b, 0xe4, 0x95,
+ 0x3e, 0xbc, 0xbe, 0xbf, 0x8f, 0x1c, 0x9d, 0xfc, 0x24, 0x54, 0xa4, 0x82, 0x2c, 0xbb, 0x3d, 0x88,
+ 0xa7, 0x90, 0x4a, 0x34, 0x2a, 0xba, 0xf6, 0x5b, 0x79, 0x80, 0x75, 0xc3, 0xa2, 0x2d, 0x75, 0x08,
+ 0xa4, 0xe6, 0xef, 0xbb, 0xd4, 0xdb, 0x77, 0x2c, 0x63, 0x44, 0x6f, 0x2a, 0xb7, 0xf9, 0x6f, 0x2b,
+ 0x10, 0x0c, 0xf1, 0x88, 0x01, 0x13, 0x9e, 0x4f, 0x7b, 0x2a, 0xb6, 0x77, 0x44, 0x27, 0xca, 0x8c,
+ 0xb0, 0x8b, 0x84, 0x38, 0x18, 0x43, 0x25, 0x3a, 0xd4, 0x4d, 0xbb, 0x2d, 0x3e, 0x90, 0xe6, 0xd1,
+ 0x88, 0x03, 0x69, 0x9a, 0xed, 0x38, 0xd6, 0x43, 0x18, 0x8c, 0x62, 0x6a, 0xbf, 0x93, 0x87, 0x2b,
+ 0x5c, 0x1e, 0x6b, 0x46, 0x2c, 0x82, 0x97, 0xfc, 0xd1, 0x81, 0x03, 0xab, 0x7f, 0xf8, 0x6c, 0xa2,
+ 0xc5, 0x79, 0xc7, 0x4d, 0xea, 0xeb, 0xa1, 0x3e, 0x17, 0x96, 0x45, 0x4e, 0xa9, 0xf6, 0xa1, 0xe8,
+ 0xb1, 0xf9, 0x4a, 0xf4, 0x5e, 0x6b, 0xe4, 0x21, 0x94, 0xfe, 0x00, 0x7c, 0xf6, 0x0a, 0xbc, 0xc6,
+ 0x7c, 0xd6, 0xe2, 0xe2, 0xc8, 0x2f, 0x42, 0xd9, 0xf3, 0x75, 0xbf, 0xaf, 0x3e, 0xcd, 0x9d, 0x71,
+ 0x0b, 0xe6, 0xe0, 0xe1, 0x3c, 0x22, 0xfe, 0xa3, 0x14, 0xaa, 0xfd, 0x4e, 0x0e, 0xe6, 0xd2, 0x2b,
+ 0x6e, 0x98, 0x9e, 0x4f, 0xfe, 0xc8, 0x40, 0xb7, 0x9f, 0xf1, 0x8d, 0xb3, 0xda, 0xbc, 0xd3, 0x83,
+ 0x33, 0x0d, 0xaa, 0x24, 0xd2, 0xe5, 0x3e, 0x94, 0x4c, 0x9f, 0x76, 0xd5, 0xfe, 0xf2, 0xfe, 0x98,
+ 0x1f, 0x3d, 0xb2, 0xb4, 0x33, 0x29, 0x28, 0x84, 0x69, 0xdf, 0xcf, 0x0f, 0x7b, 0x64, 0xbe, 0x7c,
+ 0x58, 0xf1, 0x28, 0xf1, 0xbb, 0xd9, 0xa2, 0xc4, 0xe3, 0x0d, 0x1a, 0x0c, 0x16, 0xff, 0x63, 0x83,
+ 0xc1, 0xe2, 0xf7, 0xb3, 0x07, 0x8b, 0x27, 0xba, 0x61, 0x68, 0xcc, 0xf8, 0x47, 0x05, 0xb8, 0x76,
+ 0xda, 0xb0, 0x61, 0xeb, 0x99, 0x1c, 0x9d, 0x59, 0xd7, 0xb3, 0xd3, 0xc7, 0x21, 0x59, 0x84, 0x52,
+ 0x6f, 0x5f, 0xf7, 0x94, 0x52, 0x76, 0x2d, 0x08, 0x33, 0x64, 0x85, 0x8f, 0xd9, 0xa4, 0xc1, 0x95,
+ 0x39, 0xfe, 0x17, 0x05, 0x2b, 0x9b, 0x8e, 0xbb, 0xd4, 0xf3, 0x42, 0x9b, 0x40, 0x30, 0x1d, 0x6f,
+ 0x8a, 0x62, 0x54, 0x74, 0xe2, 0x43, 0x59, 0x98, 0x98, 0xe5, 0xca, 0x34, 0x7a, 0x20, 0x57, 0xca,
+ 0xc1, 0x82, 0xf0, 0xa1, 0xa4, 0xb7, 0x42, 0xca, 0x22, 0xf3, 0x50, 0xf4, 0xc3, 0x30, 0x6f, 0xb5,
+ 0x35, 0x2f, 0xa6, 0xe8, 0xa7, 0x9c, 0x8f, 0x6d, 0xec, 0x9d, 0x5d, 0x6e, 0x54, 0x37, 0xa4, 0xff,
+ 0xdc, 0x74, 0x6c, 0xae, 0x90, 0x15, 0xc2, 0x8d, 0xfd, 0xfd, 0x01, 0x0e, 0x4c, 0xa9, 0xa5, 0xfd,
+ 0xf3, 0x2a, 0x5c, 0x49, 0x1f, 0x0f, 0xac, 0xdf, 0x0e, 0xa9, 0xeb, 0x31, 0xec, 0x5c, 0xbc, 0xdf,
+ 0x1e, 0x88, 0x62, 0x54, 0xf4, 0x4f, 0x74, 0xc0, 0xd9, 0xaf, 0xe7, 0xe0, 0xaa, 0x2b, 0x7d, 0x44,
+ 0x4f, 0x23, 0xe8, 0xec, 0x25, 0x61, 0xce, 0x18, 0x22, 0x10, 0x87, 0xb7, 0x85, 0xfc, 0x95, 0x1c,
+ 0xcc, 0x76, 0x13, 0x76, 0x8e, 0x0b, 0x3c, 0x73, 0xc9, 0xcf, 0x51, 0x6c, 0x0e, 0x91, 0x87, 0x43,
+ 0x5b, 0x42, 0xbe, 0x03, 0xf5, 0x1e, 0x1b, 0x17, 0x9e, 0x4f, 0xed, 0xb6, 0x0a, 0x10, 0x1d, 0xfd,
+ 0x4b, 0xda, 0x0a, 0xb1, 0x82, 0x33, 0x57, 0x5c, 0x3f, 0x88, 0x10, 0x30, 0x2a, 0xf1, 0x19, 0x3f,
+ 0x64, 0x79, 0x13, 0xaa, 0x1e, 0xf5, 0x7d, 0xd3, 0xee, 0x88, 0xfd, 0x46, 0x4d, 0x7c, 0x2b, 0x2d,
+ 0x59, 0x86, 0x01, 0x95, 0xfc, 0x14, 0xd4, 0xb8, 0xcb, 0x69, 0xc9, 0xed, 0x78, 0xb3, 0x35, 0x1e,
+ 0x2e, 0x36, 0x29, 0x02, 0xe0, 0x64, 0x21, 0x86, 0x74, 0xf2, 0x45, 0x98, 0xd8, 0xe5, 0x9f, 0xaf,
+ 0x3c, 0x77, 0x2f, 0x6c, 0x5c, 0x5c, 0x5b, 0x6b, 0x46, 0xca, 0x31, 0xc6, 0x45, 0x16, 0x01, 0x68,
+ 0xe0, 0x97, 0x4b, 0xda, 0xb3, 0x42, 0x8f, 0x1d, 0x46, 0xb8, 0xc8, 0x4b, 0x50, 0xf0, 0x2d, 0x8f,
+ 0xdb, 0xb0, 0xaa, 0xe1, 0x16, 0x74, 0x7b, 0xa3, 0x85, 0xac, 0x5c, 0xfb, 0xfd, 0x1c, 0x4c, 0x27,
+ 0x8e, 0x23, 0xb1, 0x2a, 0x7d, 0xd7, 0x92, 0xd3, 0x48, 0x50, 0x65, 0x07, 0x37, 0x90, 0x95, 0x93,
+ 0xf7, 0xa4, 0x5a, 0x9e, 0xcf, 0x98, 0x62, 0xe4, 0x9e, 0xee, 0x7b, 0x4c, 0x0f, 0x1f, 0xd0, 0xc8,
+ 0xb9, 0x9b, 0x2f, 0x6c, 0x8f, 0x5c, 0x07, 0x22, 0x6e, 0xbe, 0x90, 0x86, 0x31, 0xce, 0x84, 0xc1,
+ 0xaf, 0x78, 0x16, 0x83, 0x9f, 0xf6, 0x2b, 0xf9, 0x48, 0x0f, 0x48, 0xcd, 0xfe, 0x09, 0x3d, 0xf0,
+ 0x0a, 0x5b, 0x40, 0x83, 0xc5, 0xbd, 0x16, 0x5d, 0xff, 0xf8, 0x62, 0x2c, 0xa9, 0xe4, 0x6d, 0xd1,
+ 0xf7, 0x85, 0x8c, 0x07, 0xb9, 0xb7, 0x37, 0x5a, 0x22, 0xba, 0x4a, 0xbd, 0xb5, 0xe0, 0x15, 0x14,
+ 0x2f, 0xe8, 0x15, 0x68, 0xff, 0xa8, 0x00, 0xf5, 0x3b, 0xce, 0xee, 0x27, 0x24, 0x82, 0x3a, 0x7d,
+ 0x99, 0xca, 0x7f, 0x8c, 0xcb, 0xd4, 0x0e, 0xbc, 0xe8, 0xfb, 0x56, 0x8b, 0xb6, 0x1d, 0xdb, 0xf0,
+ 0x96, 0xf6, 0x7c, 0xea, 0xae, 0x9a, 0xb6, 0xe9, 0xed, 0x53, 0x43, 0xba, 0x93, 0x3e, 0x73, 0x72,
+ 0xdc, 0x78, 0x71, 0x7b, 0x7b, 0x23, 0x8d, 0x05, 0x87, 0xd5, 0xe5, 0xd3, 0x86, 0x38, 0x3b, 0xca,
+ 0xcf, 0x56, 0xc9, 0x98, 0x1b, 0x31, 0x6d, 0x44, 0xca, 0x31, 0xc6, 0xa5, 0xfd, 0xdb, 0x3c, 0xd4,
+ 0x82, 0xe4, 0x11, 0xe4, 0x73, 0x50, 0xd9, 0x75, 0x9d, 0x03, 0xea, 0x0a, 0xcf, 0x9d, 0x3c, 0x5b,
+ 0xd5, 0x14, 0x45, 0xa8, 0x68, 0xe4, 0x65, 0x28, 0xf9, 0x4e, 0xcf, 0x6c, 0x27, 0x0d, 0x6a, 0xdb,
+ 0xac, 0x10, 0x05, 0x8d, 0x7f, 0x08, 0x3c, 0xac, 0x90, 0x3f, 0x55, 0x35, 0xf2, 0x21, 0xf0, 0x52,
+ 0x94, 0x54, 0xf5, 0x21, 0x14, 0xc7, 0xfe, 0x21, 0xbc, 0x12, 0xa8, 0x80, 0xa5, 0xf8, 0x97, 0x98,
+ 0x50, 0xda, 0xde, 0x85, 0xa2, 0xa7, 0x7b, 0x96, 0x5c, 0xde, 0x32, 0xe4, 0x6b, 0x58, 0x6a, 0x6d,
+ 0xc8, 0x7c, 0x0d, 0x4b, 0xad, 0x0d, 0xe4, 0xa0, 0xda, 0x6f, 0x15, 0xa0, 0x2e, 0xfa, 0x57, 0xcc,
+ 0x1e, 0xe3, 0xec, 0xe1, 0x37, 0x79, 0xc8, 0x85, 0xd7, 0xef, 0x52, 0x97, 0x9b, 0xa3, 0xe4, 0x64,
+ 0x18, 0xf5, 0x23, 0x84, 0xc4, 0x20, 0xec, 0x22, 0x2c, 0xfa, 0x83, 0xdd, 0xf5, 0x6c, 0xa9, 0xe0,
+ 0x09, 0x50, 0xa4, 0x8e, 0x2b, 0x23, 0x29, 0x83, 0xa5, 0xe2, 0x6e, 0x84, 0x86, 0x31, 0x4e, 0xed,
+ 0xbf, 0xe5, 0xa1, 0xb6, 0x61, 0xee, 0xd1, 0xf6, 0x51, 0xdb, 0xa2, 0xe4, 0x5b, 0x30, 0x67, 0x50,
+ 0x8b, 0xb2, 0x15, 0x73, 0xcd, 0xd5, 0xdb, 0x74, 0x8b, 0xba, 0x26, 0x4f, 0xe0, 0xc4, 0xbe, 0x41,
+ 0x19, 0xe0, 0x7a, 0xfd, 0xe4, 0xb8, 0x31, 0xb7, 0x32, 0x94, 0x0b, 0x4f, 0x41, 0x20, 0xeb, 0x30,
+ 0x61, 0x50, 0xcf, 0x74, 0xa9, 0xb1, 0x15, 0xd9, 0x10, 0x7d, 0x4e, 0xb5, 0x73, 0x25, 0x42, 0x7b,
+ 0x7c, 0xdc, 0x98, 0x54, 0x86, 0x50, 0xb1, 0x33, 0x8a, 0x55, 0x65, 0x53, 0x4b, 0x4f, 0xef, 0x7b,
+ 0x34, 0xa5, 0x9d, 0x05, 0xde, 0x4e, 0x3e, 0xb5, 0x6c, 0xa5, 0xb3, 0xe0, 0xb0, 0xba, 0x64, 0x17,
+ 0x66, 0x79, 0xfb, 0xd3, 0x70, 0x8b, 0x1c, 0xf7, 0x95, 0x93, 0xe3, 0x86, 0xb6, 0x42, 0x7b, 0x2e,
+ 0x6d, 0xeb, 0x3e, 0x35, 0x56, 0x86, 0x70, 0xe3, 0x50, 0x1c, 0xad, 0x04, 0x85, 0x0d, 0xa7, 0xa3,
+ 0x7d, 0xbf, 0x00, 0x41, 0x46, 0x31, 0xf2, 0x27, 0x73, 0x50, 0xd7, 0x6d, 0xdb, 0xf1, 0x65, 0xb6,
+ 0x2e, 0x11, 0x4d, 0x80, 0x99, 0x13, 0x97, 0xcd, 0x2f, 0x85, 0xa0, 0xc2, 0x11, 0x1d, 0x38, 0xc7,
+ 0x23, 0x14, 0x8c, 0xca, 0x26, 0xfd, 0x84, 0x6f, 0x7c, 0x33, 0x7b, 0x2b, 0xce, 0xe0, 0x09, 0x9f,
+ 0xfb, 0x1a, 0xcc, 0x24, 0x1b, 0x7b, 0x1e, 0xd7, 0x56, 0xa6, 0x20, 0x83, 0x3c, 0x40, 0x18, 0x1f,
+ 0xf3, 0x14, 0x0c, 0x72, 0x66, 0xcc, 0x20, 0x37, 0x7a, 0x5a, 0x87, 0xb0, 0xd1, 0x43, 0x8d, 0x70,
+ 0xdf, 0x4e, 0x18, 0xe1, 0xd6, 0xc7, 0x21, 0xec, 0x74, 0xc3, 0xdb, 0x2e, 0x5c, 0x0a, 0x79, 0xc3,
+ 0xd9, 0xe5, 0x6e, 0xe2, 0xeb, 0x17, 0x7a, 0xe5, 0xe7, 0x87, 0x7c, 0xfd, 0xd3, 0x91, 0x80, 0xa5,
+ 0xc1, 0xef, 0x5f, 0xfb, 0xab, 0x39, 0x98, 0x89, 0x0a, 0xe1, 0x67, 0xd0, 0xbf, 0x04, 0x93, 0x2e,
+ 0xd5, 0x8d, 0xa6, 0xee, 0xb7, 0xf7, 0x79, 0x68, 0x7c, 0x8e, 0xc7, 0xb2, 0xf3, 0xd3, 0x72, 0x18,
+ 0x25, 0x60, 0x9c, 0x8f, 0xe8, 0x50, 0x67, 0x05, 0xdb, 0x66, 0x97, 0x3a, 0x7d, 0x7f, 0x44, 0x2b,
+ 0x33, 0xdf, 0xe0, 0x61, 0x08, 0x83, 0x51, 0x4c, 0xed, 0xa3, 0x1c, 0x4c, 0x45, 0x1b, 0x7c, 0xe1,
+ 0x16, 0xc8, 0xfd, 0xb8, 0x05, 0x72, 0x79, 0x0c, 0xef, 0x7d, 0x88, 0xd5, 0xf1, 0xbb, 0xf5, 0xe8,
+ 0xa3, 0x71, 0x4b, 0x63, 0xd4, 0xb8, 0x92, 0x3b, 0xd5, 0xb8, 0xf2, 0xc9, 0x4f, 0x54, 0x35, 0x6c,
+ 0x57, 0x50, 0x7c, 0x86, 0x77, 0x05, 0x1f, 0x67, 0xb6, 0xab, 0x48, 0xc6, 0xa6, 0x72, 0x86, 0x8c,
+ 0x4d, 0xdd, 0x20, 0x63, 0x53, 0x65, 0x6c, 0x13, 0xdb, 0x59, 0xb2, 0x36, 0x55, 0x9f, 0x6a, 0xd6,
+ 0xa6, 0xda, 0x45, 0x65, 0x6d, 0x82, 0xac, 0x59, 0x9b, 0xbe, 0x97, 0x83, 0x29, 0x23, 0x76, 0xc2,
+ 0x58, 0x9e, 0xed, 0x1f, 0x7d, 0x39, 0x8b, 0x1f, 0x58, 0x16, 0x47, 0xcc, 0xe2, 0x65, 0x98, 0x10,
+ 0x99, 0x96, 0x2b, 0x69, 0xe2, 0x63, 0xc9, 0x95, 0x44, 0x7e, 0x11, 0x6a, 0x96, 0x5a, 0xeb, 0x64,
+ 0x06, 0xc9, 0x8d, 0xb1, 0x0c, 0x49, 0x89, 0x19, 0x9e, 0x62, 0x08, 0x8a, 0x30, 0x94, 0xa8, 0xfd,
+ 0xaf, 0x4a, 0x74, 0x41, 0x7c, 0xda, 0x3e, 0x8e, 0xd7, 0xe3, 0x3e, 0x8e, 0x1b, 0x49, 0x1f, 0xc7,
+ 0xc0, 0x6a, 0x2e, 0xfd, 0x1c, 0x5f, 0x88, 0xac, 0x13, 0x05, 0x9e, 0xa4, 0x29, 0x18, 0x72, 0x29,
+ 0x6b, 0xc5, 0x12, 0x4c, 0x4b, 0x25, 0x40, 0x11, 0xf9, 0x24, 0x3b, 0x19, 0x46, 0xa5, 0xad, 0xc4,
+ 0xc9, 0x98, 0xe4, 0x67, 0x02, 0x3d, 0x95, 0xab, 0x57, 0xec, 0xd8, 0xc2, 0x31, 0xae, 0xf2, 0xe8,
+ 0x06, 0x1c, 0x6c, 0x77, 0xe7, 0x52, 0xdd, 0x93, 0x9e, 0x8a, 0xc8, 0xee, 0x0e, 0x79, 0x29, 0x4a,
+ 0x6a, 0xd4, 0x5d, 0x53, 0x79, 0x82, 0xbb, 0x46, 0x87, 0xba, 0xa5, 0x7b, 0xbe, 0x18, 0x4c, 0x86,
+ 0x9c, 0x4d, 0xfe, 0xd0, 0xd9, 0xd6, 0x7d, 0xa6, 0x4b, 0x84, 0x0a, 0xfc, 0x46, 0x08, 0x83, 0x51,
+ 0x4c, 0x62, 0xc0, 0x04, 0xfb, 0xcb, 0x67, 0x16, 0x63, 0xc9, 0x97, 0x19, 0xed, 0xce, 0x23, 0x23,
+ 0xd8, 0x3a, 0x6e, 0x44, 0x70, 0x30, 0x86, 0x3a, 0xc4, 0xa3, 0x03, 0xa3, 0x78, 0x74, 0xc8, 0x57,
+ 0x84, 0xe2, 0x76, 0x14, 0xbc, 0xd6, 0x3a, 0x7f, 0xad, 0x41, 0x44, 0x2b, 0x46, 0x89, 0x18, 0xe7,
+ 0x65, 0xa3, 0xa2, 0x2f, 0xbb, 0x41, 0x55, 0x9f, 0x88, 0x8f, 0x8a, 0x9d, 0x38, 0x19, 0x93, 0xfc,
+ 0x64, 0x0b, 0x2e, 0x07, 0x45, 0xd1, 0x66, 0x4c, 0x72, 0x9c, 0x20, 0xc4, 0x70, 0x27, 0x85, 0x07,
+ 0x53, 0x6b, 0xf2, 0x33, 0x3b, 0x7d, 0xd7, 0xa5, 0xb6, 0x7f, 0x5b, 0xf7, 0xf6, 0x65, 0xac, 0x62,
+ 0x78, 0x66, 0x27, 0x24, 0x61, 0x94, 0x8f, 0x2c, 0x02, 0x08, 0x38, 0x5e, 0x6b, 0x3a, 0x1e, 0x0e,
+ 0xbc, 0x13, 0x50, 0x30, 0xc2, 0xa5, 0x7d, 0xaf, 0x06, 0xf5, 0x7b, 0xba, 0x6f, 0x1e, 0x52, 0xee,
+ 0x7e, 0xbd, 0x18, 0x1f, 0xd8, 0x5f, 0xc8, 0xc1, 0x95, 0x78, 0x8c, 0xed, 0x05, 0x3a, 0xc2, 0x78,
+ 0x8e, 0x27, 0x4c, 0x95, 0x86, 0x43, 0x5a, 0xc1, 0x5d, 0x62, 0x03, 0x21, 0xbb, 0x17, 0xed, 0x12,
+ 0x6b, 0x0d, 0x13, 0x88, 0xc3, 0xdb, 0xf2, 0x49, 0x71, 0x89, 0x3d, 0xdb, 0x49, 0x49, 0x13, 0x0e,
+ 0xbb, 0xca, 0x33, 0xe3, 0xb0, 0xab, 0x3e, 0x13, 0x5a, 0x7f, 0x2f, 0xe2, 0xb0, 0xab, 0x65, 0x0c,
+ 0x1c, 0x93, 0xc7, 0x52, 0x04, 0xda, 0x30, 0xc7, 0x1f, 0xcf, 0x28, 0xa1, 0x1c, 0x29, 0x4c, 0x59,
+ 0xde, 0xd5, 0x3d, 0xb3, 0x2d, 0xd5, 0x8e, 0x0c, 0x49, 0x98, 0x55, 0x72, 0x46, 0x11, 0x5f, 0xc2,
+ 0xff, 0xa2, 0xc0, 0x0e, 0x73, 0x51, 0xe6, 0x33, 0xe5, 0xa2, 0x24, 0xcb, 0x50, 0xb4, 0x0f, 0xe8,
+ 0xd1, 0xf9, 0x72, 0x33, 0xf0, 0x4d, 0xe0, 0xbd, 0xbb, 0xf4, 0x08, 0x79, 0x65, 0xed, 0x07, 0x79,
+ 0x00, 0xf6, 0xf8, 0x67, 0x73, 0x9d, 0xfd, 0x24, 0x54, 0xbc, 0x3e, 0x37, 0x0c, 0x49, 0x85, 0x29,
+ 0x8c, 0xb6, 0x13, 0xc5, 0xa8, 0xe8, 0xe4, 0x65, 0x28, 0x7d, 0xbb, 0x4f, 0xfb, 0x2a, 0x0e, 0x24,
+ 0xd8, 0x37, 0x7c, 0x9d, 0x15, 0xa2, 0xa0, 0x5d, 0x9c, 0x79, 0x5b, 0xb9, 0xd8, 0x4a, 0x17, 0xe5,
+ 0x62, 0xab, 0x41, 0xe5, 0x9e, 0xc3, 0x83, 0x77, 0xb5, 0xff, 0x9c, 0x07, 0x08, 0x83, 0x23, 0xc9,
+ 0xaf, 0xe5, 0xe0, 0x85, 0xe0, 0x83, 0xf3, 0xc5, 0xf6, 0x8f, 0xe7, 0x3d, 0xcf, 0xec, 0x6e, 0x4b,
+ 0xfb, 0xd8, 0xf9, 0x0c, 0xb4, 0x95, 0x26, 0x0e, 0xd3, 0x5b, 0x41, 0x10, 0xaa, 0xb4, 0xdb, 0xf3,
+ 0x8f, 0x56, 0x4c, 0x57, 0x8e, 0xc0, 0xd4, 0x18, 0xdc, 0x5b, 0x92, 0x47, 0x54, 0x95, 0x36, 0x0a,
+ 0xfe, 0x11, 0x29, 0x0a, 0x06, 0x38, 0x64, 0x1f, 0xaa, 0xb6, 0xf3, 0x9e, 0xc7, 0xba, 0x43, 0x0e,
+ 0xc7, 0xb7, 0x46, 0xef, 0x72, 0xd1, 0xad, 0xc2, 0xed, 0x22, 0xff, 0x60, 0xc5, 0x96, 0x9d, 0xfd,
+ 0xab, 0x79, 0xb8, 0x94, 0xd2, 0x0f, 0xe4, 0x2d, 0x98, 0x91, 0x71, 0xa8, 0xe1, 0x05, 0x00, 0xb9,
+ 0xf0, 0x02, 0x80, 0x56, 0x82, 0x86, 0x03, 0xdc, 0xe4, 0x3d, 0x00, 0xbd, 0xdd, 0xa6, 0x9e, 0xb7,
+ 0xe9, 0x18, 0x6a, 0x3f, 0xf0, 0x26, 0x53, 0x5f, 0x96, 0x82, 0xd2, 0xc7, 0xc7, 0x8d, 0x9f, 0x4e,
+ 0x0b, 0x2d, 0x4f, 0xf4, 0x73, 0x58, 0x01, 0x23, 0x90, 0xe4, 0x5b, 0x00, 0xc2, 0x06, 0x10, 0x64,
+ 0xbf, 0x78, 0x82, 0xe1, 0x6c, 0x5e, 0x25, 0x57, 0x9b, 0xff, 0x7a, 0x5f, 0xb7, 0x7d, 0xd3, 0x3f,
+ 0x12, 0xc9, 0x86, 0x1e, 0x04, 0x28, 0x18, 0x41, 0xd4, 0xfe, 0x7e, 0x1e, 0xaa, 0xca, 0xf5, 0xf0,
+ 0x14, 0x6c, 0xc1, 0x9d, 0x98, 0x2d, 0x78, 0x4c, 0xc1, 0xe4, 0x69, 0x96, 0x60, 0x27, 0x61, 0x09,
+ 0x5e, 0xcb, 0x2e, 0xea, 0x74, 0x3b, 0xf0, 0x6f, 0xe6, 0x61, 0x4a, 0xb1, 0x66, 0xb5, 0xd0, 0x7e,
+ 0x15, 0xa6, 0x45, 0x10, 0xc8, 0xa6, 0xfe, 0x48, 0xe4, 0x5d, 0xe2, 0x1d, 0x56, 0x14, 0xf1, 0xdb,
+ 0xcd, 0x38, 0x09, 0x93, 0xbc, 0x6c, 0x58, 0x8b, 0xa2, 0x1d, 0xb6, 0x09, 0x13, 0x6e, 0x63, 0xb1,
+ 0xdf, 0xe4, 0xc3, 0xba, 0x99, 0xa0, 0xe1, 0x00, 0x77, 0xd2, 0x44, 0x5c, 0xbc, 0x00, 0x13, 0xf1,
+ 0xbf, 0xcc, 0xc1, 0x44, 0xd8, 0x5f, 0x17, 0x6e, 0x20, 0xde, 0x8b, 0x1b, 0x88, 0x97, 0x32, 0x0f,
+ 0x87, 0x21, 0xe6, 0xe1, 0x3f, 0x53, 0x81, 0xd8, 0x99, 0x06, 0xb2, 0x0b, 0x73, 0x66, 0x6a, 0x64,
+ 0x66, 0x64, 0xb6, 0x09, 0x0e, 0xe9, 0xaf, 0x0f, 0xe5, 0xc4, 0x53, 0x50, 0x48, 0x1f, 0xaa, 0x87,
+ 0xd4, 0xf5, 0xcd, 0x36, 0x55, 0xcf, 0xb7, 0x96, 0x59, 0x25, 0x93, 0x46, 0xf0, 0xa0, 0x4f, 0x1f,
+ 0x48, 0x01, 0x18, 0x88, 0x22, 0xbb, 0x50, 0xa2, 0x46, 0x87, 0xaa, 0x4c, 0x58, 0x19, 0x33, 0x13,
+ 0x07, 0xfd, 0xc9, 0xfe, 0x79, 0x28, 0xa0, 0x89, 0x17, 0x35, 0x34, 0x15, 0x33, 0x2a, 0x58, 0x67,
+ 0x34, 0x2f, 0x91, 0x83, 0xc0, 0xda, 0x5a, 0x1a, 0xd3, 0xe4, 0x71, 0x8a, 0xad, 0xd5, 0x83, 0xda,
+ 0x43, 0xdd, 0xa7, 0x6e, 0x57, 0x77, 0x0f, 0xe4, 0x6e, 0x63, 0xf4, 0x27, 0x7c, 0x5b, 0x21, 0x85,
+ 0x4f, 0x18, 0x14, 0x61, 0x28, 0x87, 0x38, 0x50, 0xf3, 0xa5, 0xfa, 0xac, 0x4c, 0xca, 0xa3, 0x0b,
+ 0x55, 0x8a, 0xb8, 0x27, 0xcf, 0x36, 0xa8, 0xbf, 0x18, 0xca, 0x20, 0x87, 0xb1, 0x34, 0xf6, 0xe2,
+ 0xf2, 0x82, 0x66, 0x06, 0xd7, 0x84, 0x84, 0x0a, 0x97, 0x9b, 0xf4, 0x74, 0xf8, 0xda, 0xff, 0x28,
+ 0x85, 0xd3, 0xf2, 0xd3, 0xb6, 0x13, 0x7e, 0x31, 0x6e, 0x27, 0xbc, 0x9e, 0xb4, 0x13, 0x26, 0x7c,
+ 0xfe, 0xe7, 0x8f, 0x86, 0x4e, 0x98, 0xd7, 0x8a, 0x17, 0x60, 0x5e, 0x7b, 0x15, 0xea, 0x87, 0x7c,
+ 0x26, 0x10, 0x69, 0xb5, 0x4a, 0x7c, 0x19, 0xe1, 0x33, 0xfb, 0x83, 0xb0, 0x18, 0xa3, 0x3c, 0xac,
+ 0x8a, 0xbc, 0xb8, 0x27, 0xc8, 0x64, 0x2d, 0xab, 0xb4, 0xc2, 0x62, 0x8c, 0xf2, 0xf0, 0x40, 0x4a,
+ 0xd3, 0x3e, 0x10, 0x15, 0x2a, 0xbc, 0x82, 0x08, 0xa4, 0x54, 0x85, 0x18, 0xd2, 0xc9, 0x4d, 0xa8,
+ 0xf6, 0x8d, 0x3d, 0xc1, 0x5b, 0xe5, 0xbc, 0x5c, 0xc3, 0xdc, 0x59, 0x59, 0x95, 0x69, 0xbe, 0x14,
+ 0x95, 0xb5, 0xa4, 0xab, 0xf7, 0x14, 0x81, 0xef, 0x0d, 0x65, 0x4b, 0x36, 0xc3, 0x62, 0x8c, 0xf2,
+ 0x90, 0x9f, 0x85, 0x29, 0x97, 0x1a, 0xfd, 0x36, 0x0d, 0x6a, 0x01, 0xaf, 0x25, 0xf3, 0x9f, 0x46,
+ 0x29, 0x98, 0xe0, 0x1c, 0x62, 0x24, 0xac, 0x8f, 0x64, 0x24, 0xfc, 0x1a, 0x4c, 0x19, 0xae, 0x6e,
+ 0xda, 0xd4, 0xb8, 0x6f, 0xf3, 0xc0, 0x0e, 0x19, 0xce, 0x19, 0x18, 0xe8, 0x57, 0x62, 0x54, 0x4c,
+ 0x70, 0x6b, 0xff, 0x38, 0x0f, 0x25, 0x91, 0x95, 0x75, 0x1d, 0x2e, 0x99, 0xb6, 0xe9, 0x9b, 0xba,
+ 0xb5, 0x42, 0x2d, 0xfd, 0x28, 0x1a, 0xe0, 0x52, 0x6a, 0xbe, 0xc8, 0x36, 0xda, 0xeb, 0x83, 0x64,
+ 0x4c, 0xab, 0xc3, 0x3a, 0xc7, 0x17, 0xcb, 0xb7, 0x42, 0x11, 0x76, 0x34, 0x91, 0x12, 0x3c, 0x46,
+ 0xc1, 0x04, 0x27, 0x53, 0x86, 0x7a, 0x03, 0x91, 0x2b, 0x25, 0xa1, 0x0c, 0xc5, 0x83, 0x49, 0xe2,
+ 0x7c, 0x5c, 0x49, 0xef, 0x73, 0x85, 0x38, 0x38, 0x34, 0x25, 0x83, 0xe0, 0x84, 0x92, 0x9e, 0xa0,
+ 0xe1, 0x00, 0x37, 0x43, 0xd8, 0xd3, 0x4d, 0xab, 0xef, 0xd2, 0x10, 0xa1, 0x14, 0x22, 0xac, 0x26,
+ 0x68, 0x38, 0xc0, 0xad, 0x6d, 0x03, 0x6c, 0xf5, 0x2d, 0x4f, 0xe7, 0x19, 0x78, 0xc6, 0x76, 0x2f,
+ 0xc4, 0xef, 0xe5, 0x61, 0x42, 0xc0, 0xca, 0x8d, 0xf4, 0x22, 0x80, 0x4c, 0xf4, 0x63, 0x18, 0xae,
+ 0xd4, 0x0d, 0xc2, 0x09, 0x2e, 0xa0, 0x60, 0x84, 0xeb, 0x6c, 0x21, 0x65, 0x6f, 0xc0, 0x84, 0x0a,
+ 0x11, 0xe3, 0x6a, 0x47, 0x22, 0xbc, 0x76, 0x39, 0x42, 0xc3, 0x18, 0x27, 0x59, 0x61, 0xbd, 0xbf,
+ 0x2b, 0x0e, 0x96, 0x9b, 0x8e, 0xcd, 0x6b, 0x8b, 0x0c, 0x0c, 0xc1, 0xd1, 0xca, 0x56, 0x82, 0x8e,
+ 0x03, 0x35, 0xc8, 0x17, 0xa0, 0xda, 0xd5, 0x1f, 0xed, 0xd8, 0x7a, 0xfb, 0x40, 0x4e, 0x21, 0x81,
+ 0x5e, 0xb1, 0x29, 0xcb, 0x31, 0xe0, 0x20, 0xba, 0xdc, 0x87, 0x97, 0xb3, 0x1e, 0x3e, 0x0c, 0x5e,
+ 0xd9, 0xc0, 0x4e, 0xfc, 0xbf, 0xe6, 0x80, 0x0c, 0x9e, 0xeb, 0x21, 0xfb, 0x50, 0xb6, 0xb9, 0x71,
+ 0x39, 0xf3, 0xd5, 0x12, 0x11, 0x1b, 0xb5, 0x58, 0xf5, 0x65, 0x81, 0xc4, 0x27, 0x36, 0x54, 0xe9,
+ 0x23, 0x9f, 0xba, 0x76, 0x70, 0xce, 0x6f, 0x3c, 0xd7, 0x58, 0x88, 0xcd, 0xb6, 0x44, 0xc6, 0x40,
+ 0x86, 0xf6, 0xbb, 0x79, 0xa8, 0x47, 0xf8, 0x9e, 0x64, 0xb3, 0xe1, 0xa9, 0x46, 0x84, 0x4d, 0x77,
+ 0xc7, 0xb5, 0xe4, 0xd8, 0x8a, 0xa4, 0x1a, 0x91, 0x24, 0xdc, 0xc0, 0x28, 0x1f, 0x1b, 0xc0, 0x5d,
+ 0xdd, 0xf3, 0x63, 0xa3, 0x2c, 0x18, 0xc0, 0x9b, 0x01, 0x05, 0x23, 0x5c, 0xe4, 0x86, 0xbc, 0x88,
+ 0xa4, 0x18, 0x4f, 0xc8, 0x3a, 0xe4, 0x96, 0x91, 0xd2, 0x18, 0x6e, 0x19, 0x21, 0x1d, 0x98, 0x51,
+ 0xad, 0x56, 0xd4, 0xf3, 0xa5, 0xeb, 0x14, 0x33, 0x4f, 0x02, 0x02, 0x07, 0x40, 0xb5, 0x1f, 0xe4,
+ 0x60, 0x32, 0x66, 0x51, 0x14, 0xa9, 0x54, 0xd5, 0xa9, 0xb4, 0x58, 0x2a, 0xd5, 0xc8, 0x61, 0xb2,
+ 0x57, 0xa0, 0x2c, 0x3a, 0x28, 0x19, 0x6c, 0x2e, 0xba, 0x10, 0x25, 0x95, 0xa9, 0x0a, 0xd2, 0x67,
+ 0x91, 0x54, 0x15, 0xa4, 0x53, 0x03, 0x15, 0x5d, 0xb8, 0x02, 0x45, 0xeb, 0x64, 0x4f, 0x47, 0x5c,
+ 0x81, 0xa2, 0x1c, 0x03, 0x0e, 0xed, 0x6f, 0xf3, 0x76, 0xfb, 0xee, 0x51, 0x60, 0x2a, 0xe9, 0x40,
+ 0x45, 0x06, 0x18, 0xcb, 0x4f, 0xe3, 0xad, 0x0c, 0x66, 0x4e, 0x8e, 0x23, 0x43, 0x64, 0xf5, 0xf6,
+ 0xc1, 0xfd, 0xbd, 0x3d, 0x54, 0xe8, 0xe4, 0x16, 0xd4, 0x1c, 0x5b, 0x4e, 0xc9, 0xf2, 0xf1, 0x3f,
+ 0xcf, 0x54, 0x81, 0xfb, 0xaa, 0xf0, 0xf1, 0x71, 0xe3, 0x4a, 0xf0, 0x27, 0xd6, 0x48, 0x0c, 0x6b,
+ 0x6a, 0x7f, 0x22, 0x07, 0x2f, 0xa0, 0x63, 0x59, 0xa6, 0xdd, 0x89, 0xbb, 0xb2, 0x89, 0x05, 0x53,
+ 0x62, 0xa6, 0x39, 0xd4, 0x4d, 0x4b, 0xdf, 0xb5, 0xe8, 0x13, 0x4d, 0x1d, 0x7d, 0xdf, 0xb4, 0xe6,
+ 0xc5, 0xc5, 0xac, 0xf3, 0xeb, 0xb6, 0x7f, 0xdf, 0x6d, 0xf9, 0xae, 0x69, 0x77, 0xc4, 0xb2, 0xb7,
+ 0x19, 0xc3, 0xc2, 0x04, 0xb6, 0xf6, 0x6f, 0x8a, 0xc0, 0x83, 0x57, 0xc9, 0x97, 0xa0, 0xd6, 0xa5,
+ 0xed, 0x7d, 0xdd, 0x36, 0x3d, 0x95, 0x94, 0xfa, 0x2a, 0x7b, 0xae, 0x4d, 0x55, 0xf8, 0x98, 0xbd,
+ 0x8a, 0xa5, 0xd6, 0x06, 0x3f, 0x47, 0x16, 0xf2, 0x92, 0x36, 0x94, 0x3b, 0x9e, 0xa7, 0xf7, 0xcc,
+ 0xcc, 0x31, 0x43, 0x22, 0x09, 0xb0, 0x98, 0x8e, 0xc4, 0x6f, 0x94, 0xd0, 0xa4, 0x0d, 0xa5, 0x9e,
+ 0xa5, 0x9b, 0x76, 0xe6, 0x8b, 0x04, 0xd9, 0x13, 0x6c, 0x31, 0x24, 0xb1, 0xde, 0xf1, 0x9f, 0x28,
+ 0xb0, 0x49, 0x1f, 0xea, 0x5e, 0xdb, 0xd5, 0xbb, 0xde, 0xbe, 0xbe, 0xf8, 0xda, 0xeb, 0x99, 0x77,
+ 0x73, 0xa1, 0x28, 0xa1, 0x5c, 0x2e, 0xe3, 0xd2, 0x66, 0xeb, 0xf6, 0xd2, 0xe2, 0x6b, 0xaf, 0x63,
+ 0x54, 0x4e, 0x54, 0xec, 0x6b, 0xaf, 0x2e, 0xca, 0x19, 0x64, 0xec, 0x62, 0x5f, 0x7b, 0x75, 0x11,
+ 0xa3, 0x72, 0x58, 0x97, 0x3a, 0x91, 0x65, 0x2c, 0x9b, 0xc0, 0xfb, 0xa1, 0x5b, 0x80, 0xff, 0x44,
+ 0x81, 0xad, 0xfd, 0xcf, 0x1c, 0xd4, 0x02, 0x3a, 0x9b, 0x28, 0x45, 0x7a, 0xc3, 0xf5, 0x95, 0xf3,
+ 0xe9, 0x26, 0x7c, 0xa2, 0x5c, 0x96, 0x55, 0x31, 0x00, 0x21, 0xef, 0xc2, 0x84, 0xf8, 0x2d, 0xd3,
+ 0x0d, 0xe7, 0xcf, 0x9d, 0xd3, 0x78, 0x39, 0x52, 0x1d, 0x63, 0x60, 0xe4, 0x2b, 0x30, 0xc9, 0xf5,
+ 0xa0, 0x5b, 0xb6, 0xd1, 0x73, 0x4c, 0x79, 0x3b, 0x50, 0x24, 0xb3, 0xd3, 0x76, 0x94, 0x88, 0x71,
+ 0xde, 0xe0, 0xc1, 0xf9, 0x9b, 0x20, 0x3b, 0x00, 0x6c, 0xa5, 0x90, 0xad, 0x3c, 0xd7, 0xa3, 0x73,
+ 0xe3, 0xe8, 0x4e, 0x50, 0x19, 0x23, 0x40, 0x29, 0x59, 0xa3, 0xf3, 0xe3, 0xce, 0x1a, 0xbd, 0x00,
+ 0xb5, 0x7d, 0xdd, 0x36, 0xbc, 0x7d, 0xfd, 0x80, 0xca, 0x13, 0x15, 0xc1, 0xce, 0xfd, 0xb6, 0x22,
+ 0x60, 0xc8, 0xa3, 0xfd, 0xdd, 0x32, 0x88, 0x30, 0x2a, 0x36, 0xa5, 0x1b, 0xa6, 0x27, 0xce, 0x3d,
+ 0xe5, 0x78, 0xcd, 0x60, 0x4a, 0x5f, 0x91, 0xe5, 0x18, 0x70, 0x90, 0xab, 0x50, 0xe8, 0x9a, 0xb6,
+ 0x54, 0xd8, 0xb9, 0xdf, 0x63, 0xd3, 0xb4, 0x91, 0x95, 0x71, 0x92, 0xfe, 0x48, 0x2a, 0xe4, 0x82,
+ 0xa4, 0x3f, 0x42, 0x56, 0x46, 0xbe, 0x0a, 0xd3, 0x96, 0xe3, 0x1c, 0xb0, 0xc9, 0x39, 0x1a, 0x19,
+ 0x3e, 0x29, 0x2c, 0x91, 0x1b, 0x71, 0x12, 0x26, 0x79, 0xc9, 0x0e, 0xbc, 0xf8, 0x01, 0x75, 0x1d,
+ 0xb9, 0x1a, 0xb5, 0x2c, 0x4a, 0x7b, 0x0a, 0x46, 0xa8, 0x81, 0x3c, 0x70, 0xfd, 0x9b, 0xe9, 0x2c,
+ 0x38, 0xac, 0x2e, 0x3f, 0x6a, 0xa3, 0xbb, 0x1d, 0xea, 0x6f, 0xb9, 0x0e, 0x53, 0xf5, 0x4d, 0xbb,
+ 0xa3, 0x60, 0xcb, 0x21, 0xec, 0x76, 0x3a, 0x0b, 0x0e, 0xab, 0x4b, 0xde, 0x81, 0x59, 0x41, 0x12,
+ 0x4a, 0xe1, 0x92, 0x98, 0xc4, 0x4d, 0x4b, 0xdd, 0x6e, 0x3c, 0x29, 0xdc, 0xcb, 0xdb, 0x43, 0x78,
+ 0x70, 0x68, 0x6d, 0x72, 0x07, 0x66, 0x54, 0x70, 0xc1, 0x16, 0x75, 0x5b, 0x41, 0x68, 0xdd, 0xa4,
+ 0x3a, 0x61, 0xa0, 0x22, 0xec, 0x31, 0xc1, 0x85, 0x03, 0xf5, 0x08, 0xc2, 0x15, 0x1e, 0x3f, 0xb7,
+ 0xd3, 0x5b, 0x76, 0x1c, 0xcb, 0x70, 0x1e, 0xda, 0xea, 0xd9, 0xc5, 0xfe, 0x96, 0xc7, 0x13, 0xb4,
+ 0x52, 0x39, 0x70, 0x48, 0x4d, 0xf6, 0xe4, 0x9c, 0xb2, 0xe2, 0x3c, 0xb4, 0x93, 0xa8, 0x10, 0x3e,
+ 0x79, 0x6b, 0x08, 0x0f, 0x0e, 0xad, 0x4d, 0x56, 0x81, 0x24, 0x9f, 0x60, 0xa7, 0x27, 0x23, 0x5e,
+ 0xae, 0x88, 0xfc, 0x66, 0x49, 0x2a, 0xa6, 0xd4, 0x20, 0x1b, 0x70, 0x39, 0x59, 0xca, 0xc4, 0xc9,
+ 0xe0, 0x17, 0x9e, 0xd9, 0x1c, 0x53, 0xe8, 0x98, 0x5a, 0x4b, 0xfb, 0x7b, 0x79, 0x98, 0x8c, 0x25,
+ 0xc4, 0x79, 0xe6, 0x12, 0x8f, 0xb0, 0xbd, 0x76, 0xd7, 0xeb, 0xac, 0xaf, 0xdc, 0xa6, 0xba, 0x41,
+ 0x5d, 0x75, 0xde, 0xaa, 0x26, 0x95, 0x8e, 0x18, 0x05, 0x13, 0x9c, 0x64, 0x0f, 0x4a, 0xc2, 0xad,
+ 0x96, 0xf5, 0x72, 0x34, 0xd5, 0x47, 0xdc, 0xb7, 0x26, 0x6f, 0x14, 0x74, 0x5c, 0x8a, 0x02, 0x5e,
+ 0xf3, 0x61, 0x22, 0xca, 0xc1, 0x26, 0x92, 0x70, 0x53, 0x51, 0x89, 0x6d, 0x28, 0xd6, 0xa1, 0xe0,
+ 0xfb, 0xa3, 0xa6, 0x34, 0x11, 0x6e, 0xda, 0xed, 0x0d, 0x64, 0x18, 0xda, 0x1e, 0x7b, 0x77, 0x9e,
+ 0x67, 0x3a, 0xb6, 0xbc, 0xdf, 0x62, 0x07, 0x2a, 0xd2, 0xd8, 0x30, 0x62, 0x4a, 0x16, 0xae, 0x89,
+ 0x2a, 0x2f, 0x85, 0xc2, 0xd2, 0xfe, 0x55, 0x1e, 0x6a, 0x81, 0x55, 0xf1, 0x0c, 0xf7, 0x46, 0x38,
+ 0x50, 0x0b, 0xe2, 0x7f, 0x33, 0xdf, 0xfc, 0x1c, 0x86, 0xa5, 0x72, 0x43, 0x58, 0xf0, 0x17, 0x43,
+ 0x19, 0xd1, 0xd8, 0xe2, 0x42, 0x86, 0xd8, 0xe2, 0x1e, 0x54, 0x7c, 0xd7, 0xec, 0x74, 0xe4, 0x1e,
+ 0x2c, 0x4b, 0x70, 0x71, 0xd0, 0x5d, 0xdb, 0x02, 0x50, 0xf6, 0xac, 0xf8, 0x83, 0x4a, 0x8c, 0xf6,
+ 0x3e, 0xcc, 0x24, 0x39, 0xf9, 0x06, 0xa5, 0xbd, 0x4f, 0x8d, 0xbe, 0xa5, 0xfa, 0x38, 0xdc, 0xa0,
+ 0xc8, 0x72, 0x0c, 0x38, 0xc8, 0x4d, 0xa8, 0xb2, 0xd7, 0xf4, 0x81, 0x63, 0xab, 0x4d, 0x02, 0x57,
+ 0x61, 0xb6, 0x65, 0x19, 0x06, 0x54, 0xed, 0x3f, 0x15, 0xe0, 0x6a, 0x68, 0x1b, 0xde, 0xd4, 0x6d,
+ 0xbd, 0x73, 0x86, 0xeb, 0x7e, 0x3f, 0x3d, 0xe4, 0x7a, 0xde, 0xcb, 0x7f, 0x0a, 0xcf, 0xc0, 0xe5,
+ 0x3f, 0xff, 0x37, 0x0f, 0xfc, 0xac, 0x02, 0xf9, 0x0e, 0x4c, 0xe8, 0x91, 0x9b, 0xde, 0xe5, 0xeb,
+ 0xbc, 0x95, 0xf9, 0x75, 0xf2, 0x23, 0x11, 0x81, 0xd9, 0x2c, 0x5a, 0x8a, 0x31, 0x81, 0xc4, 0x81,
+ 0xea, 0x9e, 0x6e, 0x59, 0x4c, 0x17, 0xca, 0xec, 0xeb, 0x8e, 0x09, 0xe7, 0xc3, 0x7c, 0x55, 0x42,
+ 0x63, 0x20, 0x84, 0x7c, 0x2f, 0x07, 0x93, 0x6e, 0x74, 0x33, 0x2c, 0x5f, 0x48, 0x96, 0x48, 0xa8,
+ 0x08, 0x5a, 0x34, 0x3a, 0x35, 0xba, 0xe3, 0x8e, 0xcb, 0xd4, 0xfe, 0x43, 0x0e, 0x26, 0x5b, 0x96,
+ 0x69, 0x98, 0x76, 0xe7, 0x02, 0xef, 0x1e, 0xba, 0x0f, 0x25, 0xcf, 0x32, 0x0d, 0x3a, 0xe2, 0x6a,
+ 0x22, 0xd6, 0x31, 0x06, 0x80, 0x02, 0x27, 0x7e, 0x99, 0x51, 0xe1, 0x0c, 0x97, 0x19, 0xfd, 0xc7,
+ 0x0a, 0xc8, 0x53, 0x37, 0xa4, 0x0f, 0xb5, 0x8e, 0xba, 0x23, 0x45, 0x3e, 0xe3, 0xed, 0x0c, 0xf9,
+ 0x75, 0x63, 0xb7, 0xad, 0x88, 0xb9, 0x3f, 0x28, 0xc4, 0x50, 0x12, 0xa1, 0x50, 0xe2, 0x67, 0x5b,
+ 0x33, 0x1b, 0x0f, 0x23, 0xa7, 0x98, 0x45, 0xcf, 0xf0, 0x02, 0x14, 0xe8, 0x44, 0x87, 0xe2, 0xbe,
+ 0xef, 0xf7, 0xe4, 0x60, 0x1a, 0xdd, 0x14, 0x1b, 0xa6, 0x78, 0x13, 0x3a, 0x11, 0xfb, 0x8f, 0x1c,
+ 0x9a, 0x89, 0xb0, 0xf5, 0xe0, 0x22, 0xd7, 0xe5, 0x4c, 0x51, 0x57, 0x51, 0x11, 0xec, 0x3f, 0x72,
+ 0x68, 0xf2, 0x0b, 0x50, 0xf7, 0x5d, 0xdd, 0xf6, 0xf6, 0x1c, 0xb7, 0x4b, 0x5d, 0x69, 0x01, 0x58,
+ 0xcd, 0x70, 0xcb, 0xfe, 0x76, 0x88, 0x26, 0x3c, 0x18, 0xb1, 0x22, 0x8c, 0x4a, 0x23, 0x07, 0x50,
+ 0xed, 0x1b, 0xa2, 0x61, 0xd2, 0x14, 0xb0, 0x94, 0x41, 0x72, 0x34, 0xa6, 0x4a, 0xfd, 0xc3, 0x40,
+ 0x40, 0xfc, 0xce, 0xe2, 0xca, 0xb8, 0xee, 0x2c, 0x8e, 0x8e, 0xc6, 0xb4, 0xfc, 0x53, 0xa4, 0x2b,
+ 0xf5, 0x5a, 0xbb, 0x23, 0x43, 0x42, 0x57, 0x33, 0xab, 0x9c, 0x42, 0x64, 0x3d, 0xd0, 0x8d, 0xed,
+ 0x0e, 0x2a, 0x19, 0xc4, 0x84, 0x72, 0x8f, 0xdb, 0xf6, 0x33, 0xdf, 0x5f, 0x1f, 0x75, 0xbf, 0x88,
+ 0xb9, 0x46, 0x94, 0xa0, 0x14, 0xa0, 0x75, 0x41, 0x7a, 0x75, 0x49, 0x3b, 0x76, 0x25, 0x9c, 0x38,
+ 0xb3, 0xbc, 0x70, 0xb6, 0xa9, 0x27, 0xb8, 0x9b, 0x2c, 0x72, 0x25, 0x45, 0xea, 0xdd, 0x6f, 0xda,
+ 0xbf, 0xce, 0x43, 0x61, 0x7b, 0xa3, 0x25, 0xd2, 0x4c, 0xf3, 0x4b, 0x26, 0x69, 0xeb, 0xc0, 0xec,
+ 0x3d, 0xa0, 0xae, 0xb9, 0x77, 0x24, 0x77, 0xf9, 0x91, 0x34, 0xd3, 0x49, 0x0e, 0x4c, 0xa9, 0xc5,
+ 0x8d, 0x38, 0xfa, 0x32, 0x75, 0x33, 0x18, 0x71, 0x96, 0xc2, 0xea, 0x18, 0x03, 0x23, 0x3b, 0x00,
+ 0xed, 0x10, 0xba, 0x70, 0x6e, 0xcb, 0x4b, 0x04, 0x38, 0x02, 0x44, 0x10, 0x6a, 0x07, 0x8c, 0x95,
+ 0xa3, 0x16, 0xcf, 0x83, 0xca, 0x07, 0xe9, 0x5d, 0x55, 0x17, 0x43, 0x18, 0xcd, 0x86, 0xc9, 0xd8,
+ 0x3d, 0x71, 0xe4, 0xcb, 0x50, 0x75, 0x7a, 0x91, 0x99, 0xbb, 0xc6, 0xe3, 0xdc, 0xab, 0xf7, 0x65,
+ 0xd9, 0xe3, 0xe3, 0xc6, 0xe4, 0x86, 0xd3, 0x31, 0xdb, 0xaa, 0x00, 0x03, 0x76, 0xa2, 0x41, 0x99,
+ 0x9f, 0xa8, 0x56, 0xb7, 0xc4, 0xf1, 0xa1, 0xc3, 0x2f, 0x72, 0xf2, 0x50, 0x52, 0xb4, 0x5f, 0x2a,
+ 0x42, 0x18, 0x0b, 0x41, 0x3c, 0x28, 0x8b, 0xd3, 0x5c, 0x72, 0x91, 0xb8, 0xd0, 0x83, 0x63, 0x52,
+ 0x14, 0xe9, 0x40, 0xe1, 0x7d, 0x67, 0x37, 0xf3, 0x1a, 0x11, 0x49, 0x0b, 0x23, 0x8c, 0x9e, 0x91,
+ 0x02, 0x64, 0x12, 0xc8, 0x5f, 0xcc, 0xc1, 0xf3, 0x5e, 0x52, 0xcb, 0x96, 0xc3, 0x01, 0xb3, 0x6f,
+ 0x27, 0x92, 0x7a, 0xbb, 0x3c, 0x90, 0x30, 0x8c, 0x8c, 0x83, 0x6d, 0x61, 0xfd, 0x2f, 0x82, 0x14,
+ 0xe4, 0x70, 0x5a, 0xcb, 0x78, 0x1b, 0x76, 0xbc, 0xff, 0xe3, 0x65, 0x28, 0x45, 0x69, 0xdf, 0xcd,
+ 0x43, 0x3d, 0xb2, 0x30, 0x64, 0xbe, 0x7c, 0xf0, 0x51, 0xe2, 0xf2, 0xc1, 0xad, 0xd1, 0x63, 0x76,
+ 0xc2, 0x56, 0x5d, 0xf4, 0xfd, 0x83, 0xff, 0x30, 0x0f, 0x85, 0x9d, 0x95, 0xd5, 0xf8, 0xfe, 0x38,
+ 0xf7, 0x14, 0xf6, 0xc7, 0xfb, 0x50, 0xd9, 0xed, 0x9b, 0x96, 0x6f, 0xda, 0x99, 0x13, 0x57, 0xa9,
+ 0xbb, 0x1a, 0xa5, 0xd3, 0x4a, 0xa0, 0xa2, 0x82, 0x27, 0x1d, 0xa8, 0x74, 0x44, 0xe6, 0xe0, 0xcc,
+ 0x91, 0xcc, 0x32, 0x03, 0xb1, 0x10, 0x24, 0xff, 0xa0, 0x42, 0xd7, 0x8e, 0xa0, 0xbc, 0xb3, 0x22,
+ 0x77, 0x18, 0x4f, 0xb7, 0x37, 0xb5, 0x5f, 0x80, 0x40, 0xe1, 0x78, 0xfa, 0xc2, 0xff, 0x4b, 0x0e,
+ 0xe2, 0x3a, 0xd6, 0xd3, 0x1f, 0x4d, 0x07, 0xc9, 0xd1, 0xb4, 0x32, 0x8e, 0x8f, 0x2f, 0x7d, 0x40,
+ 0x69, 0xff, 0x22, 0x07, 0x89, 0x23, 0xb8, 0xe4, 0x75, 0x99, 0x84, 0x32, 0x1e, 0x32, 0xaa, 0x92,
+ 0x50, 0x92, 0x38, 0x77, 0x24, 0x19, 0xe5, 0x87, 0x6c, 0x67, 0x18, 0xf5, 0x84, 0xca, 0xe6, 0xdf,
+ 0x1b, 0x7d, 0x67, 0x98, 0xe6, 0x57, 0x95, 0x61, 0xcd, 0x51, 0x12, 0xc6, 0xe5, 0x6a, 0x7f, 0x27,
+ 0x0f, 0xe5, 0xa7, 0x96, 0x75, 0x84, 0xc6, 0x22, 0xcd, 0x97, 0x33, 0xce, 0xf6, 0x43, 0xe3, 0xcc,
+ 0xbb, 0x89, 0x38, 0xf3, 0x5b, 0x59, 0x05, 0x9d, 0x1e, 0x65, 0xfe, 0xcf, 0x72, 0x20, 0xd7, 0x9a,
+ 0x75, 0xdb, 0xf3, 0x75, 0xbb, 0x4d, 0x49, 0x3b, 0x58, 0xd8, 0xb2, 0x86, 0x33, 0xca, 0x90, 0x5f,
+ 0xa1, 0xcb, 0xf0, 0xdf, 0x6a, 0x21, 0x23, 0x5f, 0x80, 0xea, 0xbe, 0xe3, 0xf9, 0x7c, 0xf1, 0xca,
+ 0xc7, 0xad, 0x73, 0xb7, 0x65, 0x39, 0x06, 0x1c, 0xc9, 0xb8, 0x84, 0xd2, 0xf0, 0xb8, 0x04, 0xed,
+ 0x9b, 0x30, 0x9d, 0x4c, 0x9d, 0xb2, 0x96, 0x9a, 0x3a, 0xe5, 0xe5, 0x21, 0xa9, 0x53, 0xea, 0xc3,
+ 0xd3, 0xa6, 0xfc, 0x46, 0x1e, 0x26, 0x3e, 0x29, 0x29, 0x53, 0xd2, 0x62, 0xfe, 0x0b, 0x19, 0x63,
+ 0xfe, 0x8b, 0xe7, 0x89, 0xf9, 0xd7, 0x7e, 0x94, 0x03, 0x78, 0x6a, 0xf9, 0x5a, 0x8c, 0x78, 0x38,
+ 0x7e, 0xe6, 0x31, 0x9b, 0x1e, 0x8c, 0xff, 0x37, 0xca, 0xea, 0x91, 0x78, 0x28, 0xfe, 0x87, 0x39,
+ 0x98, 0xd2, 0x63, 0xe1, 0xed, 0x99, 0x75, 0xf1, 0x44, 0xb4, 0x7c, 0x10, 0x9d, 0x19, 0x2f, 0xc7,
+ 0x84, 0x58, 0xf2, 0x46, 0x78, 0xb7, 0xc2, 0xbd, 0xf0, 0x93, 0x1a, 0xb8, 0x14, 0x41, 0xc4, 0xe3,
+ 0x45, 0x39, 0x9f, 0x70, 0x9c, 0xa0, 0x30, 0x96, 0xe3, 0x04, 0xd1, 0x83, 0xd2, 0xc5, 0x53, 0x0f,
+ 0x4a, 0x1f, 0x42, 0x6d, 0xcf, 0x75, 0xba, 0x3c, 0x62, 0x7f, 0xb6, 0xc4, 0x5f, 0xe5, 0xad, 0x0c,
+ 0x8b, 0x70, 0x77, 0xd7, 0xb4, 0xa9, 0xc1, 0x4f, 0x03, 0x04, 0xf6, 0xb7, 0x55, 0x85, 0x8f, 0xa1,
+ 0x28, 0xee, 0xb2, 0x70, 0x84, 0xd4, 0xf2, 0x38, 0xa5, 0x06, 0xf3, 0xd4, 0xb6, 0x40, 0x47, 0x25,
+ 0x26, 0x1e, 0xa5, 0x5f, 0x79, 0x4a, 0x51, 0xfa, 0x47, 0xd1, 0xc3, 0x0f, 0xd5, 0x8c, 0xd6, 0x9c,
+ 0xf3, 0x65, 0xd8, 0xf8, 0xd3, 0x15, 0x35, 0x77, 0x3e, 0x73, 0x19, 0xc4, 0x3f, 0xcd, 0xac, 0xd1,
+ 0xa1, 0x03, 0x69, 0x2f, 0xaa, 0x4f, 0x31, 0xed, 0x45, 0x6d, 0x3c, 0x69, 0x2f, 0x20, 0x5b, 0xda,
+ 0x8b, 0xfa, 0x98, 0xd2, 0x5e, 0x4c, 0x8c, 0x2b, 0xed, 0xc5, 0xe4, 0x48, 0x69, 0x2f, 0xa6, 0xce,
+ 0x94, 0xf6, 0xe2, 0xb8, 0x00, 0x09, 0x1b, 0xc3, 0xa7, 0xae, 0xcb, 0x3f, 0x50, 0xae, 0xcb, 0xef,
+ 0xe7, 0x21, 0x5c, 0x03, 0xce, 0x19, 0xda, 0xf5, 0x0e, 0x8f, 0xae, 0xe7, 0x27, 0x35, 0xb2, 0x5c,
+ 0xbc, 0xbf, 0x29, 0x31, 0x30, 0x40, 0x23, 0x1e, 0x80, 0x19, 0x5c, 0x7e, 0x93, 0xd9, 0x09, 0x14,
+ 0xde, 0xa3, 0x23, 0x6c, 0xbf, 0xe1, 0x7f, 0x8c, 0x88, 0xd1, 0xfe, 0x69, 0x1e, 0xe4, 0x2d, 0x49,
+ 0x84, 0x42, 0x69, 0xcf, 0x7c, 0x44, 0x8d, 0xcc, 0xe1, 0xf8, 0xab, 0x0c, 0x45, 0x5e, 0xc5, 0xc4,
+ 0xbd, 0x5c, 0xbc, 0x00, 0x05, 0x3a, 0x77, 0x5f, 0x08, 0xaf, 0xa5, 0xec, 0xbf, 0x0c, 0xee, 0x8b,
+ 0xa8, 0xf7, 0x53, 0xba, 0x2f, 0x44, 0x11, 0x2a, 0x19, 0xc2, 0x5b, 0xc2, 0x03, 0x58, 0x32, 0x3b,
+ 0x69, 0x63, 0x81, 0x30, 0xca, 0x5b, 0xe2, 0x89, 0xbc, 0x37, 0x52, 0x46, 0xf3, 0xe7, 0x7f, 0xf8,
+ 0xe3, 0xeb, 0xcf, 0xfd, 0xe8, 0xc7, 0xd7, 0x9f, 0xfb, 0xe8, 0xc7, 0xd7, 0x9f, 0xfb, 0xa5, 0x93,
+ 0xeb, 0xb9, 0x1f, 0x9e, 0x5c, 0xcf, 0xfd, 0xe8, 0xe4, 0x7a, 0xee, 0xa3, 0x93, 0xeb, 0xb9, 0x7f,
+ 0x77, 0x72, 0x3d, 0xf7, 0xe7, 0xfe, 0xfd, 0xf5, 0xe7, 0xbe, 0xf9, 0xa5, 0xb0, 0x09, 0x0b, 0xaa,
+ 0x09, 0x0b, 0x4a, 0xe0, 0x42, 0xef, 0xa0, 0xb3, 0xc0, 0x9a, 0x10, 0x96, 0xa8, 0x26, 0xfc, 0xbf,
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x4d, 0x89, 0x14, 0x7a, 0xa4, 0x00, 0x00,
}
func (m *AbstractPodTemplate) Marshal() (dAtA []byte, err error) {
@@ -9455,6 +9486,34 @@ func (m *VertexInstance) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *VertexLifecycle) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *VertexLifecycle) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *VertexLifecycle) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ i -= len(m.DesiredPhase)
+ copy(dAtA[i:], m.DesiredPhase)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.DesiredPhase)))
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func (m *VertexLimits) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -9572,6 +9631,16 @@ func (m *VertexSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ {
+ size, err := m.Lifecycle.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenerated(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x42
{
size, err := m.Watermark.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -12110,6 +12179,17 @@ func (m *VertexInstance) Size() (n int) {
return n
}
+func (m *VertexLifecycle) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.DesiredPhase)
+ n += 1 + l + sovGenerated(uint64(l))
+ return n
+}
+
func (m *VertexLimits) Size() (n int) {
if m == nil {
return 0
@@ -12178,6 +12258,8 @@ func (m *VertexSpec) Size() (n int) {
}
l = m.Watermark.Size()
n += 1 + l + sovGenerated(uint64(l))
+ l = m.Lifecycle.Size()
+ n += 1 + l + sovGenerated(uint64(l))
return n
}
@@ -13767,6 +13849,16 @@ func (this *VertexInstance) String() string {
}, "")
return s
}
+func (this *VertexLifecycle) String() string {
+ if this == nil {
+ return "nil"
+ }
+ s := strings.Join([]string{`&VertexLifecycle{`,
+ `DesiredPhase:` + fmt.Sprintf("%v", this.DesiredPhase) + `,`,
+ `}`,
+ }, "")
+ return s
+}
func (this *VertexLimits) String() string {
if this == nil {
return "nil"
@@ -13818,6 +13910,7 @@ func (this *VertexSpec) String() string {
`FromEdges:` + repeatedStringForFromEdges + `,`,
`ToEdges:` + repeatedStringForToEdges + `,`,
`Watermark:` + strings.Replace(strings.Replace(this.Watermark.String(), "Watermark", "Watermark", 1), `&`, ``, 1) + `,`,
+ `Lifecycle:` + strings.Replace(strings.Replace(this.Lifecycle.String(), "VertexLifecycle", "VertexLifecycle", 1), `&`, ``, 1) + `,`,
`}`,
}, "")
return s
@@ -32625,6 +32718,88 @@ func (m *VertexInstance) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *VertexLifecycle) 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: VertexLifecycle: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: VertexLifecycle: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DesiredPhase", 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 < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.DesiredPhase = VertexPhase(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipGenerated(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *VertexLimits) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -33135,6 +33310,39 @@ func (m *VertexSpec) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Lifecycle", 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 < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Lifecycle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
diff --git a/pkg/apis/numaflow/v1alpha1/generated.proto b/pkg/apis/numaflow/v1alpha1/generated.proto
index 4c488d0ae2..a9f0b8be3f 100644
--- a/pkg/apis/numaflow/v1alpha1/generated.proto
+++ b/pkg/apis/numaflow/v1alpha1/generated.proto
@@ -923,7 +923,7 @@ message MonoVertex {
}
message MonoVertexLifecycle {
- // DesiredPhase used to bring the pipeline from current phase to desired phase
+ // DesiredPhase used to bring the MonoVertex from current phase to desired phase
// +kubebuilder:default=Running
// +optional
optional string desiredPhase = 1;
@@ -1794,6 +1794,13 @@ message VertexInstance {
optional int32 replica = 3;
}
+message VertexLifecycle {
+ // DesiredPhase used to bring the vertex from current phase to desired phase
+ // +kubebuilder:default=Running
+ // +optional
+ optional string desiredPhase = 1;
+}
+
message VertexLimits {
// Read batch size from the source or buffer.
// It overrides the settings from pipeline limits.
@@ -1846,6 +1853,11 @@ message VertexSpec {
// +kubebuilder:default={"disabled": false}
// +optional
optional Watermark watermark = 7;
+
+ // Lifecycle defines the Lifecycle properties of a ertex
+ // +kubebuilder:default={"desiredPhase": Running}
+ // +optional
+ optional VertexLifecycle lifecycle = 8;
}
message VertexStatus {
diff --git a/pkg/apis/numaflow/v1alpha1/mono_vertex_types.go b/pkg/apis/numaflow/v1alpha1/mono_vertex_types.go
index cdea87e5d0..8d96c948f7 100644
--- a/pkg/apis/numaflow/v1alpha1/mono_vertex_types.go
+++ b/pkg/apis/numaflow/v1alpha1/mono_vertex_types.go
@@ -318,7 +318,7 @@ func (mv MonoVertex) simpleCopy() MonoVertex {
func (mv MonoVertex) GetPodSpec(req GetMonoVertexPodSpecReq) (*corev1.PodSpec, error) {
copiedSpec := mv.simpleCopy()
- copiedSpec.Spec.Scale = Scale{LookbackSeconds: mv.Spec.Scale.LookbackSeconds}
+ copiedSpec.Spec.Scale = Scale{LookbackSeconds: ptr.To[uint32](uint32(mv.Spec.Scale.GetLookbackSeconds()))}
monoVtxBytes, err := json.Marshal(copiedSpec)
if err != nil {
return nil, errors.New("failed to marshal mono vertex spec")
@@ -611,7 +611,7 @@ func (mvs *MonoVertexStatus) MarkPhaseRunning() {
mvs.MarkPhase(MonoVertexPhaseRunning, "", "")
}
-// MarkPhasePaused set the Pipeline has been paused.
+// MarkPhasePaused set the MonoVertex has been paused.
func (mvs *MonoVertexStatus) MarkPhasePaused() {
mvs.MarkPhase(MonoVertexPhasePaused, "", "MonoVertex paused")
}
@@ -643,7 +643,7 @@ type MonoVertexList struct {
}
type MonoVertexLifecycle struct {
- // DesiredPhase used to bring the pipeline from current phase to desired phase
+ // DesiredPhase used to bring the MonoVertex from current phase to desired phase
// +kubebuilder:default=Running
// +optional
DesiredPhase MonoVertexPhase `json:"desiredPhase,omitempty" protobuf:"bytes,1,opt,name=desiredPhase"`
diff --git a/pkg/apis/numaflow/v1alpha1/vertex_types.go b/pkg/apis/numaflow/v1alpha1/vertex_types.go
index a06e887700..8f7ab4ed27 100644
--- a/pkg/apis/numaflow/v1alpha1/vertex_types.go
+++ b/pkg/apis/numaflow/v1alpha1/vertex_types.go
@@ -30,13 +30,14 @@ import (
"k8s.io/utils/ptr"
)
-// +kubebuilder:validation:Enum="";Running;Failed
+// +kubebuilder:validation:Enum="";Running;Paused;Failed
type VertexPhase string
const (
VertexPhaseUnknown VertexPhase = ""
VertexPhaseRunning VertexPhase = "Running"
VertexPhaseFailed VertexPhase = "Failed"
+ VertexPhasePaused VertexPhase = "Paused"
// VertexConditionDeployed has the status True when the vertex related sub resources are deployed.
VertexConditionDeployed ConditionType = "Deployed"
@@ -210,14 +211,36 @@ func (v Vertex) sidecarEnvs() []corev1.EnvVar {
}
}
-func (v Vertex) GetPodSpec(req GetVertexPodSpecReq) (*corev1.PodSpec, error) {
- vertexCopy := &Vertex{
+func (v Vertex) simpleCopy() Vertex {
+ m := Vertex{
ObjectMeta: metav1.ObjectMeta{
Namespace: v.Namespace,
Name: v.Name,
},
- Spec: v.Spec.DeepCopyWithoutReplicas(),
+ Spec: v.Spec.DeepCopyWithoutReplicasAndLifecycle(),
+ }
+ if m.Spec.Limits == nil {
+ m.Spec.Limits = &VertexLimits{}
+ }
+ if m.Spec.Limits.ReadBatchSize == nil {
+ m.Spec.Limits.ReadBatchSize = ptr.To[uint64](DefaultReadBatchSize)
+ }
+ if m.Spec.Limits.ReadTimeout == nil {
+ m.Spec.Limits.ReadTimeout = &metav1.Duration{Duration: DefaultReadTimeout}
+ }
+ if m.Spec.Limits.BufferMaxLength == nil {
+ m.Spec.Limits.BufferMaxLength = ptr.To[uint64](DefaultBufferLength)
+ }
+ if m.Spec.Limits.BufferUsageLimit == nil {
+ m.Spec.Limits.BufferUsageLimit = ptr.To[uint32](100 * DefaultBufferUsageLimit)
}
+ m.Spec.UpdateStrategy = UpdateStrategy{}
+ return m
+}
+
+func (v Vertex) GetPodSpec(req GetVertexPodSpecReq) (*corev1.PodSpec, error) {
+ vertexCopy := v.simpleCopy()
+ v.Spec.Scale = Scale{LookbackSeconds: ptr.To[uint32](uint32(v.Spec.Scale.GetLookbackSeconds()))}
vertexBytes, err := json.Marshal(vertexCopy)
if err != nil {
return nil, errors.New("failed to marshal vertex spec")
@@ -423,9 +446,10 @@ func (v Vertex) getInitContainers(req GetVertexPodSpecReq) []corev1.Container {
return append(initContainers, v.Spec.InitContainers...)
}
-func (vs VertexSpec) DeepCopyWithoutReplicas() VertexSpec {
+func (vs VertexSpec) DeepCopyWithoutReplicasAndLifecycle() VertexSpec {
x := *vs.DeepCopy()
x.Replicas = ptr.To[int32](0)
+ x.Lifecycle = VertexLifecycle{}
return x
}
@@ -473,19 +497,22 @@ func (v Vertex) GetToBuffers() []string {
return r
}
-func (v Vertex) GetReplicas() int {
+func (v Vertex) getReplicas() int {
if v.IsReduceUDF() {
- // Replicas will be 0 only when pausing a pipeline
- if v.Spec.Replicas != nil && int(*v.Spec.Replicas) == 0 {
- return 0
- }
- // Replica of a reduce vertex is determined by the partitions.
return v.GetPartitionCount()
}
- desiredReplicas := 1
- if x := v.Spec.Replicas; x != nil {
- desiredReplicas = int(*x)
+ if v.Spec.Replicas == nil {
+ return 1
}
+ return int(*v.Spec.Replicas)
+}
+
+func (v Vertex) CalculateReplicas() int {
+ // If we are pausing the Pipeline/Vertex then we should have the desired replicas as 0
+ if v.Spec.Lifecycle.GetDesiredPhase() == VertexPhasePaused {
+ return 0
+ }
+ desiredReplicas := v.getReplicas()
// Don't allow replicas to be out of the range of min and max when auto scaling is enabled
if s := v.Spec.Scale; !s.Disabled {
max := int(s.GetMaxReplicas())
@@ -515,6 +542,10 @@ type VertexSpec struct {
// +kubebuilder:default={"disabled": false}
// +optional
Watermark Watermark `json:"watermark,omitempty" protobuf:"bytes,7,opt,name=watermark"`
+ // Lifecycle defines the Lifecycle properties of a ertex
+ // +kubebuilder:default={"desiredPhase": Running}
+ // +optional
+ Lifecycle VertexLifecycle `json:"lifecycle,omitempty" protobuf:"bytes,8,opt,name=lifecycle"`
}
type AbstractVertex struct {
@@ -566,6 +597,23 @@ type AbstractVertex struct {
UpdateStrategy UpdateStrategy `json:"updateStrategy,omitempty" protobuf:"bytes,16,opt,name=updateStrategy"`
}
+type VertexLifecycle struct {
+ // DesiredPhase used to bring the vertex from current phase to desired phase
+ // +kubebuilder:default=Running
+ // +optional
+ DesiredPhase VertexPhase `json:"desiredPhase,omitempty" protobuf:"bytes,1,opt,name=desiredPhase"`
+}
+
+// GetDesiredPhase is used to fetch the desired lifecycle phase for a Vertex
+func (vlc VertexLifecycle) GetDesiredPhase() VertexPhase {
+ switch vlc.DesiredPhase {
+ case VertexPhasePaused:
+ return VertexPhasePaused
+ default:
+ return VertexPhaseRunning
+ }
+}
+
func (av AbstractVertex) GetVertexType() VertexType {
if av.IsASource() {
return VertexTypeSource
@@ -745,7 +793,7 @@ func (vs *VertexStatus) InitConditions() {
// IsHealthy indicates whether the vertex is healthy or not
func (vs *VertexStatus) IsHealthy() bool {
- if vs.Phase != VertexPhaseRunning {
+ if vs.Phase != VertexPhaseRunning && vs.Phase != VertexPhasePaused {
return false
}
return vs.IsReady()
diff --git a/pkg/apis/numaflow/v1alpha1/vertex_types_test.go b/pkg/apis/numaflow/v1alpha1/vertex_types_test.go
index 1e838a0a81..7a063c31a3 100644
--- a/pkg/apis/numaflow/v1alpha1/vertex_types_test.go
+++ b/pkg/apis/numaflow/v1alpha1/vertex_types_test.go
@@ -121,8 +121,13 @@ func TestGetToBuffersSink(t *testing.T) {
func TestWithoutReplicas(t *testing.T) {
s := &VertexSpec{
Replicas: ptr.To[int32](3),
+ Lifecycle: VertexLifecycle{
+ DesiredPhase: VertexPhasePaused,
+ },
}
- assert.Equal(t, int32(0), *s.DeepCopyWithoutReplicas().Replicas)
+ dc := s.DeepCopyWithoutReplicasAndLifecycle()
+ assert.Equal(t, int32(0), *dc.Replicas)
+ assert.Equal(t, VertexLifecycle{}, dc.Lifecycle)
}
func TestGetVertexReplicas(t *testing.T) {
@@ -133,11 +138,16 @@ func TestGetVertexReplicas(t *testing.T) {
},
},
}
- assert.Equal(t, 1, v.GetReplicas())
+ v.Spec.Lifecycle.DesiredPhase = VertexPhasePaused
+ assert.Equal(t, 0, v.CalculateReplicas())
+ v.Spec.Lifecycle.DesiredPhase = VertexPhaseRunning
+ assert.Equal(t, 1, v.CalculateReplicas())
+ v.Spec.Lifecycle = VertexLifecycle{}
+ assert.Equal(t, 1, v.CalculateReplicas())
v.Spec.Replicas = ptr.To[int32](3)
- assert.Equal(t, 3, v.GetReplicas())
+ assert.Equal(t, 3, v.CalculateReplicas())
v.Spec.Replicas = ptr.To[int32](0)
- assert.Equal(t, 0, v.GetReplicas())
+ assert.Equal(t, 0, v.CalculateReplicas())
v.Spec.UDF = &UDF{
GroupBy: &GroupBy{},
}
@@ -145,16 +155,16 @@ func TestGetVertexReplicas(t *testing.T) {
{Edge: Edge{From: "a", To: "b"}},
}
v.Spec.Replicas = ptr.To[int32](5)
- assert.Equal(t, 1, v.GetReplicas())
+ assert.Equal(t, 1, v.CalculateReplicas())
v.Spec.Replicas = ptr.To[int32](1000)
- assert.Equal(t, 1, v.GetReplicas())
+ assert.Equal(t, 1, v.CalculateReplicas())
v.Spec.UDF.GroupBy = nil
v.Spec.Scale.Max = ptr.To[int32](40)
v.Spec.Scale.Min = ptr.To[int32](20)
v.Spec.Replicas = ptr.To[int32](300)
- assert.Equal(t, 40, v.GetReplicas())
+ assert.Equal(t, 40, v.CalculateReplicas())
v.Spec.Replicas = ptr.To[int32](10)
- assert.Equal(t, 20, v.GetReplicas())
+ assert.Equal(t, 20, v.CalculateReplicas())
}
func TestGetHeadlessSvcSpec(t *testing.T) {
diff --git a/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
index ed337f37bf..536fb4236f 100644
--- a/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/apis/numaflow/v1alpha1/zz_generated.deepcopy.go
@@ -2914,6 +2914,22 @@ func (in *VertexInstance) DeepCopy() *VertexInstance {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *VertexLifecycle) DeepCopyInto(out *VertexLifecycle) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VertexLifecycle.
+func (in *VertexLifecycle) DeepCopy() *VertexLifecycle {
+ if in == nil {
+ return nil
+ }
+ out := new(VertexLifecycle)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VertexLimits) DeepCopyInto(out *VertexLimits) {
*out = *in
@@ -3007,6 +3023,7 @@ func (in *VertexSpec) DeepCopyInto(out *VertexSpec) {
}
}
in.Watermark.DeepCopyInto(&out.Watermark)
+ out.Lifecycle = in.Lifecycle
return
}
diff --git a/pkg/apis/numaflow/v1alpha1/zz_generated.openapi.go b/pkg/apis/numaflow/v1alpha1/zz_generated.openapi.go
index 871bd095df..05868b5965 100644
--- a/pkg/apis/numaflow/v1alpha1/zz_generated.openapi.go
+++ b/pkg/apis/numaflow/v1alpha1/zz_generated.openapi.go
@@ -121,6 +121,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UpdateStrategy": schema_pkg_apis_numaflow_v1alpha1_UpdateStrategy(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Vertex": schema_pkg_apis_numaflow_v1alpha1_Vertex(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexInstance": schema_pkg_apis_numaflow_v1alpha1_VertexInstance(ref),
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLifecycle": schema_pkg_apis_numaflow_v1alpha1_VertexLifecycle(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits": schema_pkg_apis_numaflow_v1alpha1_VertexLimits(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexList": schema_pkg_apis_numaflow_v1alpha1_VertexList(ref),
"github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexSpec": schema_pkg_apis_numaflow_v1alpha1_VertexSpec(ref),
@@ -3112,7 +3113,7 @@ func schema_pkg_apis_numaflow_v1alpha1_MonoVertexLifecycle(ref common.ReferenceC
Properties: map[string]spec.Schema{
"desiredPhase": {
SchemaProps: spec.SchemaProps{
- Description: "DesiredPhase used to bring the pipeline from current phase to desired phase",
+ Description: "DesiredPhase used to bring the MonoVertex from current phase to desired phase",
Type: []string{"string"},
Format: "",
},
@@ -5650,6 +5651,25 @@ func schema_pkg_apis_numaflow_v1alpha1_VertexInstance(ref common.ReferenceCallba
}
}
+func schema_pkg_apis_numaflow_v1alpha1_VertexLifecycle(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "desiredPhase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DesiredPhase used to bring the vertex from current phase to desired phase",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
func schema_pkg_apis_numaflow_v1alpha1_VertexLimits(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -6063,12 +6083,19 @@ func schema_pkg_apis_numaflow_v1alpha1_VertexSpec(ref common.ReferenceCallback)
Ref: ref("github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Watermark"),
},
},
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Lifecycle defines the Lifecycle properties of a ertex",
+ Default: map[string]interface{}{},
+ Ref: ref("github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLifecycle"),
+ },
+ },
},
Required: []string{"name", "pipelineName"},
},
},
Dependencies: []string{
- "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.CombinedEdge", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UpdateStrategy", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Watermark", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
+ "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.CombinedEdge", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.ContainerTemplate", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Metadata", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Scale", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Sink", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Source", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UDF", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.UpdateStrategy", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLifecycle", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.VertexLimits", "github.com/numaproj/numaflow/pkg/apis/numaflow/v1alpha1.Watermark", "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume"},
}
}
diff --git a/pkg/reconciler/pipeline/controller.go b/pkg/reconciler/pipeline/controller.go
index c22b5702e0..27571834a8 100644
--- a/pkg/reconciler/pipeline/controller.go
+++ b/pkg/reconciler/pipeline/controller.go
@@ -667,8 +667,11 @@ func buildVertices(pl *dfv1.Pipeline) map[string]dfv1.Vertex {
ToEdges: toEdges,
Watermark: pl.Spec.Watermark,
Replicas: &replicas,
+ Lifecycle: dfv1.VertexLifecycle{
+ DesiredPhase: dfv1.VertexPhase(pl.GetDesiredPhase()),
+ },
}
- hash := sharedutil.MustHash(spec.DeepCopyWithoutReplicas())
+ hash := sharedutil.MustHash(spec.DeepCopyWithoutReplicasAndLifecycle())
obj := dfv1.Vertex{
ObjectMeta: metav1.ObjectMeta{
Namespace: pl.Namespace,
@@ -854,7 +857,7 @@ func (r *pipelineReconciler) resumePipeline(ctx context.Context, pl *dfv1.Pipeli
}
}
}
- _, err := r.scaleUpAllVertices(ctx, pl)
+ _, err := r.updateVerticeDesiredPhase(ctx, pl, allVertexFilter, dfv1.VertexPhaseRunning)
if err != nil {
return false, err
}
@@ -874,7 +877,7 @@ func (r *pipelineReconciler) pausePipeline(ctx context.Context, pl *dfv1.Pipelin
pl.Status.MarkPhasePausing()
if pl.GetAnnotations() == nil || pl.GetAnnotations()[dfv1.KeyPauseTimestamp] == "" {
- _, err := r.scaleDownSourceVertices(ctx, pl)
+ _, err := r.updateVerticeDesiredPhase(ctx, pl, sourceVertexFilter, dfv1.VertexPhasePaused)
if err != nil {
// If there's an error requeue the request
return true, err
@@ -915,7 +918,7 @@ func (r *pipelineReconciler) pausePipeline(ctx context.Context, pl *dfv1.Pipelin
// if drain is completed, or we have exceeded the pause deadline, mark pl as paused and scale down
if time.Now().After(pauseTimestamp.Add(time.Duration(pl.GetPauseGracePeriodSeconds())*time.Second)) || drainCompleted {
- _, err = r.scaleDownAllVertices(ctx, pl)
+ _, err = r.updateVerticeDesiredPhase(ctx, pl, allVertexFilter, dfv1.VertexPhasePaused)
if err != nil {
return true, err
}
@@ -945,19 +948,7 @@ func (r *pipelineReconciler) noSourceVertexPodsRunning(ctx context.Context, pl *
return len(pods.Items) == 0, nil
}
-func (r *pipelineReconciler) scaleDownSourceVertices(ctx context.Context, pl *dfv1.Pipeline) (bool, error) {
- return r.scaleVertex(ctx, pl, sourceVertexFilter, 0)
-}
-
-func (r *pipelineReconciler) scaleDownAllVertices(ctx context.Context, pl *dfv1.Pipeline) (bool, error) {
- return r.scaleVertex(ctx, pl, allVertexFilter, 0)
-}
-
-func (r *pipelineReconciler) scaleUpAllVertices(ctx context.Context, pl *dfv1.Pipeline) (bool, error) {
- return r.scaleVertex(ctx, pl, allVertexFilter, 1)
-}
-
-func (r *pipelineReconciler) scaleVertex(ctx context.Context, pl *dfv1.Pipeline, filter vertexFilterFunc, replicas int32) (bool, error) {
+func (r *pipelineReconciler) updateVerticeDesiredPhase(ctx context.Context, pl *dfv1.Pipeline, filter vertexFilterFunc, desiredPhase dfv1.VertexPhase) (bool, error) {
log := logging.FromContext(ctx)
existingVertices, err := r.findExistingVertices(ctx, pl)
if err != nil {
@@ -965,29 +956,14 @@ func (r *pipelineReconciler) scaleVertex(ctx context.Context, pl *dfv1.Pipeline,
}
isVertexPatched := false
for _, vertex := range existingVertices {
- if origin := *vertex.Spec.Replicas; origin != replicas && filter(vertex) {
- scaleTo := replicas
- // if replicas equals to 1, it means we are resuming a paused pipeline
- // in this case, if a vertex doesn't support auto-scaling, we scale up based on the vertex's configuration:
- // for a reducer, we scale up to the partition count
- // for a non-reducer, if min is set, we scale up to min
- if replicas == 1 {
- if vertex.IsReduceUDF() {
- scaleTo = int32(vertex.GetPartitionCount())
- } else {
- scaleTo = vertex.Spec.Scale.GetMinReplicas()
- if scaleTo < 1 {
- scaleTo = 1
- }
- }
- }
- patchJson := fmt.Sprintf(`{"spec":{"replicas":%d}}`, scaleTo)
+ if originPhase := vertex.Spec.Lifecycle.GetDesiredPhase(); filter(vertex) && originPhase != desiredPhase {
+ patchJson := fmt.Sprintf(`{"spec":{"lifecycle":{"desiredPhase":"%s"}}}`, desiredPhase)
err = r.client.Patch(ctx, &vertex, client.RawPatch(types.MergePatchType, []byte(patchJson)))
if err != nil && !apierrors.IsNotFound(err) {
return false, err
}
- log.Infow("Scaled vertex", zap.Int32("from", origin), zap.Int32("to", scaleTo), zap.String("vertex", vertex.Name))
- r.recorder.Eventf(pl, corev1.EventTypeNormal, "ScalingVertex", "Scaled vertex %s from %d to %d replicas", vertex.Name, origin, scaleTo)
+ log.Infow("Updated vertex desired phase", zap.String("from", string(originPhase)), zap.String("to", string(desiredPhase)), zap.String("vertex", vertex.Name))
+ r.recorder.Eventf(pl, corev1.EventTypeNormal, "UpdateVertexDesiredPhase", "Updated vertex %q desired phase from %s to %s", vertex.Name, originPhase, desiredPhase)
isVertexPatched = true
}
}
@@ -997,7 +973,7 @@ func (r *pipelineReconciler) scaleVertex(ctx context.Context, pl *dfv1.Pipeline,
func (r *pipelineReconciler) safeToDelete(ctx context.Context, pl *dfv1.Pipeline) (bool, error) {
// update the phase to deleting
pl.Status.MarkPhaseDeleting()
- vertexPatched, err := r.scaleDownSourceVertices(ctx, pl)
+ vertexPatched, err := r.updateVerticeDesiredPhase(ctx, pl, sourceVertexFilter, dfv1.VertexPhasePaused)
if err != nil {
return false, err
}
diff --git a/pkg/reconciler/pipeline/controller_test.go b/pkg/reconciler/pipeline/controller_test.go
index 565e919e8c..50cb4718ef 100644
--- a/pkg/reconciler/pipeline/controller_test.go
+++ b/pkg/reconciler/pipeline/controller_test.go
@@ -509,7 +509,7 @@ func Test_pauseAndResumePipeline(t *testing.T) {
assert.NoError(t, err)
v, err := r.findExistingVertices(ctx, testObj)
assert.NoError(t, err)
- assert.Equal(t, int32(0), *v[testObj.Name+"-"+testObj.Spec.Vertices[0].Name].Spec.Replicas)
+ assert.Equal(t, dfv1.VertexPhasePaused, v[testObj.Name+"-"+testObj.Spec.Vertices[0].Name].Spec.Lifecycle.GetDesiredPhase())
_, err = r.resumePipeline(ctx, testObj)
assert.NoError(t, err)
v, err = r.findExistingVertices(ctx, testObj)
diff --git a/pkg/reconciler/vertex/controller.go b/pkg/reconciler/vertex/controller.go
index e015d0d3a0..5a5b28c68f 100644
--- a/pkg/reconciler/vertex/controller.go
+++ b/pkg/reconciler/vertex/controller.go
@@ -166,8 +166,8 @@ func (r *vertexReconciler) reconcile(ctx context.Context, vertex *dfv1.Vertex) (
vertex.Status.MarkDeployed()
- // Mark it running before checking the status of the pods
- vertex.Status.MarkPhaseRunning()
+ // Mark desired phase before checking the status of the pods
+ vertex.Status.MarkPhase(vertex.Spec.Lifecycle.GetDesiredPhase(), "", "")
// Check status of the pods
var podList corev1.PodList
@@ -177,10 +177,7 @@ func (r *vertexReconciler) reconcile(ctx context.Context, vertex *dfv1.Vertex) (
return ctrl.Result{}, fmt.Errorf("failed to get pods of a vertex: %w", err)
}
readyPods := reconciler.NumOfReadyPods(podList)
- desiredReplicas := vertex.GetReplicas()
- if pipeline.GetDesiredPhase() == dfv1.PipelinePhasePaused {
- desiredReplicas = 0
- }
+ desiredReplicas := vertex.CalculateReplicas()
if readyPods > desiredReplicas { // It might happen in some corner cases, such as during rollout
readyPods = desiredReplicas
}
@@ -197,10 +194,7 @@ func (r *vertexReconciler) reconcile(ctx context.Context, vertex *dfv1.Vertex) (
func (r *vertexReconciler) orchestratePods(ctx context.Context, vertex *dfv1.Vertex, pipeline *dfv1.Pipeline, isbSvc *dfv1.InterStepBufferService) error {
log := logging.FromContext(ctx)
- desiredReplicas := vertex.GetReplicas()
- if pipeline.GetDesiredPhase() == dfv1.PipelinePhasePaused {
- desiredReplicas = 0
- }
+ desiredReplicas := vertex.CalculateReplicas()
vertex.Status.DesiredReplicas = uint32(desiredReplicas)
// Set metrics
diff --git a/pkg/reconciler/vertex/scaling/scaling.go b/pkg/reconciler/vertex/scaling/scaling.go
index 455ce9906b..792f7b0784 100644
--- a/pkg/reconciler/vertex/scaling/scaling.go
+++ b/pkg/reconciler/vertex/scaling/scaling.go
@@ -172,6 +172,9 @@ func (s *Scaler) scaleOneVertex(ctx context.Context, key string, worker int) err
log.Infof("Vertex not in Running phase, skip scaling.")
return nil
}
+ if vertex.Spec.Lifecycle.GetDesiredPhase() != dfv1.VertexPhaseRunning {
+ log.Infof("Vertex desired phase is not Running, skip scaling.")
+ }
if vertex.Status.UpdateHash != vertex.Status.CurrentHash && vertex.Status.UpdateHash != "" {
log.Info("Vertex is updating, skip scaling.")
return nil
diff --git a/rust/numaflow-models/src/models/mod.rs b/rust/numaflow-models/src/models/mod.rs
index 3783d1fc58..464fc3e7cc 100644
--- a/rust/numaflow-models/src/models/mod.rs
+++ b/rust/numaflow-models/src/models/mod.rs
@@ -188,6 +188,8 @@ pub mod vertex;
pub use self::vertex::Vertex;
pub mod vertex_instance;
pub use self::vertex_instance::VertexInstance;
+pub mod vertex_lifecycle;
+pub use self::vertex_lifecycle::VertexLifecycle;
pub mod vertex_limits;
pub use self::vertex_limits::VertexLimits;
pub mod vertex_list;
diff --git a/rust/numaflow-models/src/models/mono_vertex_lifecycle.rs b/rust/numaflow-models/src/models/mono_vertex_lifecycle.rs
index 90d5b97422..ca702a4923 100644
--- a/rust/numaflow-models/src/models/mono_vertex_lifecycle.rs
+++ b/rust/numaflow-models/src/models/mono_vertex_lifecycle.rs
@@ -18,7 +18,7 @@ limitations under the License.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct MonoVertexLifecycle {
- /// DesiredPhase used to bring the pipeline from current phase to desired phase
+ /// DesiredPhase used to bring the MonoVertex from current phase to desired phase
#[serde(rename = "desiredPhase", skip_serializing_if = "Option::is_none")]
pub desired_phase: Option,
}
diff --git a/rust/numaflow-models/src/models/vertex_lifecycle.rs b/rust/numaflow-models/src/models/vertex_lifecycle.rs
new file mode 100644
index 0000000000..755591e12b
--- /dev/null
+++ b/rust/numaflow-models/src/models/vertex_lifecycle.rs
@@ -0,0 +1,32 @@
+/*
+Copyright 2022 The Numaproj Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Code generated by Openapi Generator. DO NOT EDIT.
+
+#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
+pub struct VertexLifecycle {
+ /// DesiredPhase used to bring the vertex from current phase to desired phase
+ #[serde(rename = "desiredPhase", skip_serializing_if = "Option::is_none")]
+ pub desired_phase: Option,
+}
+
+impl VertexLifecycle {
+ pub fn new() -> VertexLifecycle {
+ VertexLifecycle {
+ desired_phase: None,
+ }
+ }
+}
diff --git a/rust/numaflow-models/src/models/vertex_spec.rs b/rust/numaflow-models/src/models/vertex_spec.rs
index 7583c1d6ac..34bdb2715c 100644
--- a/rust/numaflow-models/src/models/vertex_spec.rs
+++ b/rust/numaflow-models/src/models/vertex_spec.rs
@@ -51,6 +51,8 @@ pub struct VertexSpec {
skip_serializing_if = "Option::is_none"
)]
pub inter_step_buffer_service_name: Option,
+ #[serde(rename = "lifecycle", skip_serializing_if = "Option::is_none")]
+ pub lifecycle: Option>,
#[serde(rename = "limits", skip_serializing_if = "Option::is_none")]
pub limits: Option>,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
@@ -129,6 +131,7 @@ impl VertexSpec {
init_container_template: None,
init_containers: None,
inter_step_buffer_service_name: None,
+ lifecycle: None,
limits: None,
metadata: None,
name,
diff --git a/test/fixtures/util.go b/test/fixtures/util.go
index d2f27dc5f7..7808a031cb 100644
--- a/test/fixtures/util.go
+++ b/test/fixtures/util.go
@@ -308,7 +308,7 @@ func WaitForVertexPodRunning(kubeClient kubernetes.Interface, vertexClient flowp
if err != nil {
return fmt.Errorf("error getting vertex pod name: %w", err)
}
- ok = ok && len(podList.Items) > 0 && len(podList.Items) == vertexList.Items[0].GetReplicas() // pod number should equal to desired replicas
+ ok = ok && len(podList.Items) > 0 && len(podList.Items) == vertexList.Items[0].CalculateReplicas() // pod number should equal to desired replicas
for _, p := range podList.Items {
ok = ok && isPodReady(p)
}