diff --git a/api/client/client.go b/api/client/client.go index fd0cf5aeb3fa0..fea8f8a0bf5c1 100644 --- a/api/client/client.go +++ b/api/client/client.go @@ -2411,6 +2411,8 @@ func (c *Client) ListResources(ctx context.Context, req proto.ListResourcesReque resources[i] = respResource.GetKubeService() case types.KindWindowsDesktop: resources[i] = respResource.GetWindowsDesktop() + case types.KindKubernetesCluster: + resources[i] = respResource.GetKubeCluster() default: return nil, trace.NotImplemented("resource type %s does not support pagination", req.ResourceType) } diff --git a/api/client/proto/authservice.pb.go b/api/client/proto/authservice.pb.go index f8e22be1bafcd..d8c442424d4ca 100644 --- a/api/client/proto/authservice.pb.go +++ b/api/client/proto/authservice.pb.go @@ -9330,6 +9330,7 @@ type PaginatedResource struct { // *PaginatedResource_Node // *PaginatedResource_KubeService // *PaginatedResource_WindowsDesktop + // *PaginatedResource_KubeCluster Resource isPaginatedResource_Resource `protobuf_oneof:"resource"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -9390,12 +9391,16 @@ type PaginatedResource_KubeService struct { type PaginatedResource_WindowsDesktop struct { WindowsDesktop *types.WindowsDesktopV3 `protobuf:"bytes,5,opt,name=WindowsDesktop,proto3,oneof" json:"windows_desktop,omitempty"` } +type PaginatedResource_KubeCluster struct { + KubeCluster *types.KubernetesClusterV3 `protobuf:"bytes,6,opt,name=KubeCluster,proto3,oneof" json:"kube_cluster,omitempty"` +} func (*PaginatedResource_DatabaseServer) isPaginatedResource_Resource() {} func (*PaginatedResource_AppServer) isPaginatedResource_Resource() {} func (*PaginatedResource_Node) isPaginatedResource_Resource() {} func (*PaginatedResource_KubeService) isPaginatedResource_Resource() {} func (*PaginatedResource_WindowsDesktop) isPaginatedResource_Resource() {} +func (*PaginatedResource_KubeCluster) isPaginatedResource_Resource() {} func (m *PaginatedResource) GetResource() isPaginatedResource_Resource { if m != nil { @@ -9439,6 +9444,13 @@ func (m *PaginatedResource) GetWindowsDesktop() *types.WindowsDesktopV3 { return nil } +func (m *PaginatedResource) GetKubeCluster() *types.KubernetesClusterV3 { + if x, ok := m.GetResource().(*PaginatedResource_KubeCluster); ok { + return x.KubeCluster + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*PaginatedResource) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -9447,6 +9459,7 @@ func (*PaginatedResource) XXX_OneofWrappers() []interface{} { (*PaginatedResource_Node)(nil), (*PaginatedResource_KubeService)(nil), (*PaginatedResource_WindowsDesktop)(nil), + (*PaginatedResource_KubeCluster)(nil), } } @@ -10479,601 +10492,602 @@ func init() { func init() { proto.RegisterFile("authservice.proto", fileDescriptor_ce8bd90b12161215) } var fileDescriptor_ce8bd90b12161215 = []byte{ - // 9498 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0xbd, 0x4d, 0x6c, 0x1c, 0xc9, - 0x92, 0x18, 0xac, 0x6e, 0xfe, 0x35, 0x83, 0x3f, 0x6a, 0x25, 0x49, 0xb1, 0xd5, 0xa2, 0xd8, 0x9a, - 0xd2, 0x8c, 0x9e, 0x66, 0x76, 0x96, 0xd2, 0x90, 0xf3, 0xff, 0xa7, 0xd7, 0xdd, 0xa4, 0x48, 0x8e, - 0x28, 0x8a, 0x53, 0x4d, 0x52, 0xf3, 0xbd, 0x37, 0xfb, 0xf5, 0x14, 0xbb, 0x53, 0x64, 0x99, 0xcd, - 0xaa, 0x7e, 0x55, 0x45, 0x69, 0x68, 0xc3, 0x86, 0x7f, 0x76, 0x6d, 0xc3, 0xb0, 0x81, 0x3d, 0xd8, - 0x07, 0x9f, 0xbc, 0x58, 0xfb, 0x62, 0x1b, 0x7b, 0x31, 0x0c, 0xc3, 0x17, 0xfb, 0xe0, 0x8b, 0xc7, - 0x06, 0x0c, 0xfb, 0xb2, 0x30, 0xb0, 0x87, 0xde, 0xf5, 0x3b, 0xf2, 0x64, 0xc0, 0xb0, 0x01, 0xbf, - 0x93, 0x91, 0xbf, 0x95, 0x59, 0x55, 0xd9, 0x4d, 0x4a, 0xf2, 0xfa, 0x22, 0xb1, 0x22, 0x33, 0x22, - 0x33, 0x23, 0x22, 0x23, 0x23, 0x23, 0x33, 0xa3, 0xe1, 0x9a, 0x73, 0x1a, 0x1d, 0x85, 0x38, 0x78, - 0xe1, 0xb6, 0xf0, 0x52, 0x37, 0xf0, 0x23, 0x1f, 0x8d, 0xd0, 0xff, 0xca, 0xb3, 0x87, 0xfe, 0xa1, - 0x4f, 0xff, 0xbc, 0x4f, 0xfe, 0x62, 0x85, 0xe5, 0x9b, 0x87, 0xbe, 0x7f, 0xd8, 0xc1, 0xf7, 0xe9, - 0xd7, 0xc1, 0xe9, 0xf3, 0xfb, 0xf8, 0xa4, 0x1b, 0x9d, 0xf1, 0xc2, 0x4a, 0xb2, 0x30, 0x72, 0x4f, - 0x70, 0x18, 0x39, 0x27, 0x5d, 0x5e, 0x61, 0xa2, 0x85, 0x83, 0x28, 0xe4, 0x1f, 0x9f, 0x1c, 0xba, - 0xd1, 0xd1, 0xe9, 0xc1, 0x52, 0xcb, 0x3f, 0xb9, 0x7f, 0x18, 0x38, 0x2f, 0xdc, 0xc8, 0x89, 0x5c, - 0xdf, 0x73, 0x3a, 0xf7, 0x23, 0xdc, 0xc1, 0x5d, 0x3f, 0x88, 0xee, 0x3b, 0x5d, 0xf7, 0x7e, 0x74, - 0xd6, 0xc5, 0x21, 0xfb, 0x97, 0x23, 0xd6, 0x2f, 0x83, 0xf8, 0x12, 0x1f, 0x90, 0x21, 0x7a, 0xf2, - 0x8f, 0x57, 0x22, 0x12, 0x38, 0xdd, 0x2e, 0x0e, 0xe2, 0x3f, 0x38, 0x91, 0x87, 0x97, 0x21, 0x82, - 0x5f, 0x60, 0x2f, 0x12, 0xff, 0x31, 0x02, 0xd6, 0x3f, 0x9f, 0x85, 0x91, 0x35, 0x02, 0x40, 0x9f, - 0xc2, 0xf0, 0xee, 0x59, 0x17, 0x97, 0x72, 0xb7, 0x73, 0xf7, 0xa6, 0x97, 0x8b, 0xac, 0x7c, 0xe9, - 0x69, 0x17, 0x07, 0x94, 0x64, 0x0d, 0x9d, 0xf7, 0x2a, 0xd3, 0x84, 0xd0, 0xfb, 0xfe, 0x89, 0x1b, - 0x51, 0xae, 0xdb, 0x14, 0x03, 0x3d, 0x83, 0x69, 0x1b, 0x87, 0xfe, 0x69, 0xd0, 0xc2, 0x1b, 0xd8, - 0x69, 0xe3, 0xa0, 0x94, 0xbf, 0x9d, 0xbb, 0x37, 0xb1, 0x3c, 0xb7, 0xc4, 0x98, 0xa6, 0x17, 0xd6, - 0xae, 0x9f, 0xf7, 0x2a, 0x28, 0xe0, 0xb0, 0x98, 0xd8, 0xc6, 0x15, 0x3b, 0x41, 0x06, 0x7d, 0x0f, - 0x53, 0x75, 0x1c, 0x44, 0xd5, 0xd3, 0xe8, 0xc8, 0x0f, 0xdc, 0xe8, 0xac, 0x34, 0x44, 0xe9, 0x5e, - 0xe7, 0x74, 0xb5, 0xb2, 0xfd, 0xe5, 0xda, 0xc2, 0x79, 0xaf, 0x52, 0x22, 0x02, 0x6e, 0x3a, 0x02, - 0xaa, 0x91, 0xd7, 0x89, 0xa1, 0xef, 0x60, 0xb2, 0x41, 0xd8, 0xd5, 0xda, 0xf5, 0x8f, 0xb1, 0x17, - 0x96, 0x86, 0xb5, 0x4e, 0xab, 0x45, 0xfb, 0xcb, 0xb5, 0x9b, 0xe7, 0xbd, 0xca, 0x7c, 0x48, 0x61, - 0xcd, 0x88, 0x02, 0x35, 0xd2, 0x1a, 0x25, 0xf4, 0x03, 0x4c, 0xef, 0x04, 0xfe, 0x0b, 0x37, 0x74, - 0x7d, 0x8f, 0x82, 0x4a, 0x23, 0x94, 0xf6, 0x3c, 0xa7, 0xad, 0x17, 0xee, 0x2f, 0xd7, 0x6e, 0x9d, - 0xf7, 0x2a, 0x37, 0xba, 0x02, 0xca, 0x1a, 0xd0, 0x39, 0xa3, 0xa3, 0xa0, 0x5d, 0x98, 0xa8, 0x77, - 0x4e, 0xc3, 0x08, 0x07, 0xdb, 0xce, 0x09, 0x2e, 0x8d, 0x52, 0xf2, 0xb3, 0x82, 0x2f, 0x71, 0xc9, - 0xfe, 0x72, 0xad, 0x7c, 0xde, 0xab, 0x5c, 0x6f, 0x31, 0x50, 0xd3, 0x73, 0x4e, 0x74, 0x96, 0xab, - 0x64, 0xd0, 0x27, 0x30, 0xbc, 0x17, 0xe2, 0xa0, 0x54, 0xa0, 0xe4, 0xa6, 0x38, 0x39, 0x02, 0xda, - 0x5f, 0x66, 0xf2, 0x3f, 0x0d, 0x71, 0xa0, 0xe1, 0x53, 0x04, 0x82, 0x68, 0xfb, 0x1d, 0x5c, 0x1a, - 0xd7, 0x10, 0x09, 0x68, 0xff, 0x23, 0x86, 0x18, 0xf8, 0x1d, 0xbd, 0x61, 0x8a, 0x80, 0x36, 0x61, - 0x9c, 0xb4, 0x1c, 0x76, 0x9d, 0x16, 0x2e, 0x01, 0xc5, 0x2e, 0x72, 0x6c, 0x09, 0xaf, 0xcd, 0x9f, - 0xf7, 0x2a, 0x33, 0x9e, 0xf8, 0xd4, 0xa8, 0xc4, 0xd8, 0xe8, 0x21, 0x8c, 0x36, 0x70, 0xf0, 0x02, - 0x07, 0xa5, 0x09, 0x4a, 0xe7, 0xaa, 0x10, 0x24, 0x05, 0xee, 0x2f, 0xd7, 0x66, 0xcf, 0x7b, 0x95, - 0x62, 0x48, 0xbf, 0x34, 0x1a, 0x1c, 0x8d, 0x68, 0x9b, 0x8d, 0x5f, 0xe0, 0x20, 0xc4, 0xbb, 0xa7, - 0x9e, 0x87, 0x3b, 0xa5, 0x49, 0x4d, 0xdb, 0xb4, 0x32, 0xa1, 0x6d, 0x01, 0x03, 0x36, 0x23, 0x0a, - 0xd5, 0xb5, 0x4d, 0x43, 0x40, 0x47, 0x50, 0x64, 0x7f, 0xd5, 0x7d, 0xcf, 0xc3, 0x2d, 0x32, 0xa5, - 0x4a, 0x53, 0xb4, 0x81, 0x1b, 0xbc, 0x81, 0x64, 0xf1, 0xfe, 0x72, 0xad, 0x72, 0xde, 0xab, 0xdc, - 0x64, 0xb4, 0x9b, 0x2d, 0x59, 0xa0, 0x35, 0x93, 0xa2, 0x4a, 0xc6, 0x51, 0x6d, 0xb5, 0x70, 0x18, - 0xda, 0xf8, 0x57, 0xa7, 0x38, 0x8c, 0x4a, 0xd3, 0xda, 0x38, 0xb4, 0xb2, 0xfd, 0x15, 0x36, 0x0e, - 0x87, 0x02, 0x9b, 0x01, 0x83, 0xea, 0xe3, 0xd0, 0x10, 0xd0, 0x0e, 0x40, 0xb5, 0xdb, 0x6d, 0xe0, - 0x90, 0x28, 0x63, 0xe9, 0x2a, 0x25, 0x3d, 0xc3, 0x49, 0x3f, 0xc3, 0x07, 0xbc, 0x60, 0x7f, 0xb9, - 0x76, 0xe3, 0xbc, 0x57, 0x99, 0x73, 0xba, 0xdd, 0x66, 0xc8, 0x40, 0x1a, 0x51, 0x85, 0x06, 0xe3, - 0xfb, 0x89, 0x1f, 0x61, 0xae, 0x8a, 0xa5, 0x62, 0x82, 0xef, 0x4a, 0x99, 0xe8, 0x6f, 0x40, 0x81, - 0x4d, 0xae, 0xd6, 0x49, 0xbe, 0x2b, 0x08, 0x64, 0x2e, 0xae, 0x3a, 0x91, 0x73, 0xe0, 0x84, 0x98, - 0xab, 0xc7, 0x35, 0x6d, 0x2e, 0xea, 0x85, 0xfb, 0x2b, 0x6c, 0x2e, 0xb6, 0x39, 0xb4, 0x99, 0xa1, - 0x2f, 0x09, 0x7a, 0x84, 0x23, 0xf1, 0xc0, 0x4b, 0x68, 0x00, 0x47, 0x5e, 0xe2, 0x83, 0x6c, 0x8e, - 0xc4, 0x55, 0xd1, 0x06, 0x14, 0x9e, 0xe1, 0x03, 0x66, 0x39, 0x66, 0x28, 0xbd, 0x6b, 0x31, 0x3d, - 0x66, 0x33, 0x56, 0xd8, 0xac, 0x20, 0xd4, 0xd2, 0xd6, 0x42, 0x62, 0xa3, 0xdf, 0xcb, 0xc1, 0xbc, - 0x98, 0xe1, 0x38, 0x7a, 0xe9, 0x07, 0xc7, 0xae, 0x77, 0x58, 0xf7, 0xbd, 0xe7, 0xee, 0x61, 0x69, - 0x96, 0x52, 0xbe, 0x9d, 0x30, 0x1a, 0x89, 0x5a, 0xfb, 0xcb, 0xb5, 0x9f, 0x9d, 0xf7, 0x2a, 0x77, - 0xa4, 0x01, 0x91, 0xe5, 0x44, 0x21, 0x9f, 0xbb, 0x87, 0x5a, 0xc3, 0xa6, 0xb6, 0xd0, 0x5f, 0xcb, - 0xc1, 0x75, 0x3e, 0x3a, 0x1b, 0xb7, 0xfc, 0xa0, 0x1d, 0x77, 0x63, 0x8e, 0x76, 0xa3, 0x22, 0x67, - 0x6b, 0x56, 0xa5, 0xfd, 0xe5, 0xda, 0xdd, 0xf3, 0x5e, 0xc5, 0xe2, 0x8c, 0x6b, 0x06, 0xa2, 0x38, - 0xab, 0x13, 0x86, 0x86, 0x88, 0x26, 0x10, 0xe3, 0xbf, 0x13, 0xe0, 0xe7, 0x38, 0xc0, 0x5e, 0x0b, - 0x97, 0xae, 0x6b, 0x9a, 0xa0, 0x17, 0x0a, 0xab, 0x4c, 0x96, 0x92, 0x66, 0x57, 0x82, 0x75, 0x4d, - 0xd0, 0x51, 0xd0, 0xaf, 0x00, 0x71, 0x06, 0x54, 0x4f, 0xdb, 0x6e, 0xc4, 0x07, 0x38, 0x4f, 0x5b, - 0xb9, 0xa9, 0xf3, 0x59, 0xa9, 0xb0, 0xbf, 0x5c, 0xb3, 0xce, 0x7b, 0x95, 0x45, 0xc1, 0x62, 0x87, - 0x14, 0x65, 0x0d, 0x2c, 0x83, 0x38, 0xb1, 0xbc, 0x5b, 0x7e, 0xeb, 0xb8, 0x54, 0xd2, 0x2c, 0x2f, - 0x01, 0x09, 0x93, 0xdd, 0xf1, 0x5b, 0xc7, 0xba, 0xe5, 0x25, 0xa5, 0x28, 0x82, 0x19, 0x2e, 0x25, - 0x1b, 0x87, 0x51, 0xe0, 0x52, 0xdb, 0x11, 0x96, 0x6e, 0x50, 0x3a, 0x0b, 0xc2, 0x06, 0xa7, 0x6b, - 0xec, 0x7f, 0xc8, 0x7a, 0xcb, 0x15, 0xa1, 0x19, 0x28, 0x65, 0x5a, 0x33, 0x59, 0xe4, 0xd1, 0x5f, - 0x86, 0xb9, 0x67, 0xae, 0xd7, 0xf6, 0x5f, 0x86, 0xab, 0x38, 0x3c, 0x8e, 0xfc, 0x6e, 0x83, 0x79, - 0x7e, 0xa5, 0x32, 0x6d, 0x77, 0x51, 0xa8, 0x79, 0x56, 0x9d, 0xfd, 0x95, 0xda, 0x3b, 0xe7, 0xbd, - 0xca, 0x5b, 0x2f, 0x59, 0x61, 0xb3, 0xcd, 0x4a, 0x9b, 0xdc, 0x79, 0xd4, 0x1a, 0xcf, 0x6e, 0x85, - 0xa8, 0x80, 0x5e, 0x50, 0xba, 0xa9, 0xa9, 0x80, 0x5e, 0x28, 0x8c, 0x41, 0xa2, 0x41, 0x5d, 0x05, - 0x74, 0x14, 0xb4, 0x0e, 0x05, 0x61, 0x1e, 0x4a, 0x0b, 0xda, 0xd4, 0x15, 0xe0, 0xfd, 0x15, 0xe6, - 0x01, 0x09, 0x13, 0xa3, 0xcf, 0x5c, 0x51, 0x0b, 0x6d, 0xc1, 0x38, 0xb5, 0x91, 0xd4, 0x64, 0xdd, - 0xa2, 0x94, 0x90, 0x50, 0x54, 0x01, 0xdf, 0x5f, 0xa9, 0x95, 0xce, 0x7b, 0x95, 0x59, 0x66, 0x65, - 0x53, 0x86, 0x2a, 0x26, 0x80, 0x56, 0x60, 0xa8, 0xda, 0xed, 0x96, 0x16, 0x29, 0x9d, 0xc9, 0x98, - 0xce, 0xfe, 0x4a, 0xed, 0xda, 0x79, 0xaf, 0x32, 0xe5, 0x74, 0xf5, 0x61, 0x91, 0xda, 0x35, 0x80, - 0x82, 0x70, 0xc8, 0xbe, 0x19, 0x2e, 0x8c, 0x15, 0x0b, 0xd6, 0x06, 0x8c, 0x3c, 0x73, 0xa2, 0xd6, - 0x11, 0x7a, 0x08, 0x23, 0x8f, 0x5d, 0xaf, 0x1d, 0x96, 0x72, 0xb7, 0x87, 0xe8, 0x9a, 0xcd, 0xbc, - 0x45, 0x5a, 0x48, 0x0a, 0x6a, 0xf3, 0x3f, 0xf5, 0x2a, 0x57, 0xce, 0x7b, 0x95, 0xab, 0xc7, 0xa4, - 0x9a, 0xe2, 0x32, 0x32, 0x3c, 0xeb, 0x5f, 0xe6, 0x61, 0x5c, 0xd6, 0x46, 0x0b, 0x30, 0x4c, 0xfe, - 0xa7, 0xbe, 0xe7, 0x78, 0xad, 0x70, 0xde, 0xab, 0x0c, 0x13, 0x3c, 0x9b, 0x42, 0xd1, 0x32, 0x4c, - 0x6c, 0xf9, 0x4e, 0xbb, 0x81, 0x5b, 0x01, 0x8e, 0x42, 0xea, 0x5c, 0x16, 0x6a, 0xc5, 0xf3, 0x5e, - 0x65, 0xb2, 0xe3, 0x3b, 0xed, 0x66, 0xc8, 0xe0, 0xb6, 0x5a, 0x89, 0x50, 0xa4, 0x9e, 0xd1, 0x50, - 0x4c, 0x91, 0x78, 0x10, 0x36, 0x85, 0xa2, 0x6f, 0x60, 0xf4, 0x91, 0xdb, 0x21, 0x6b, 0xcd, 0x30, - 0xed, 0xff, 0x42, 0xb2, 0xff, 0x4b, 0xac, 0x78, 0xcd, 0x8b, 0x82, 0x33, 0xe6, 0x38, 0x3c, 0xa7, - 0x00, 0x65, 0x20, 0x9c, 0x02, 0x7a, 0x00, 0x63, 0x8d, 0xd3, 0x03, 0xda, 0xfd, 0x11, 0xda, 0x18, - 0x95, 0x6e, 0x78, 0x7a, 0xd0, 0x24, 0x43, 0x50, 0x10, 0x44, 0xb5, 0xf2, 0x67, 0x30, 0xa1, 0x90, - 0x47, 0x45, 0x18, 0x3a, 0xc6, 0x67, 0x6c, 0xec, 0x36, 0xf9, 0x13, 0xcd, 0xc2, 0xc8, 0x0b, 0xa7, - 0x73, 0x8a, 0xe9, 0x50, 0xc7, 0x6d, 0xf6, 0xf1, 0x79, 0xfe, 0xd3, 0x9c, 0xf5, 0x9f, 0x87, 0xa1, - 0xb8, 0xe1, 0x87, 0x11, 0xf1, 0x64, 0xe5, 0x92, 0x7c, 0x07, 0x46, 0x09, 0x6c, 0x73, 0x95, 0xf3, - 0x6f, 0xe2, 0xbc, 0x57, 0x19, 0x3b, 0xf2, 0xc3, 0xa8, 0xe9, 0xb6, 0x6d, 0x5e, 0x84, 0xde, 0x85, - 0xc2, 0xb6, 0xdf, 0xc6, 0x94, 0x29, 0x94, 0x6c, 0x6d, 0xea, 0xbc, 0x57, 0x19, 0xf7, 0xfc, 0x36, - 0xa6, 0x5e, 0xa1, 0x2d, 0x8b, 0xd1, 0x3e, 0xf7, 0xe6, 0x18, 0xef, 0x6a, 0x84, 0x77, 0xc4, 0x7d, - 0xfb, 0x4d, 0xaf, 0xf2, 0xf1, 0x25, 0xb6, 0x1b, 0x4b, 0x8d, 0xb3, 0x30, 0xc2, 0x27, 0x84, 0x12, - 0x77, 0xf6, 0x9e, 0xc1, 0x6c, 0xb5, 0xdd, 0x76, 0x19, 0xc6, 0x4e, 0xe0, 0x7a, 0x2d, 0xb7, 0xeb, - 0x74, 0x42, 0x2a, 0x83, 0xf1, 0xda, 0x9d, 0xf3, 0x5e, 0xa5, 0xe2, 0xc8, 0xf2, 0x66, 0x57, 0x56, - 0x50, 0x78, 0x98, 0x49, 0x00, 0xad, 0x40, 0x61, 0x75, 0xbb, 0x41, 0x5d, 0xc1, 0xd2, 0x08, 0x25, - 0x46, 0x17, 0xc7, 0xb6, 0x17, 0xd2, 0xa1, 0xa9, 0x04, 0x64, 0x45, 0xf4, 0x31, 0x4c, 0xee, 0x9c, - 0x1e, 0x74, 0xdc, 0xd6, 0xee, 0x56, 0xe3, 0x31, 0x3e, 0xa3, 0x3e, 0xf4, 0x24, 0x33, 0x99, 0x5d, - 0x0a, 0x6f, 0x46, 0x9d, 0xb0, 0x79, 0x8c, 0xcf, 0x6c, 0xad, 0x5e, 0x8c, 0xd7, 0x68, 0x6c, 0x10, - 0xbc, 0xb1, 0x14, 0x5e, 0x18, 0x1e, 0xa9, 0x78, 0xac, 0x1e, 0xba, 0x0f, 0xc0, 0x3c, 0x93, 0x6a, - 0xbb, 0xcd, 0x5c, 0xec, 0xf1, 0xda, 0xd5, 0xf3, 0x5e, 0x65, 0x82, 0xfb, 0x32, 0x4e, 0xbb, 0x1d, - 0xd8, 0x4a, 0x15, 0x54, 0x87, 0x82, 0xed, 0x33, 0x06, 0x73, 0xc7, 0xfa, 0xaa, 0x74, 0xac, 0x19, - 0x98, 0x6f, 0xa5, 0xf8, 0x97, 0x3a, 0x4a, 0x51, 0x03, 0x55, 0x60, 0x6c, 0xdb, 0xaf, 0x3b, 0xad, - 0x23, 0xe6, 0x5e, 0x17, 0x6a, 0x23, 0xe7, 0xbd, 0x4a, 0xee, 0xb7, 0x6d, 0x01, 0xb5, 0xfe, 0x49, - 0x01, 0x8a, 0xc4, 0x87, 0xd7, 0x34, 0xea, 0x7d, 0x18, 0x67, 0x7d, 0x7f, 0xcc, 0x15, 0x73, 0xb2, - 0x36, 0x7d, 0xde, 0xab, 0x00, 0x1f, 0x20, 0x19, 0x5c, 0x5c, 0x01, 0xdd, 0x83, 0x02, 0xa1, 0xe0, - 0xc5, 0xaa, 0x35, 0x79, 0xde, 0xab, 0x14, 0x4e, 0x39, 0xcc, 0x96, 0xa5, 0xa8, 0x01, 0x63, 0x6b, - 0x3f, 0x76, 0xdd, 0x00, 0x87, 0x7c, 0x2b, 0x57, 0x5e, 0x62, 0x3b, 0xf6, 0x25, 0xb1, 0x63, 0x5f, - 0xda, 0x15, 0x3b, 0xf6, 0xda, 0x2d, 0x6e, 0x42, 0xae, 0x61, 0x86, 0x12, 0x8f, 0xef, 0xf7, 0xff, - 0xb4, 0x92, 0xb3, 0x05, 0x25, 0xf4, 0x3e, 0x8c, 0x3e, 0xf2, 0x83, 0x13, 0x27, 0xa2, 0x3b, 0xb8, - 0x71, 0x3e, 0x5d, 0x29, 0x44, 0x9b, 0xae, 0x14, 0x82, 0x1e, 0xc1, 0xb4, 0xed, 0x9f, 0x46, 0x78, - 0xd7, 0x17, 0xee, 0x26, 0x9b, 0xb5, 0x8b, 0xe7, 0xbd, 0x4a, 0x39, 0x20, 0x25, 0xcd, 0xc8, 0x4f, - 0x3b, 0x96, 0x76, 0x02, 0x0b, 0xad, 0xc1, 0xb4, 0xe6, 0x18, 0x87, 0xa5, 0x51, 0xaa, 0x79, 0xcc, - 0x69, 0xd0, 0xdc, 0x69, 0x55, 0xff, 0x12, 0x48, 0x68, 0x1b, 0xae, 0x3d, 0x3e, 0x3d, 0xc0, 0x81, - 0x87, 0x23, 0x1c, 0x8a, 0x1e, 0x8d, 0xd1, 0x1e, 0xdd, 0x3e, 0xef, 0x55, 0x16, 0x8e, 0x65, 0x61, - 0x46, 0x9f, 0xd2, 0xa8, 0x08, 0xc3, 0x55, 0xde, 0x51, 0xb9, 0x0c, 0x15, 0xb8, 0x3b, 0xcd, 0x4c, - 0x5c, 0xa2, 0xb4, 0x76, 0x87, 0x73, 0xf9, 0xa6, 0x1c, 0x7b, 0x7a, 0x61, 0xb2, 0x93, 0x34, 0xc9, - 0x8c, 0x93, 0xd6, 0x64, 0x9c, 0xf6, 0x96, 0x6d, 0xd2, 0x84, 0x35, 0x51, 0x75, 0x51, 0xda, 0x95, - 0x2d, 0x18, 0xd9, 0x0b, 0x9d, 0x43, 0xa6, 0x89, 0xd3, 0xcb, 0x6f, 0xf1, 0x1e, 0x25, 0xb5, 0x8f, - 0xee, 0xeb, 0x69, 0xc5, 0xda, 0x0c, 0x59, 0x41, 0x4e, 0xc9, 0x9f, 0xea, 0x0a, 0x42, 0xcb, 0xd0, - 0xb7, 0x00, 0xbc, 0x57, 0x64, 0x65, 0x9b, 0xe0, 0x6b, 0xad, 0x36, 0x48, 0xb2, 0x88, 0x2d, 0xf2, - 0xf1, 0x5d, 0x97, 0xe3, 0xd3, 0xd6, 0x3a, 0x5b, 0x21, 0x82, 0x1e, 0xc2, 0x24, 0x35, 0x57, 0x42, - 0xa2, 0x93, 0x54, 0xa2, 0x74, 0xeb, 0x4f, 0x0c, 0x60, 0x96, 0x3c, 0x35, 0x04, 0xf4, 0x57, 0x60, - 0x8e, 0x93, 0x4b, 0xb8, 0x19, 0x53, 0xdc, 0xad, 0xd2, 0xba, 0xa7, 0xd7, 0xa9, 0xbd, 0xc7, 0x7b, - 0x6a, 0xc9, 0x9e, 0x1a, 0x1d, 0x0f, 0x3b, 0xbb, 0x19, 0xeb, 0x3b, 0x18, 0x97, 0xcc, 0x43, 0x63, - 0x30, 0x54, 0xed, 0x74, 0x8a, 0x57, 0xc8, 0x1f, 0x8d, 0xc6, 0x46, 0x31, 0x87, 0xa6, 0x01, 0x62, - 0x8d, 0x29, 0xe6, 0xd1, 0x64, 0xec, 0xac, 0x14, 0x87, 0x68, 0xfd, 0x6e, 0xb7, 0x38, 0x8c, 0x50, - 0xd2, 0x4b, 0x2a, 0x8e, 0x58, 0xff, 0x35, 0x97, 0x52, 0x2c, 0xb2, 0x2e, 0x73, 0xc7, 0x8a, 0xea, - 0x01, 0x5b, 0x7c, 0xe8, 0xba, 0xcc, 0x5d, 0x32, 0xb6, 0xb0, 0xa8, 0x95, 0x88, 0xad, 0xd8, 0x21, - 0x3c, 0x68, 0xf9, 0x1d, 0xd5, 0x56, 0x74, 0x39, 0xcc, 0x96, 0xa5, 0x68, 0x59, 0xb1, 0x2a, 0x43, - 0xf1, 0xc2, 0x2a, 0xac, 0x8a, 0xaa, 0x61, 0xd2, 0xbe, 0x2c, 0x2b, 0xde, 0xd7, 0x70, 0x8c, 0x93, - 0xa1, 0xd1, 0xb2, 0x9e, 0x75, 0x6a, 0x90, 0x19, 0xfa, 0x22, 0xe5, 0x2c, 0xb2, 0x11, 0x52, 0xa5, - 0x4c, 0x88, 0x26, 0xe5, 0x07, 0x56, 0x60, 0x64, 0xcb, 0x3f, 0x74, 0x3d, 0x3e, 0xc8, 0xf1, 0xf3, - 0x5e, 0x65, 0xa4, 0x43, 0x00, 0x36, 0x83, 0x5b, 0xff, 0x3b, 0xa7, 0xea, 0xaf, 0xf4, 0x57, 0x72, - 0x99, 0xfe, 0xca, 0xfb, 0x30, 0xce, 0x37, 0x35, 0x9b, 0xab, 0x9c, 0x22, 0xb5, 0xc7, 0x62, 0x3f, - 0xe4, 0xb6, 0xed, 0xb8, 0x02, 0x59, 0x69, 0x98, 0x71, 0xa6, 0x2b, 0xcd, 0x50, 0xbc, 0xd2, 0x70, - 0xf3, 0xcd, 0x56, 0x9a, 0xb8, 0x0a, 0x11, 0xa4, 0x1a, 0x4d, 0x1a, 0x8e, 0x05, 0xa9, 0xc6, 0x8d, - 0xf4, 0x58, 0xd1, 0xe7, 0x00, 0xd5, 0x67, 0x0d, 0xa2, 0xfd, 0x55, 0x7b, 0x9b, 0xdb, 0x50, 0x1a, - 0x6a, 0x72, 0x5e, 0x86, 0x4d, 0x3a, 0x5b, 0x9c, 0x40, 0x5d, 0x92, 0x94, 0xda, 0x56, 0x07, 0xa6, - 0xd7, 0x71, 0x44, 0xa4, 0x26, 0x16, 0x9c, 0xfe, 0xc3, 0xff, 0x12, 0x26, 0x9e, 0xb9, 0xd1, 0x91, - 0xee, 0x00, 0xd2, 0xc6, 0x5e, 0xba, 0xd1, 0x91, 0x70, 0x00, 0x95, 0xc6, 0xd4, 0xea, 0xd6, 0x1a, - 0x5c, 0xe5, 0xad, 0xc9, 0xf5, 0x6d, 0x59, 0x27, 0x98, 0x8b, 0x3d, 0x4a, 0x95, 0xa0, 0x4e, 0x06, - 0x27, 0x0d, 0x3e, 0x6a, 0xa4, 0x96, 0x00, 0xe6, 0x0d, 0x9b, 0x22, 0x2d, 0x54, 0x71, 0x12, 0x4b, - 0x43, 0x72, 0x41, 0xb0, 0xf6, 0x60, 0x6a, 0xa7, 0x73, 0x7a, 0xe8, 0x7a, 0x44, 0x41, 0x1b, 0xf8, - 0x57, 0x68, 0x15, 0x20, 0x06, 0xf0, 0x16, 0x44, 0x78, 0x21, 0x2e, 0xd8, 0x5f, 0xe1, 0x22, 0xa6, - 0x10, 0x6a, 0xc3, 0x6d, 0x05, 0xcf, 0xfa, 0x3b, 0x43, 0x80, 0x78, 0x1b, 0x8d, 0xc8, 0x89, 0x70, - 0x03, 0x47, 0x64, 0xb9, 0xb8, 0x0e, 0x79, 0xe9, 0x36, 0x8e, 0x9e, 0xf7, 0x2a, 0x79, 0xb7, 0x6d, - 0xe7, 0x37, 0x57, 0xd1, 0x87, 0x30, 0x42, 0xab, 0x51, 0x5e, 0x4f, 0xcb, 0xf6, 0x54, 0x0a, 0x4c, - 0xa7, 0x43, 0xf2, 0xa7, 0xcd, 0x2a, 0xa3, 0x8f, 0x60, 0x7c, 0x15, 0x77, 0xf0, 0xa1, 0x13, 0xf9, - 0x42, 0xef, 0x98, 0x23, 0x26, 0x80, 0x8a, 0x88, 0xe2, 0x9a, 0x64, 0x01, 0xb7, 0xb1, 0x13, 0xfa, - 0x9e, 0xba, 0x80, 0x07, 0x14, 0xa2, 0x2e, 0xe0, 0xac, 0x0e, 0xfa, 0x07, 0x39, 0x98, 0xa8, 0x7a, - 0x1e, 0x77, 0x70, 0x42, 0x1e, 0x5a, 0x9d, 0x5b, 0x92, 0x91, 0xf1, 0x2d, 0xe7, 0x00, 0x77, 0xf6, - 0x89, 0xcb, 0x1c, 0xd6, 0xbe, 0x27, 0x36, 0xf5, 0x4f, 0x7a, 0x95, 0x2f, 0x5e, 0x25, 0xd8, 0xbe, - 0xb4, 0x1b, 0x38, 0x6e, 0x14, 0xd2, 0x38, 0x56, 0xdc, 0xa0, 0xaa, 0x66, 0x4a, 0x3f, 0xd0, 0xbb, - 0x30, 0x42, 0xf4, 0x5b, 0xf8, 0x01, 0x54, 0xd8, 0x64, 0x1e, 0x68, 0x9b, 0x1f, 0x5a, 0xc3, 0xba, - 0x03, 0xe3, 0x9c, 0x93, 0x9b, 0xab, 0x26, 0x11, 0x58, 0xab, 0x70, 0x8b, 0x7a, 0x71, 0x98, 0x68, - 0x2e, 0x8d, 0xe6, 0x70, 0x4d, 0x8c, 0xdd, 0xfe, 0x31, 0x0a, 0x96, 0xd8, 0x54, 0x20, 0x34, 0x1a, - 0x64, 0x8b, 0x12, 0xab, 0x0e, 0x0b, 0xeb, 0x38, 0xb2, 0x71, 0x88, 0xa3, 0x1d, 0x27, 0x0c, 0x5f, - 0xfa, 0x41, 0x9b, 0x16, 0x5d, 0x8a, 0xc8, 0xef, 0xe6, 0xa0, 0x52, 0x0f, 0x30, 0x91, 0xb4, 0x91, - 0x50, 0xff, 0x19, 0xbc, 0xc0, 0x0f, 0x17, 0xf2, 0x71, 0x29, 0xe1, 0x35, 0x3f, 0x40, 0x78, 0x07, - 0x86, 0x76, 0x77, 0xb7, 0xa8, 0xc6, 0x0c, 0x51, 0xc6, 0x0d, 0x45, 0x51, 0xe7, 0x37, 0xbd, 0x4a, - 0x61, 0xf5, 0x94, 0x1d, 0x3e, 0xd8, 0xa4, 0xdc, 0x7a, 0x0e, 0x73, 0x36, 0xf6, 0xf0, 0x4b, 0xe7, - 0xa0, 0x83, 0x35, 0x77, 0xb5, 0x02, 0x23, 0x2c, 0x58, 0x96, 0x1a, 0x02, 0x83, 0xeb, 0xfe, 0x6c, - 0x7e, 0x80, 0x3f, 0x6b, 0xfd, 0x41, 0x0e, 0x8a, 0x6c, 0xb8, 0x35, 0x3f, 0xba, 0xd8, 0xf8, 0xf8, - 0x08, 0xf2, 0xfd, 0x47, 0x80, 0xee, 0xc6, 0xdc, 0x1e, 0x8a, 0x17, 0x3f, 0xda, 0x55, 0x62, 0xc3, - 0x45, 0x21, 0x19, 0x10, 0xd3, 0x25, 0xb6, 0x35, 0xa2, 0x03, 0xa2, 0xba, 0x24, 0x34, 0xe8, 0x8f, - 0xf2, 0x70, 0x4d, 0xe9, 0x62, 0xd8, 0xf5, 0xbd, 0x10, 0x93, 0x3d, 0x1e, 0x51, 0x16, 0xa5, 0x9f, - 0x74, 0x8f, 0x47, 0x96, 0xcc, 0x66, 0xec, 0x89, 0xd3, 0x0e, 0xbf, 0x4b, 0x36, 0x17, 0x9d, 0xd4, - 0x76, 0x90, 0x1a, 0x6e, 0x56, 0x55, 0x14, 0x5f, 0xb8, 0xd3, 0xf7, 0xa1, 0x40, 0xff, 0x24, 0x8c, - 0x18, 0x36, 0x33, 0x42, 0x56, 0x42, 0x2e, 0xc0, 0x37, 0xbe, 0xeb, 0x3d, 0xc1, 0xd1, 0x91, 0x2f, - 0x36, 0xcf, 0x9b, 0xc4, 0x88, 0xfd, 0x05, 0xdf, 0xf5, 0x9a, 0x27, 0x14, 0x7c, 0xd9, 0x4d, 0x67, - 0x4c, 0xd0, 0x56, 0x88, 0x5b, 0x0f, 0xa0, 0x48, 0xec, 0xcd, 0xc5, 0x25, 0x6a, 0xcd, 0x02, 0x5a, - 0xc7, 0x51, 0xcd, 0xd7, 0x16, 0x0e, 0x6b, 0x0a, 0x26, 0x76, 0x5c, 0xef, 0x50, 0x7c, 0xfe, 0xab, - 0x3c, 0x4c, 0xb2, 0x6f, 0x2e, 0x81, 0xc4, 0x4a, 0x9a, 0xbb, 0xc8, 0x4a, 0xfa, 0x29, 0x4c, 0xf1, - 0x70, 0x0e, 0x0e, 0x68, 0x08, 0x99, 0xc9, 0x83, 0xee, 0x28, 0x59, 0x54, 0xa7, 0xf9, 0x82, 0x95, - 0xd8, 0x7a, 0x45, 0xb4, 0x05, 0xd3, 0x0c, 0xf0, 0x08, 0x3b, 0xd1, 0x69, 0xbc, 0xab, 0xba, 0xca, - 0xfd, 0x4c, 0x01, 0x66, 0xc6, 0x88, 0xd3, 0x7a, 0xce, 0x81, 0x76, 0x02, 0x17, 0x3d, 0x84, 0xab, - 0x3b, 0x81, 0xff, 0xe3, 0x99, 0xe2, 0x3b, 0x30, 0x7b, 0x3c, 0x47, 0x36, 0x61, 0x5d, 0x52, 0xd4, - 0x54, 0x3d, 0x88, 0x64, 0x6d, 0xa2, 0x53, 0x9b, 0x61, 0xcd, 0x0f, 0x5c, 0xef, 0x90, 0x4a, 0xb3, - 0xc0, 0x74, 0xca, 0x0d, 0x9b, 0x07, 0x14, 0x68, 0xcb, 0x62, 0xeb, 0x0f, 0x87, 0xa0, 0x20, 0x1b, - 0x5e, 0x52, 0xdd, 0x52, 0xbe, 0x18, 0xd3, 0xe9, 0x19, 0x6f, 0x7e, 0x6c, 0xa5, 0x06, 0xba, 0xc1, - 0x82, 0x59, 0xcc, 0x0d, 0x18, 0x23, 0x3a, 0xe6, 0x74, 0xbb, 0x34, 0x64, 0x45, 0x8c, 0xe9, 0x6a, - 0x8d, 0x72, 0xa1, 0xc0, 0x8c, 0x69, 0xfb, 0xc0, 0xce, 0xaf, 0xd6, 0x88, 0xac, 0x9f, 0x6e, 0xae, - 0xd6, 0xe9, 0x80, 0x0a, 0x4c, 0xd6, 0xbe, 0xdb, 0x6e, 0xd9, 0x14, 0x4a, 0x4a, 0x1b, 0xd5, 0x27, - 0x5b, 0xbc, 0xd3, 0xb4, 0x34, 0x74, 0x4e, 0x3a, 0x36, 0x85, 0x12, 0x3f, 0x90, 0xad, 0xd1, 0x75, - 0xdf, 0x8b, 0x02, 0xbf, 0x13, 0xd2, 0x50, 0x41, 0x41, 0x5b, 0xce, 0x5b, 0xbc, 0xc8, 0x4e, 0x54, - 0x45, 0xcf, 0x60, 0xbe, 0xda, 0x7e, 0xe1, 0x78, 0x2d, 0xdc, 0x66, 0x25, 0xcf, 0xfc, 0xe0, 0xf8, - 0x79, 0xc7, 0x7f, 0x19, 0xd2, 0x5d, 0x5e, 0x81, 0xef, 0x17, 0x79, 0x95, 0x26, 0x27, 0xf7, 0x52, - 0x54, 0xb2, 0x4d, 0xd8, 0xc4, 0x44, 0xd4, 0x3b, 0xfe, 0x69, 0x9b, 0x6e, 0xef, 0x0a, 0xcc, 0x44, - 0xb4, 0x08, 0xc0, 0x66, 0x70, 0xc2, 0xa5, 0x8d, 0xc6, 0x13, 0xba, 0x3b, 0xe3, 0x5c, 0x3a, 0x0a, - 0x4f, 0x6c, 0x02, 0x43, 0xef, 0xc0, 0x98, 0x70, 0x69, 0x59, 0x50, 0x80, 0x46, 0x8c, 0x84, 0x2b, - 0x2b, 0xca, 0xac, 0x0f, 0xe0, 0x1a, 0x9b, 0x34, 0x17, 0xf6, 0xd4, 0xac, 0x1d, 0x80, 0x06, 0x3e, - 0x71, 0xba, 0x47, 0x3e, 0x11, 0x6c, 0x4d, 0xfd, 0xe2, 0xae, 0x0b, 0x92, 0x81, 0x7e, 0x5e, 0xb0, - 0xbf, 0x22, 0x7c, 0x59, 0x51, 0xd3, 0x56, 0xb0, 0xac, 0xff, 0x94, 0x07, 0x44, 0x03, 0xde, 0x8d, - 0x28, 0xc0, 0xce, 0x89, 0xe8, 0xc6, 0x67, 0x30, 0xc9, 0xec, 0x1f, 0x03, 0xd3, 0xee, 0x10, 0xbf, - 0x88, 0x29, 0xbe, 0x5a, 0xb4, 0x71, 0xc5, 0xd6, 0xaa, 0x12, 0x54, 0x1b, 0x87, 0xa7, 0x27, 0x02, - 0x35, 0xaf, 0xa1, 0xaa, 0x45, 0x04, 0x55, 0xfd, 0x46, 0x0f, 0x61, 0xba, 0xee, 0x9f, 0x74, 0x09, - 0x4f, 0x38, 0xf2, 0x10, 0xf7, 0x3e, 0x78, 0xbb, 0x5a, 0xe1, 0xc6, 0x15, 0x3b, 0x51, 0x1d, 0x6d, - 0xc3, 0xcc, 0xa3, 0xce, 0x69, 0x78, 0x54, 0xf5, 0xda, 0xf5, 0x8e, 0x1f, 0x0a, 0x2a, 0xc3, 0x3c, - 0x18, 0xc2, 0xa7, 0x6d, 0xba, 0xc6, 0xc6, 0x15, 0x3b, 0x0b, 0x11, 0xbd, 0xc3, 0x4f, 0xef, 0xb9, - 0x17, 0x34, 0xb5, 0xc4, 0x0f, 0xf7, 0x9f, 0x7a, 0xf8, 0xe9, 0xf3, 0x8d, 0x2b, 0x36, 0x2b, 0xad, - 0x8d, 0xc3, 0x98, 0x30, 0x59, 0xf7, 0xe1, 0x9a, 0xc2, 0x4e, 0xe2, 0xb7, 0x9d, 0x86, 0xa8, 0x0c, - 0x85, 0xbd, 0x6e, 0xc7, 0x77, 0xda, 0xc2, 0x0d, 0xb0, 0xe5, 0xb7, 0xf5, 0xbe, 0xce, 0x69, 0xb4, - 0xa0, 0xee, 0x45, 0x58, 0xe5, 0x18, 0x60, 0x6d, 0xe8, 0xcc, 0xed, 0x5f, 0x5b, 0x6b, 0x37, 0x9f, - 0x68, 0xb7, 0x98, 0xe4, 0xb5, 0x35, 0x97, 0xc9, 0x3c, 0xeb, 0x31, 0x75, 0x71, 0xaa, 0xdd, 0x6e, - 0xc7, 0x6d, 0xd1, 0x95, 0x81, 0xd9, 0x35, 0xe9, 0x1d, 0xfc, 0x96, 0x7a, 0xc6, 0xac, 0x2c, 0x8b, - 0xf2, 0x44, 0x59, 0x39, 0x45, 0xb6, 0x7e, 0x01, 0xb7, 0x0c, 0xc4, 0xb8, 0x85, 0xff, 0x0c, 0xc6, - 0x38, 0x28, 0xa1, 0xd0, 0x6a, 0x54, 0x9e, 0xce, 0xa7, 0x90, 0x63, 0x8a, 0xfa, 0xd6, 0x77, 0xb0, - 0xb8, 0xd7, 0x0d, 0x71, 0x90, 0x26, 0x2f, 0xba, 0xfa, 0xb1, 0x3c, 0xc3, 0xce, 0x19, 0x23, 0xfe, - 0x70, 0xde, 0xab, 0x8c, 0x32, 0xda, 0xe2, 0xe8, 0xda, 0xfa, 0xfd, 0x1c, 0x2c, 0xb2, 0xa9, 0x6a, - 0x24, 0x7d, 0x19, 0x2e, 0x28, 0x11, 0xe5, 0xbc, 0x39, 0xa2, 0xdc, 0x37, 0xc4, 0x6e, 0x7d, 0x0b, - 0x16, 0xef, 0x51, 0xa7, 0xf3, 0x86, 0x64, 0xf3, 0xd7, 0x73, 0x30, 0xcb, 0x84, 0xf3, 0x1a, 0x54, - 0xd0, 0x57, 0x30, 0xdd, 0x38, 0x76, 0xbb, 0xfb, 0x4e, 0xc7, 0x6d, 0xb3, 0xe0, 0x2a, 0x5b, 0x48, - 0xe6, 0xe8, 0x1a, 0x79, 0xec, 0x76, 0x9b, 0x2f, 0xe2, 0xa2, 0x9c, 0x9d, 0xa8, 0x6c, 0x3d, 0x85, - 0xb9, 0x44, 0x1f, 0xb8, 0x62, 0x7c, 0x9c, 0x54, 0x8c, 0xd4, 0x05, 0x84, 0x6c, 0xad, 0x78, 0x02, - 0xd7, 0xa5, 0x56, 0xe8, 0x22, 0x5b, 0x49, 0x68, 0x43, 0x8a, 0x60, 0x96, 0x2a, 0xb4, 0xe0, 0xba, - 0xd4, 0x84, 0xd7, 0xd0, 0x00, 0x21, 0xdc, 0x7c, 0xa6, 0x70, 0x37, 0xa1, 0xac, 0x0a, 0xf7, 0x75, - 0x84, 0xfa, 0x1f, 0x73, 0x30, 0xbf, 0x8e, 0x3d, 0x1c, 0x38, 0xb4, 0xcb, 0xda, 0x9e, 0x42, 0x0d, - 0x2c, 0xe7, 0xfa, 0x06, 0x96, 0xa5, 0xc3, 0x9c, 0xcf, 0x76, 0x98, 0xc9, 0x6a, 0xb8, 0x67, 0x6f, - 0x72, 0x5d, 0xa5, 0xab, 0xe1, 0x69, 0xe0, 0xda, 0x04, 0x86, 0x36, 0xe3, 0xa0, 0xf4, 0xf0, 0xc0, - 0xa0, 0xf4, 0x0c, 0x0f, 0xd2, 0x8d, 0xf1, 0xa0, 0xb4, 0x16, 0x8a, 0xb6, 0xbe, 0x80, 0x52, 0x7a, - 0x2c, 0x5c, 0x3f, 0x06, 0x6d, 0x52, 0xac, 0xd5, 0x58, 0xbb, 0xf9, 0xf9, 0xb5, 0x0c, 0xc6, 0x27, - 0x4c, 0x68, 0x9f, 0xe0, 0x8f, 0xd5, 0x88, 0xf5, 0x93, 0x53, 0xe1, 0xed, 0x7f, 0x4e, 0xf4, 0x93, - 0xdd, 0x51, 0xc8, 0x99, 0xef, 0x28, 0x70, 0x1d, 0x65, 0xa8, 0x02, 0xc1, 0x7a, 0x06, 0xd7, 0x35, - 0xa2, 0xb1, 0xd6, 0x7f, 0x05, 0x05, 0x01, 0x4b, 0xc4, 0x26, 0x34, 0xb2, 0x54, 0x6e, 0xa1, 0x40, - 0x96, 0x28, 0xd6, 0x9f, 0xe5, 0x60, 0x9e, 0xad, 0x2e, 0xe9, 0x71, 0x5f, 0x5c, 0xfa, 0x7f, 0x2e, - 0x01, 0xaf, 0x07, 0x19, 0x01, 0x2f, 0x8a, 0xa2, 0x06, 0xbc, 0xd4, 0x30, 0xd7, 0x37, 0xc3, 0x85, - 0x7c, 0x71, 0xc8, 0xda, 0x87, 0x52, 0x7a, 0x84, 0x6f, 0x40, 0x26, 0xeb, 0x30, 0xaf, 0x4c, 0xf4, - 0xd7, 0xd6, 0x98, 0xb8, 0xc5, 0x37, 0xa8, 0x31, 0x71, 0xc5, 0x37, 0xa6, 0x31, 0x9b, 0x30, 0xc3, - 0x08, 0xeb, 0xb3, 0x6b, 0x59, 0x9d, 0x5d, 0x99, 0xf7, 0x65, 0xd2, 0x13, 0xee, 0x09, 0x9d, 0x70, - 0xa2, 0x4a, 0xdc, 0xc3, 0x8f, 0x60, 0x94, 0x5f, 0x09, 0x64, 0xfd, 0xcb, 0x20, 0x46, 0x2d, 0x2f, - 0xbb, 0x07, 0x68, 0xf3, 0xca, 0x56, 0x89, 0x0e, 0x99, 0xec, 0x53, 0x78, 0xc0, 0x5b, 0xee, 0x1a, - 0xbf, 0x25, 0x26, 0x2e, 0x51, 0xf2, 0x9a, 0xab, 0xc6, 0x53, 0x28, 0xb1, 0x55, 0x43, 0xa1, 0xfa, - 0x5a, 0xeb, 0xc6, 0xa7, 0x50, 0x62, 0xea, 0x94, 0x41, 0xb0, 0xff, 0x62, 0xb0, 0x08, 0x0b, 0x72, - 0x31, 0xc8, 0x1a, 0xfd, 0xdf, 0xca, 0xc1, 0x8d, 0x75, 0x1c, 0xe9, 0xb7, 0xa6, 0xfe, 0x9f, 0xac, - 0xdd, 0xdf, 0x43, 0x39, 0xab, 0x23, 0x5c, 0x14, 0x5f, 0x27, 0x45, 0x61, 0xbc, 0x22, 0x96, 0x2d, - 0x92, 0x5f, 0xc0, 0x4d, 0x26, 0x12, 0xbd, 0xbe, 0x18, 0xe8, 0x17, 0x09, 0xa9, 0x18, 0xa9, 0x67, - 0x49, 0xe7, 0xef, 0xe5, 0xe0, 0x26, 0x63, 0x72, 0x36, 0xf1, 0x3f, 0x6f, 0xef, 0x6e, 0x1b, 0x2a, - 0x52, 0xe6, 0x6f, 0x40, 0xb0, 0x56, 0x0b, 0x90, 0x20, 0x53, 0x6f, 0xd8, 0x82, 0xc4, 0x0d, 0x18, - 0xaa, 0x37, 0x6c, 0x7e, 0x00, 0x4d, 0x17, 0xed, 0x56, 0x18, 0xd8, 0x04, 0x96, 0xb4, 0xe0, 0xf9, - 0x0b, 0x58, 0x70, 0xeb, 0x97, 0x30, 0xa3, 0x35, 0xc2, 0xe5, 0xbe, 0x00, 0xc3, 0x75, 0x1c, 0x44, - 0xbc, 0x19, 0x3a, 0xd2, 0x16, 0x0e, 0x22, 0x9b, 0x42, 0xd1, 0x5d, 0x18, 0xab, 0x57, 0x69, 0xb4, - 0x91, 0xfa, 0x16, 0x93, 0xcc, 0x30, 0xb5, 0x9c, 0x26, 0xbd, 0x49, 0x6e, 0x8b, 0x42, 0xeb, 0xdf, - 0xe6, 0x14, 0xea, 0x04, 0x7d, 0xf0, 0x18, 0x3e, 0x20, 0xdb, 0x63, 0xc2, 0x33, 0x65, 0x08, 0xd7, - 0xc8, 0xb2, 0xc5, 0x23, 0x35, 0x6c, 0xe5, 0xb3, 0x95, 0x4a, 0x17, 0x8c, 0x94, 0x8a, 0x93, 0x39, - 0x86, 0x24, 0xa2, 0x88, 0xf2, 0x64, 0x8e, 0x93, 0x0e, 0x6d, 0xb5, 0x92, 0xf5, 0x3d, 0xcc, 0xea, - 0xfd, 0x7f, 0xa3, 0xec, 0x79, 0x9b, 0x1e, 0xf9, 0x28, 0x87, 0xa5, 0x08, 0xa9, 0x81, 0x04, 0xae, - 0x56, 0x9f, 0x40, 0x91, 0xd7, 0x8a, 0xa7, 0xe5, 0x1d, 0xe1, 0xda, 0xb1, 0x49, 0xa9, 0x5f, 0x2e, - 0x16, 0xf1, 0xd0, 0x9f, 0x89, 0x50, 0xc5, 0xa0, 0x16, 0xfe, 0x75, 0x0e, 0x4a, 0x4f, 0x1e, 0x55, - 0xab, 0xa7, 0xd1, 0x11, 0xf6, 0x22, 0xb2, 0x29, 0xc1, 0xf5, 0x23, 0xa7, 0xd3, 0xc1, 0xde, 0x21, - 0xe5, 0xee, 0xde, 0xf2, 0x23, 0xb9, 0x2a, 0xf1, 0xe3, 0xe9, 0xe5, 0x47, 0xb2, 0x86, 0x4d, 0xca, - 0xd1, 0x3d, 0x18, 0xde, 0x7d, 0xba, 0xbb, 0xc3, 0x03, 0x07, 0xb3, 0xbc, 0x1e, 0x01, 0xc5, 0x15, - 0x69, 0x0d, 0xf4, 0x18, 0xae, 0x3d, 0xe3, 0xb7, 0xfe, 0x65, 0x11, 0x0f, 0x19, 0xdc, 0x5a, 0x92, - 0xef, 0x01, 0xea, 0x01, 0x6e, 0x93, 0xce, 0x38, 0x9d, 0x6a, 0x48, 0xec, 0x07, 0x11, 0x63, 0x1a, - 0xcf, 0xfa, 0x37, 0x39, 0x98, 0x4f, 0x74, 0x5d, 0x32, 0xe9, 0xae, 0xe8, 0x39, 0xdb, 0x35, 0xca, - 0x9e, 0x8b, 0x0a, 0x1b, 0x57, 0x58, 0xd7, 0xdf, 0xd5, 0xba, 0x3e, 0xa3, 0x74, 0x5d, 0xa9, 0xc9, - 0xfa, 0x5e, 0xa7, 0x97, 0x50, 0x69, 0x1f, 0x78, 0x97, 0xdf, 0xe9, 0xdf, 0xe5, 0x98, 0x80, 0x44, - 0xe4, 0x57, 0xc8, 0x28, 0xdc, 0xfa, 0x8b, 0x30, 0xa9, 0xf2, 0x12, 0x2d, 0xc0, 0xf8, 0x63, 0x7c, - 0xb6, 0xe1, 0x78, 0xed, 0x8e, 0x90, 0x51, 0x0c, 0x20, 0xa5, 0x31, 0xcb, 0x58, 0x6c, 0x20, 0x06, - 0xa0, 0x59, 0x18, 0xa9, 0x76, 0xbb, 0x22, 0x22, 0x6d, 0xb3, 0x0f, 0x54, 0x82, 0x31, 0x11, 0x43, - 0xa5, 0x2e, 0x9d, 0x2d, 0x3e, 0x2d, 0x17, 0x26, 0x14, 0x6e, 0x0c, 0x68, 0x7a, 0x11, 0xa0, 0xde, - 0x71, 0xb1, 0x47, 0x0d, 0x39, 0x6f, 0x5b, 0x81, 0xd0, 0x98, 0x86, 0x7b, 0xe8, 0xd1, 0xe8, 0x25, - 0xef, 0x40, 0x0c, 0xb0, 0xae, 0xc2, 0x94, 0xa6, 0x0a, 0x96, 0x05, 0x93, 0x2a, 0x83, 0x89, 0x5a, - 0xd6, 0xfd, 0xb6, 0x54, 0x4b, 0xf2, 0xb7, 0xf5, 0xef, 0x72, 0x30, 0xfb, 0xe4, 0x51, 0xd5, 0xc6, - 0x87, 0x2e, 0x31, 0x57, 0xf1, 0x40, 0xef, 0xab, 0x82, 0xbd, 0xa9, 0x0a, 0x36, 0x51, 0x53, 0x48, - 0x78, 0x59, 0x93, 0xf0, 0x82, 0x26, 0xe1, 0x34, 0x0a, 0x13, 0xf5, 0xe7, 0x29, 0x51, 0x2f, 0x64, - 0x89, 0x9a, 0xba, 0xb1, 0xae, 0xef, 0x69, 0x12, 0x56, 0x42, 0x4b, 0x3f, 0xe5, 0x60, 0x46, 0x19, - 0x84, 0x1c, 0xf0, 0x92, 0x3a, 0x86, 0x72, 0x7a, 0x0c, 0x49, 0x25, 0xfd, 0x40, 0x1b, 0xc2, 0xcd, - 0x8c, 0x21, 0xa4, 0x94, 0xb5, 0x96, 0x1a, 0xc1, 0xdb, 0xfd, 0x46, 0x30, 0x50, 0x57, 0xdb, 0x30, - 0x9b, 0xc5, 0x64, 0x5d, 0x2b, 0x73, 0x46, 0xad, 0xcc, 0x1b, 0xb4, 0x72, 0x48, 0xd7, 0x4a, 0x07, - 0x66, 0x32, 0xd8, 0x80, 0xde, 0x83, 0x22, 0x83, 0x31, 0x93, 0xce, 0xcf, 0x7d, 0x09, 0x66, 0x0a, - 0x3e, 0x48, 0x57, 0xad, 0x3f, 0xce, 0xc1, 0x5c, 0xa6, 0xf0, 0xd1, 0x75, 0xe2, 0x8f, 0xb4, 0x02, - 0x1c, 0x71, 0xda, 0xfc, 0x8b, 0xc0, 0x37, 0xc3, 0xf0, 0x94, 0xbf, 0xe2, 0x19, 0xb7, 0xf9, 0x17, - 0x7a, 0x1b, 0xa6, 0x76, 0x70, 0xe0, 0xfa, 0xed, 0x06, 0x6e, 0xf9, 0x5e, 0x9b, 0x9d, 0x35, 0x4c, - 0xd9, 0x3a, 0x90, 0x30, 0xa8, 0xda, 0x39, 0xf4, 0x03, 0x37, 0x3a, 0x3a, 0xe1, 0x93, 0x30, 0x06, - 0x10, 0xda, 0xab, 0xee, 0xa1, 0x1b, 0xb1, 0x53, 0xdb, 0x29, 0x9b, 0x7f, 0x11, 0x16, 0x55, 0x5b, - 0x2d, 0xff, 0xd4, 0x8b, 0x68, 0x6c, 0x7d, 0xdc, 0x16, 0x9f, 0x04, 0xe3, 0x5b, 0x9b, 0x4e, 0x17, - 0x7a, 0xcf, 0xce, 0xe6, 0x5f, 0xd6, 0x7b, 0x30, 0x9b, 0xa5, 0x10, 0x99, 0x93, 0xeb, 0xaf, 0xe6, - 0x61, 0xa6, 0xda, 0x6e, 0x3f, 0x79, 0x54, 0x5d, 0xc5, 0xaa, 0x5b, 0xfb, 0x21, 0x0c, 0x6f, 0x7a, - 0x6e, 0xc4, 0x15, 0x73, 0x91, 0xeb, 0x59, 0x46, 0x4d, 0x52, 0x8b, 0xa8, 0x1a, 0xf9, 0x1f, 0xd9, - 0x30, 0xb3, 0xf6, 0xa3, 0x1b, 0x46, 0xae, 0x77, 0x48, 0x95, 0x9d, 0x35, 0xcc, 0x95, 0x55, 0x10, - 0x31, 0xd8, 0xe9, 0x8d, 0x2b, 0x76, 0x16, 0x32, 0xda, 0x85, 0xeb, 0xdb, 0xf8, 0x65, 0xc6, 0xdc, - 0x91, 0xd7, 0xe4, 0x24, 0xd9, 0x8c, 0x29, 0x60, 0xc0, 0x55, 0xa7, 0xe6, 0xdf, 0xcc, 0xd3, 0xbb, - 0x97, 0xca, 0xc0, 0x78, 0xcb, 0x7b, 0x30, 0xab, 0x74, 0x48, 0xd7, 0xed, 0x89, 0xe5, 0x4a, 0xf6, - 0x70, 0x54, 0x0b, 0x92, 0x89, 0x8e, 0x9e, 0xc1, 0xbc, 0xde, 0x29, 0xdd, 0x96, 0xc7, 0xb3, 0x3a, - 0xab, 0xca, 0xc6, 0x15, 0xdb, 0x84, 0x8d, 0x96, 0x61, 0xa8, 0xda, 0x3a, 0xe6, 0x6c, 0xc9, 0x16, - 0x19, 0x1b, 0x59, 0xb5, 0x75, 0x4c, 0xef, 0x31, 0xb7, 0x8e, 0xb5, 0x89, 0xfd, 0xbf, 0x72, 0x30, - 0x6f, 0x90, 0x30, 0x6a, 0x00, 0x6c, 0xe1, 0x43, 0xa7, 0x75, 0x26, 0x8f, 0xaa, 0xa7, 0x97, 0xef, - 0xf7, 0xd7, 0x8a, 0x25, 0x86, 0xc0, 0xe0, 0x04, 0xad, 0x96, 0x27, 0x1e, 0x5b, 0x4c, 0x86, 0x4c, - 0x50, 0x56, 0xaa, 0xb8, 0x22, 0x0a, 0x84, 0x38, 0x81, 0x31, 0x36, 0x1d, 0xd7, 0xb4, 0xbc, 0xc6, - 0x16, 0x17, 0xd8, 0x4a, 0x25, 0x6b, 0x05, 0x8a, 0xc9, 0x66, 0x51, 0x81, 0xd9, 0x4c, 0x76, 0xdb, - 0x6b, 0x6f, 0xf9, 0x51, 0x31, 0x87, 0x26, 0x63, 0x9b, 0x58, 0xcc, 0x5b, 0xf5, 0xe4, 0xb8, 0x25, - 0x9b, 0xd0, 0x3d, 0x18, 0x65, 0x40, 0x2e, 0x75, 0xf1, 0x02, 0x2b, 0xae, 0xcc, 0xcb, 0xad, 0x3f, - 0xc8, 0x89, 0xe8, 0x62, 0x6a, 0x32, 0x7d, 0xa2, 0x4d, 0xa6, 0xb7, 0xe4, 0x08, 0xb2, 0x2a, 0x6b, - 0xf3, 0xa9, 0x06, 0x13, 0xaf, 0x32, 0x8f, 0x54, 0x24, 0x55, 0xd3, 0xff, 0x71, 0x4e, 0xc4, 0x45, - 0xd2, 0xca, 0xbe, 0x06, 0x93, 0xaf, 0xa6, 0xe4, 0x1a, 0x1a, 0xfa, 0x88, 0xe9, 0x60, 0xbe, 0xff, - 0x48, 0xfb, 0xaa, 0xe1, 0x97, 0x22, 0x80, 0x9a, 0xa9, 0x88, 0x03, 0x74, 0xc6, 0x5a, 0xc8, 0xc0, - 0x96, 0xcd, 0x59, 0xa7, 0xa9, 0xd2, 0xc6, 0x99, 0xd7, 0x12, 0x72, 0xba, 0x9b, 0xbc, 0xf0, 0x61, - 0x3c, 0xcd, 0x57, 0xfb, 0x90, 0x8f, 0x63, 0x6a, 0x6d, 0x1c, 0x5f, 0xed, 0x53, 0x3b, 0x75, 0x9e, - 0x98, 0x59, 0xaf, 0xd2, 0x68, 0x1d, 0xa6, 0xb6, 0xf1, 0xcb, 0x54, 0xbb, 0xf4, 0x8c, 0xd4, 0xc3, - 0x2f, 0x9b, 0x4a, 0xdb, 0xca, 0xad, 0x1a, 0x1d, 0x07, 0x1d, 0xc0, 0xb4, 0xb0, 0x1e, 0x17, 0x35, - 0xa2, 0xec, 0xf6, 0x2f, 0x69, 0xe1, 0xe4, 0xb9, 0xd3, 0x0c, 0x38, 0x54, 0xbd, 0xb6, 0xab, 0x53, - 0xb4, 0x76, 0xa0, 0x94, 0x1e, 0x2b, 0xd7, 0xb2, 0x0f, 0x07, 0x4d, 0x27, 0xb6, 0xc3, 0x6f, 0xeb, - 0x53, 0x6b, 0x83, 0x06, 0xa3, 0x64, 0x1d, 0xb9, 0x8d, 0x7e, 0x90, 0x64, 0x1d, 0xbd, 0xd1, 0x28, - 0x58, 0xa7, 0x3e, 0x2f, 0x88, 0xaf, 0xfc, 0xcc, 0x25, 0x28, 0x49, 0xbf, 0x62, 0x8c, 0x83, 0xe4, - 0xb3, 0x8d, 0xe4, 0x44, 0x17, 0x15, 0xac, 0x7f, 0x98, 0x83, 0x1b, 0x7b, 0x21, 0x0e, 0x1a, 0xae, - 0x77, 0xd8, 0xc1, 0x7b, 0xa1, 0x7e, 0xe1, 0xe6, 0xb7, 0xb5, 0xc9, 0x3e, 0x6f, 0xb8, 0xc8, 0xfb, - 0x7f, 0x6b, 0x8a, 0xff, 0xa3, 0x1c, 0x94, 0xb3, 0xfa, 0xf6, 0x66, 0x67, 0xf9, 0x12, 0xdf, 0xf7, - 0xb2, 0xde, 0x96, 0x38, 0xba, 0x6c, 0x53, 0x0c, 0x96, 0x0c, 0x92, 0xfc, 0x9f, 0x5c, 0x65, 0x66, - 0x37, 0x43, 0xda, 0xfd, 0x5f, 0x9d, 0xba, 0x01, 0x6e, 0x0b, 0xc6, 0x2d, 0x65, 0x5d, 0xf7, 0xa6, - 0x72, 0xdd, 0xb8, 0x92, 0x75, 0x9d, 0xfb, 0x43, 0xe5, 0x42, 0x6b, 0xbe, 0xdf, 0x3d, 0x6e, 0xed, - 0xed, 0xd0, 0x5d, 0x18, 0xde, 0x26, 0x4e, 0xd0, 0x10, 0xd7, 0x3f, 0x86, 0x41, 0x40, 0xf4, 0xee, - 0x29, 0xe9, 0x32, 0xf9, 0x40, 0x8f, 0x52, 0x37, 0x5c, 0x87, 0x07, 0xdf, 0x53, 0x4e, 0x3f, 0x7a, - 0xaa, 0x15, 0x60, 0x74, 0xd7, 0x09, 0x0e, 0x71, 0x64, 0xfd, 0x02, 0xca, 0xfc, 0x60, 0x99, 0xc5, - 0x6b, 0xe9, 0xf1, 0x73, 0x18, 0xc7, 0x11, 0xfb, 0x1d, 0x06, 0x2f, 0x02, 0x34, 0x22, 0x27, 0x88, - 0x36, 0xbd, 0x36, 0xfe, 0x91, 0x8e, 0x76, 0xc4, 0x56, 0x20, 0xd6, 0x47, 0x30, 0x2e, 0x87, 0x40, - 0xf7, 0xf6, 0x8a, 0x9f, 0x47, 0x87, 0x33, 0xab, 0xdd, 0xb9, 0x15, 0x17, 0x6d, 0x57, 0x60, 0x2e, - 0x21, 0x0a, 0xae, 0x27, 0x65, 0x22, 0x30, 0x06, 0x63, 0x97, 0x4e, 0x6c, 0xf9, 0x6d, 0xd5, 0xe1, - 0x5a, 0x4a, 0xd2, 0x08, 0xd1, 0x7b, 0xd4, 0x2c, 0x10, 0x42, 0x8c, 0x7a, 0xa3, 0xb1, 0x41, 0x60, - 0xbb, 0x5b, 0x0d, 0x76, 0xa7, 0x8c, 0xc0, 0x76, 0xb7, 0x1a, 0xb5, 0x51, 0xa6, 0x39, 0xd6, 0x3f, - 0xcb, 0xd3, 0x70, 0x46, 0x8a, 0x07, 0x89, 0xb0, 0x98, 0x1a, 0x9a, 0xab, 0xc1, 0x38, 0x1d, 0xf1, - 0xaa, 0xb8, 0x7b, 0xd9, 0xff, 0x34, 0xaa, 0xf0, 0x53, 0xaf, 0x72, 0x85, 0x1e, 0x41, 0xc5, 0x68, - 0xe8, 0x6b, 0x18, 0x5b, 0xf3, 0xda, 0x94, 0xc2, 0xd0, 0x25, 0x28, 0x08, 0x24, 0x22, 0x07, 0xda, - 0x65, 0xe2, 0x57, 0xf0, 0xd8, 0x91, 0xad, 0x40, 0x28, 0x9b, 0xdd, 0x13, 0x97, 0xdd, 0x39, 0x18, - 0xb1, 0xd9, 0x07, 0xe1, 0x26, 0xed, 0x82, 0x78, 0x4a, 0x33, 0x6e, 0xcb, 0x6f, 0x64, 0xc1, 0xc8, - 0xd3, 0xa0, 0xcd, 0x1f, 0x36, 0x4c, 0x2f, 0x4f, 0x8a, 0xdc, 0x02, 0x04, 0x66, 0xb3, 0x22, 0xeb, - 0x7f, 0xd0, 0x73, 0xc0, 0x28, 0x53, 0x6f, 0x34, 0xae, 0xe4, 0x5e, 0x9b, 0x2b, 0xf9, 0x57, 0xe1, - 0x8a, 0x1c, 0xf5, 0x90, 0x69, 0xd4, 0xc3, 0xa6, 0x51, 0x8f, 0x98, 0x47, 0xbd, 0x0e, 0xa3, 0x6c, - 0xa8, 0xe8, 0x0e, 0x8c, 0x6c, 0x46, 0xf8, 0x24, 0x0e, 0x73, 0xa9, 0x37, 0x39, 0x6c, 0x56, 0x46, - 0xf6, 0x49, 0x5b, 0x4e, 0x18, 0x89, 0x5b, 0x8c, 0xe3, 0xb6, 0xf8, 0xb4, 0xfe, 0x24, 0x07, 0xc5, - 0x2d, 0x37, 0x8c, 0xc8, 0x44, 0xb8, 0xa0, 0xae, 0xc9, 0x11, 0xe5, 0x4d, 0x23, 0x1a, 0x4a, 0x8c, - 0xe8, 0x0b, 0x18, 0xa5, 0x97, 0x6b, 0x43, 0xfe, 0x6c, 0xee, 0x0e, 0x1f, 0x52, 0xb2, 0x61, 0x76, - 0x05, 0x37, 0xa4, 0xcf, 0xdb, 0x6c, 0x8e, 0x52, 0xfe, 0x0c, 0x26, 0x14, 0xf0, 0xa5, 0x5e, 0xbd, - 0x7d, 0x07, 0xd7, 0x94, 0x26, 0xe4, 0x65, 0xc7, 0x01, 0x27, 0x27, 0x32, 0x32, 0x4f, 0xd8, 0xb6, - 0x8d, 0x7f, 0x54, 0xd9, 0xc6, 0x3f, 0xad, 0x1f, 0xe8, 0xdd, 0xf0, 0x2d, 0xbf, 0x75, 0xac, 0xc4, - 0xad, 0xc7, 0x98, 0x31, 0x4b, 0x1e, 0xff, 0x90, 0x5a, 0xac, 0xc4, 0x16, 0x35, 0xd0, 0x6d, 0x98, - 0xd8, 0xf4, 0x1e, 0xf9, 0x41, 0x0b, 0x3f, 0xf5, 0x3a, 0x8c, 0x7a, 0xc1, 0x56, 0x41, 0x3c, 0xa4, - 0xc9, 0x5b, 0x88, 0x43, 0x9a, 0x14, 0x90, 0x08, 0x69, 0xb2, 0x57, 0xbb, 0x36, 0x2b, 0xe3, 0x11, - 0x53, 0xf2, 0x77, 0xbf, 0x78, 0xa6, 0x0c, 0x7c, 0x0e, 0xaa, 0x78, 0x00, 0x37, 0x6c, 0xdc, 0xed, - 0x38, 0xc4, 0x57, 0x3c, 0xf1, 0x59, 0x7d, 0x39, 0xe6, 0xdb, 0x19, 0xd7, 0x16, 0xf5, 0xd3, 0x4f, - 0xd9, 0xe5, 0x7c, 0x9f, 0x2e, 0x9f, 0xc0, 0x5b, 0xeb, 0x38, 0xca, 0x7c, 0x7a, 0x1b, 0x0f, 0x7e, - 0x03, 0x0a, 0xfc, 0x79, 0x88, 0x18, 0xff, 0xa0, 0x57, 0xbf, 0xfc, 0x28, 0x90, 0xd3, 0x91, 0x7f, - 0x59, 0x0f, 0xa1, 0x62, 0x6a, 0xee, 0x62, 0xb7, 0xd5, 0x5c, 0xb8, 0x6d, 0x26, 0x20, 0xbd, 0x89, - 0x31, 0xde, 0xa0, 0x8c, 0x13, 0xf4, 0xef, 0xad, 0x3c, 0x1c, 0xa2, 0xfe, 0x14, 0xff, 0xc3, 0xaa, - 0x89, 0xeb, 0x30, 0xaf, 0xd1, 0xdd, 0x26, 0x3d, 0xbe, 0xd2, 0x09, 0xc4, 0x7c, 0xad, 0x42, 0x41, - 0xc0, 0x12, 0xe7, 0x57, 0xa9, 0x57, 0xcd, 0x94, 0xa1, 0x6d, 0x41, 0x40, 0xa2, 0x59, 0x3f, 0x88, - 0x43, 0x26, 0x1d, 0xe3, 0x62, 0x57, 0xa0, 0x2f, 0x72, 0xaa, 0x64, 0xf9, 0x70, 0x43, 0xa7, 0xad, - 0x1e, 0x95, 0x14, 0x95, 0xa3, 0x12, 0x76, 0x42, 0x42, 0xf4, 0xd2, 0xde, 0x5a, 0xf3, 0xda, 0x5d, - 0xdf, 0xf5, 0x22, 0x3e, 0x79, 0x55, 0x10, 0x5a, 0x54, 0x0f, 0x44, 0x26, 0xd3, 0x77, 0xc6, 0x1f, - 0x40, 0x39, 0xab, 0x41, 0x25, 0x5a, 0x24, 0xcf, 0x36, 0x98, 0x1f, 0x67, 0x1d, 0xc1, 0xac, 0x96, - 0x27, 0x26, 0x4e, 0x7c, 0x11, 0xe7, 0xc7, 0x19, 0xaf, 0x7d, 0xf9, 0x9b, 0x5e, 0xe5, 0xd3, 0xcb, - 0x5c, 0x4c, 0x16, 0x34, 0x77, 0xe5, 0xb5, 0x77, 0x6b, 0x1e, 0x86, 0xea, 0xf6, 0x16, 0x1d, 0xb6, - 0xbd, 0x25, 0x87, 0x6d, 0x6f, 0x59, 0xbf, 0xc9, 0x41, 0xa5, 0x7e, 0xe4, 0x78, 0x87, 0xd4, 0xf7, - 0x50, 0xdc, 0x55, 0xe5, 0x8c, 0xff, 0xa2, 0x5b, 0xaa, 0x65, 0x98, 0xd8, 0xc6, 0x2f, 0xc5, 0x95, - 0x7d, 0x7e, 0xf9, 0x9d, 0x1e, 0x05, 0x91, 0xed, 0x4e, 0x97, 0xc3, 0x6d, 0xb5, 0x12, 0xfa, 0x4b, - 0xaf, 0x1e, 0x8e, 0x62, 0xd9, 0x22, 0xe2, 0x9d, 0x14, 0x2b, 0xcd, 0xda, 0x52, 0x19, 0x9a, 0xb0, - 0xfe, 0x45, 0x0e, 0x6e, 0x9b, 0x07, 0xcf, 0x05, 0xb7, 0xaa, 0xe5, 0xdc, 0xe8, 0x73, 0x3b, 0x81, - 0x6e, 0x59, 0x95, 0x9c, 0x1b, 0xc9, 0x3c, 0x1b, 0x36, 0x6e, 0xf9, 0x2f, 0x70, 0x70, 0x96, 0x38, - 0xcc, 0x11, 0xe0, 0x3a, 0x59, 0x72, 0x44, 0xc6, 0x22, 0x06, 0xd2, 0x9e, 0xd9, 0x72, 0x98, 0xf5, - 0x1f, 0x72, 0x70, 0x93, 0x2e, 0x93, 0x3c, 0x6e, 0x29, 0x0a, 0x2e, 0x7f, 0x97, 0xe5, 0x23, 0x98, - 0x54, 0x1b, 0xe7, 0x02, 0xa3, 0x8f, 0xf4, 0x45, 0x0f, 0x9a, 0x2d, 0xbf, 0x8d, 0x6d, 0xad, 0x1a, - 0xda, 0x84, 0x09, 0xfe, 0xad, 0xc4, 0x91, 0xe6, 0x94, 0x0c, 0x3e, 0x54, 0x1f, 0xd8, 0xab, 0x4a, - 0x2a, 0x7d, 0x4e, 0xac, 0x49, 0x9f, 0x61, 0xa8, 0xb8, 0xd6, 0xaf, 0xf3, 0xb0, 0xb0, 0x8f, 0x03, - 0xf7, 0xf9, 0x99, 0x61, 0x30, 0x4f, 0x61, 0x56, 0x80, 0xe8, 0x98, 0x75, 0x3d, 0x64, 0xcf, 0x25, - 0x45, 0x57, 0x43, 0x52, 0xa1, 0x29, 0xd5, 0x32, 0x13, 0xf1, 0x12, 0x0f, 0x88, 0x3f, 0x84, 0x82, - 0x54, 0xe5, 0x21, 0xca, 0x19, 0x2a, 0x1b, 0xa1, 0xc6, 0x7a, 0x2e, 0x05, 0xa9, 0xcf, 0x7f, 0xc3, - 0x7c, 0x72, 0xc6, 0x77, 0x3c, 0x03, 0x36, 0xa3, 0x4c, 0xab, 0x89, 0x46, 0x3b, 0x4a, 0x69, 0x86, - 0x56, 0x6f, 0x5c, 0xb1, 0x4d, 0x2d, 0xd5, 0x26, 0x60, 0xbc, 0x4a, 0x4f, 0xf4, 0xc8, 0x06, 0xe3, - 0x7f, 0xe6, 0x61, 0x51, 0x5c, 0x6f, 0x35, 0xb0, 0xf9, 0x3b, 0x98, 0x17, 0xa0, 0x6a, 0xb7, 0x1b, - 0xf8, 0x2f, 0x70, 0x5b, 0xe7, 0x34, 0x7b, 0xb2, 0x2c, 0x38, 0xed, 0xf0, 0x3a, 0x31, 0xb3, 0x4d, - 0xe8, 0x6f, 0x26, 0xcc, 0xf2, 0xb5, 0x6e, 0x58, 0x98, 0x34, 0xe8, 0xa3, 0x3c, 0xd5, 0xb0, 0xe8, - 0xc9, 0xa6, 0x54, 0x23, 0xd3, 0x4e, 0x85, 0x69, 0x86, 0x5f, 0x37, 0x4c, 0x43, 0xb6, 0xa6, 0x3a, - 0xcd, 0xda, 0x34, 0x4c, 0x6e, 0xe3, 0x97, 0x31, 0xdf, 0x7f, 0x2f, 0x07, 0x53, 0xda, 0xe4, 0x46, - 0xef, 0xc2, 0x08, 0xfd, 0x83, 0x2e, 0x9a, 0xfc, 0xdd, 0x16, 0x99, 0x60, 0xda, 0xbb, 0x2d, 0x56, - 0x75, 0x13, 0xc6, 0xd8, 0x55, 0xae, 0xf6, 0x05, 0xf6, 0x10, 0xf2, 0xa6, 0x60, 0x8b, 0xa1, 0xb0, - 0xed, 0x04, 0xc7, 0xb7, 0x1e, 0xc3, 0x5b, 0xfc, 0x56, 0x98, 0x2e, 0xfc, 0xba, 0xea, 0xbf, 0x5f, - 0xd0, 0xc6, 0x5b, 0x0e, 0x2c, 0xae, 0xe3, 0xa4, 0xe9, 0xd1, 0x6e, 0x52, 0x3e, 0x84, 0xab, 0x1a, - 0x5c, 0x52, 0xa4, 0x6f, 0x3b, 0xa4, 0x0e, 0x49, 0xd2, 0xc9, 0xda, 0xd6, 0xed, 0xac, 0x26, 0xd4, - 0xce, 0x5a, 0x18, 0xae, 0xd2, 0x9d, 0xb2, 0x3c, 0x6c, 0x0b, 0x2f, 0x61, 0xf5, 0xee, 0x29, 0xf3, - 0x9a, 0x59, 0x3c, 0xf6, 0x2c, 0x58, 0x2c, 0x4f, 0xb2, 0xd4, 0xfa, 0xef, 0x39, 0xb0, 0x38, 0xe7, - 0xb2, 0xc2, 0x38, 0x62, 0xc0, 0x07, 0xa9, 0xde, 0xf0, 0x55, 0xe2, 0xba, 0x1a, 0xac, 0x8a, 0x4b, - 0x99, 0x6a, 0xd1, 0x97, 0x52, 0xad, 0x18, 0xaa, 0xa9, 0x56, 0x6a, 0x78, 0xbf, 0x34, 0xd8, 0x41, - 0x36, 0x9b, 0x68, 0xae, 0x1a, 0x83, 0x1d, 0xd4, 0xe8, 0x66, 0x12, 0x51, 0xe3, 0x5d, 0x7f, 0x3f, - 0x07, 0x37, 0xd9, 0x90, 0x77, 0x02, 0xf7, 0x85, 0xdb, 0xc1, 0x87, 0x58, 0x13, 0xee, 0x69, 0xf6, - 0x89, 0x54, 0xee, 0x42, 0x96, 0x8d, 0xa6, 0xdd, 0xc0, 0x1c, 0xdd, 0x14, 0xfe, 0xcc, 0xa2, 0x6f, - 0xfd, 0xdd, 0x1c, 0x2c, 0x8a, 0x57, 0x81, 0x89, 0x63, 0x9a, 0xcb, 0x3a, 0x29, 0x35, 0xed, 0x10, - 0x24, 0x6f, 0x38, 0x04, 0xd1, 0xe2, 0xcf, 0x51, 0xf2, 0x54, 0xe4, 0x77, 0x87, 0xe0, 0xda, 0x8e, - 0x73, 0xe8, 0x7a, 0x64, 0x7e, 0x89, 0xbc, 0x35, 0xa8, 0x9a, 0x4a, 0xff, 0xd5, 0xff, 0xf6, 0x55, - 0x46, 0x7e, 0xaf, 0x65, 0x35, 0x13, 0x4f, 0xde, 0x74, 0x2f, 0x5f, 0xcf, 0xb7, 0xf3, 0x99, 0x16, - 0x81, 0x4b, 0x5d, 0xc0, 0xa3, 0x6f, 0xbb, 0x3c, 0xbf, 0x9d, 0x48, 0x89, 0x47, 0xa3, 0x58, 0x4f, - 0x61, 0x42, 0xb9, 0x45, 0xc7, 0x8d, 0x62, 0x8a, 0x02, 0x35, 0xb4, 0xc7, 0xa7, 0x07, 0x38, 0x33, - 0xfd, 0x91, 0x4a, 0x21, 0x23, 0xe9, 0xd1, 0xc8, 0x9b, 0x4d, 0x7a, 0x54, 0x03, 0x28, 0x88, 0x7c, - 0x8e, 0xd6, 0x1f, 0x8e, 0xc2, 0x2c, 0xd9, 0xac, 0x0b, 0x09, 0x84, 0xb1, 0x09, 0x9a, 0x14, 0x30, - 0xc5, 0x8f, 0xe6, 0xde, 0x02, 0x83, 0x37, 0x13, 0xe9, 0x25, 0x35, 0x04, 0xf4, 0x91, 0x1a, 0xcd, - 0xc8, 0x2b, 0x49, 0x27, 0xd2, 0x99, 0x01, 0xd5, 0x30, 0xc7, 0xbb, 0x5a, 0xe0, 0x86, 0xd9, 0xf7, - 0x0e, 0x01, 0xa8, 0xf6, 0x9d, 0xc5, 0x3e, 0x56, 0x92, 0xd1, 0x1c, 0xd6, 0x00, 0x9b, 0xbb, 0xc7, - 0x58, 0x73, 0xfd, 0x64, 0x50, 0x64, 0x4f, 0x06, 0x45, 0x46, 0xe8, 0xae, 0xeb, 0x67, 0x4a, 0x50, - 0x24, 0xc9, 0x04, 0x35, 0x30, 0xc2, 0x9e, 0x39, 0x77, 0x28, 0x40, 0x7d, 0xe6, 0xcc, 0xaa, 0xa0, - 0x5d, 0x98, 0xd9, 0x09, 0x70, 0x9b, 0x4e, 0xd6, 0xb5, 0x1f, 0xbb, 0x01, 0x77, 0x75, 0x69, 0x68, - 0x8d, 0x65, 0xe0, 0xea, 0x8a, 0xe2, 0x26, 0x96, 0xe5, 0xea, 0x9c, 0xcd, 0x40, 0x47, 0x6b, 0x30, - 0xdd, 0xc0, 0x4e, 0xd0, 0x3a, 0x7a, 0x8c, 0xcf, 0x88, 0x39, 0x0d, 0x4b, 0x63, 0x71, 0xd6, 0x92, - 0x90, 0x96, 0x90, 0x81, 0xd2, 0x22, 0xf5, 0xf8, 0x43, 0x47, 0x42, 0x3f, 0x87, 0xd1, 0x86, 0x1f, - 0x44, 0xb5, 0xb3, 0x44, 0xaa, 0x48, 0x06, 0xac, 0xdd, 0x10, 0x99, 0x5b, 0x42, 0x3f, 0x88, 0x9a, - 0x07, 0x2a, 0xdf, 0x38, 0x1e, 0x7a, 0x44, 0x56, 0x7f, 0xe2, 0x91, 0x44, 0x4e, 0xa7, 0x4e, 0x0f, - 0xfe, 0xd9, 0x43, 0x35, 0xbe, 0xc2, 0x53, 0x37, 0x26, 0x72, 0x3a, 0x4d, 0xba, 0xde, 0xe8, 0x07, - 0x31, 0x2a, 0x16, 0x3a, 0x83, 0x59, 0x5d, 0x19, 0x79, 0x5e, 0x27, 0xd0, 0x92, 0xae, 0x65, 0x55, - 0xa9, 0xdd, 0xe3, 0xbd, 0xbc, 0x9d, 0x4c, 0x28, 0x96, 0x4a, 0xf5, 0x94, 0xd9, 0xc4, 0xeb, 0x04, - 0xb4, 0xfe, 0x38, 0x07, 0x73, 0x09, 0xfd, 0xe0, 0x1b, 0x9b, 0xa7, 0x30, 0x2e, 0x81, 0x7c, 0x1b, - 0x2f, 0x8e, 0x1e, 0x52, 0xc6, 0x8d, 0x69, 0xa7, 0x98, 0x3c, 0xaa, 0xbc, 0x62, 0x1a, 0xe8, 0x41, - 0x22, 0xf6, 0xc5, 0x1c, 0x66, 0x0f, 0xff, 0x98, 0xd4, 0x68, 0x51, 0x0d, 0x7d, 0x06, 0xa0, 0x88, - 0x85, 0xcd, 0x1a, 0x9a, 0xba, 0x30, 0x5b, 0x22, 0x4a, 0x65, 0xeb, 0x4f, 0x47, 0xc5, 0x4a, 0xc5, - 0xb7, 0x58, 0xbb, 0x81, 0xd3, 0x3a, 0x8e, 0xaf, 0xa9, 0x7e, 0x94, 0xbe, 0x13, 0x7a, 0x91, 0x29, - 0x7c, 0x57, 0x7b, 0x3d, 0x6e, 0x4e, 0x44, 0x1b, 0x27, 0x12, 0x18, 0xba, 0x40, 0x22, 0x81, 0xfb, - 0x30, 0xb6, 0xe9, 0xbd, 0x70, 0x89, 0x37, 0xc7, 0x2e, 0x48, 0x52, 0x5f, 0xc8, 0x65, 0x20, 0x95, - 0x31, 0xbc, 0x16, 0xfa, 0x0c, 0x0a, 0x1b, 0x7e, 0x18, 0x51, 0x77, 0x66, 0x24, 0xf6, 0x98, 0x23, - 0x1a, 0x0b, 0x6c, 0x1e, 0xf1, 0x22, 0xd5, 0x48, 0x88, 0xea, 0xe8, 0x63, 0x18, 0xab, 0xb6, 0xdb, - 0x64, 0x16, 0xf2, 0x19, 0x4c, 0xb3, 0x58, 0x72, 0x4c, 0x87, 0x95, 0xa8, 0x4d, 0xf2, 0xca, 0xe8, - 0x4b, 0x3d, 0x30, 0x37, 0x16, 0xa7, 0xd9, 0xc8, 0xce, 0xe8, 0xaa, 0x07, 0xed, 0xde, 0x15, 0x07, - 0x22, 0x85, 0x38, 0x71, 0x09, 0x4d, 0x42, 0xa2, 0x99, 0x3e, 0x7a, 0x9e, 0xb2, 0x09, 0xe3, 0x9b, - 0x9e, 0x1b, 0xb9, 0x34, 0x75, 0xc3, 0xb8, 0xb6, 0xc8, 0xed, 0x38, 0x41, 0xe4, 0xb6, 0xdc, 0xae, - 0xe3, 0x45, 0x4c, 0x5a, 0xae, 0xa8, 0xa8, 0x4a, 0x4b, 0x62, 0xab, 0x49, 0x9e, 0xe0, 0x8d, 0x25, - 0x79, 0xca, 0xcc, 0x93, 0x34, 0xf1, 0xea, 0x79, 0x92, 0x56, 0x98, 0x2c, 0x69, 0xba, 0xdb, 0xc9, - 0x58, 0x11, 0x69, 0xbc, 0x4a, 0x4f, 0x72, 0x6b, 0xcb, 0x8a, 0xe8, 0x36, 0x4d, 0xd5, 0x30, 0x15, - 0xdf, 0x35, 0xd6, 0x0e, 0x60, 0xf3, 0x9b, 0xab, 0xa8, 0x09, 0x93, 0xa4, 0xf6, 0x8e, 0xdf, 0x71, - 0x5b, 0x2e, 0x0e, 0x4b, 0xd3, 0x5a, 0x80, 0x53, 0x9f, 0x14, 0xb4, 0xd2, 0x59, 0x03, 0x47, 0x6c, - 0x11, 0xa4, 0x4d, 0x77, 0x39, 0xa2, 0xba, 0x08, 0xaa, 0x04, 0x2d, 0x1b, 0x4a, 0xf1, 0x29, 0x49, - 0x62, 0x76, 0x7d, 0x9c, 0x7e, 0xf6, 0x41, 0xd3, 0x03, 0xc6, 0xcf, 0x3e, 0x54, 0x81, 0xc5, 0x0f, - 0x40, 0xf6, 0xe0, 0xa6, 0x8d, 0x4f, 0xfc, 0x17, 0xf8, 0xcd, 0x92, 0xfd, 0x25, 0xdc, 0xd0, 0x09, - 0xee, 0x75, 0xdb, 0xf4, 0x19, 0x29, 0x3b, 0x8e, 0xc9, 0x4c, 0x30, 0xc2, 0x11, 0x58, 0x82, 0x11, - 0xf6, 0x6a, 0x9d, 0xfc, 0xa9, 0xea, 0x2b, 0x2d, 0xb3, 0x7c, 0x58, 0xd0, 0x89, 0x57, 0xdb, 0x6d, - 0x45, 0x51, 0x89, 0x17, 0xa5, 0x7c, 0x26, 0xdc, 0x36, 0x55, 0xa3, 0xa9, 0x65, 0xeb, 0xc6, 0x00, - 0x75, 0x2e, 0x29, 0xf5, 0x2c, 0x0c, 0x95, 0x24, 0x7b, 0x08, 0xcb, 0xd4, 0x36, 0x6b, 0x30, 0xa5, - 0x7c, 0xca, 0x8d, 0x00, 0x9d, 0xea, 0x4a, 0x0b, 0x3a, 0xc3, 0x74, 0x14, 0xeb, 0x9f, 0x0e, 0xc1, - 0x4d, 0xce, 0xa7, 0x37, 0x29, 0x0c, 0xf4, 0x03, 0x4c, 0x28, 0xec, 0xe7, 0xfc, 0xb8, 0x2d, 0x0e, - 0xb5, 0x4d, 0x62, 0x62, 0xa6, 0xe6, 0x94, 0x02, 0x9a, 0x09, 0x49, 0x10, 0x37, 0x53, 0x95, 0x68, - 0x07, 0xa6, 0x75, 0x19, 0x70, 0xe7, 0xf7, 0x4e, 0x66, 0x23, 0x7a, 0x55, 0xf1, 0x0a, 0xbe, 0xdd, - 0xcc, 0x94, 0x04, 0x4d, 0xb5, 0xaa, 0xcb, 0xf7, 0x47, 0xb8, 0x96, 0x12, 0x00, 0xf7, 0x95, 0xef, - 0x66, 0x36, 0x98, 0xaa, 0xcd, 0xec, 0x46, 0x40, 0xc1, 0xc6, 0x66, 0xd3, 0x8d, 0xd4, 0x0a, 0x30, - 0xca, 0x86, 0x4d, 0xe6, 0xcd, 0x4e, 0x80, 0x43, 0xec, 0xb5, 0xb0, 0x7a, 0x73, 0xe0, 0x75, 0xe7, - 0xcd, 0xbf, 0xcf, 0x41, 0x29, 0x8b, 0x6e, 0x03, 0x7b, 0x6d, 0xb4, 0x03, 0xc5, 0x64, 0x43, 0x7c, - 0x47, 0x63, 0x09, 0x37, 0xc1, 0xdc, 0xa5, 0x8d, 0x2b, 0x76, 0x0a, 0x9b, 0x58, 0x56, 0x05, 0x76, - 0xc9, 0x2b, 0x1a, 0x69, 0x54, 0x65, 0xe3, 0xfa, 0xde, 0x7b, 0x30, 0x2e, 0xf3, 0xc7, 0xa3, 0x02, - 0x0c, 0x6f, 0x6e, 0x6f, 0xee, 0xb2, 0x1b, 0x6a, 0x3b, 0x7b, 0xbb, 0xc5, 0x1c, 0x02, 0x18, 0x5d, - 0x5d, 0xdb, 0x5a, 0xdb, 0x5d, 0x2b, 0xe6, 0xdf, 0xf3, 0xd4, 0x2d, 0x20, 0xba, 0x09, 0xf3, 0xab, - 0x6b, 0xfb, 0x9b, 0xf5, 0xb5, 0xe6, 0xee, 0xff, 0xb7, 0xb3, 0xd6, 0xdc, 0xdb, 0x6e, 0xec, 0xac, - 0xd5, 0x37, 0x1f, 0x6d, 0xae, 0xad, 0x16, 0xaf, 0xa0, 0x59, 0x28, 0xaa, 0x85, 0xf4, 0xde, 0x5b, - 0x0e, 0xcd, 0xc0, 0x55, 0x0d, 0x65, 0xf9, 0x51, 0x31, 0x8f, 0x4a, 0x30, 0xab, 0x02, 0x9f, 0xad, - 0xd5, 0xaa, 0x7b, 0xbb, 0x1b, 0xdb, 0xc5, 0xa1, 0xf7, 0xee, 0xf2, 0xd3, 0x59, 0x34, 0x0d, 0xb0, - 0xba, 0xd6, 0xa8, 0xaf, 0x6d, 0xaf, 0x6e, 0x6e, 0xaf, 0x17, 0xaf, 0xa0, 0x29, 0x18, 0xaf, 0xca, - 0xcf, 0xdc, 0xf2, 0x1f, 0xfd, 0x00, 0x13, 0x64, 0xf0, 0x62, 0x37, 0xd5, 0x84, 0xf9, 0x27, 0x8e, - 0xeb, 0x45, 0x8e, 0xeb, 0x71, 0x91, 0x09, 0x86, 0xa3, 0x4a, 0x1f, 0x09, 0x10, 0xe1, 0x95, 0x07, - 0xdd, 0x41, 0xb9, 0x97, 0x7b, 0x90, 0x43, 0x0d, 0x98, 0xcd, 0x72, 0xa1, 0x90, 0xa5, 0xe7, 0x36, - 0xc8, 0xb2, 0x0e, 0xe5, 0xf9, 0xcc, 0x85, 0x66, 0xff, 0x03, 0xf4, 0x04, 0xae, 0xa5, 0x96, 0x0d, - 0xd9, 0x5f, 0xd3, 0x82, 0xd2, 0x8f, 0x5c, 0x89, 0x46, 0x83, 0x22, 0x37, 0xb9, 0x68, 0x84, 0xe8, - 0x7a, 0x6a, 0xb5, 0x5f, 0x23, 0x1a, 0x6e, 0x24, 0xf6, 0x20, 0x87, 0x6c, 0x98, 0xcd, 0x5a, 0x80, - 0xe4, 0x90, 0xfb, 0xac, 0x4e, 0x65, 0x43, 0x73, 0x84, 0x66, 0x96, 0x1d, 0x95, 0x34, 0xfb, 0x18, - 0x59, 0x23, 0xcd, 0x2f, 0xc9, 0xee, 0xc9, 0x6b, 0x3f, 0xc6, 0xb8, 0x5b, 0xed, 0xb8, 0x2f, 0x70, - 0x88, 0xc4, 0x0d, 0x2a, 0x09, 0x32, 0xe1, 0xde, 0xcb, 0xa1, 0xdf, 0x82, 0x09, 0x9a, 0x5f, 0x96, - 0x1f, 0xf8, 0x4f, 0xaa, 0x39, 0x67, 0xcb, 0xe2, 0x8b, 0x16, 0x3e, 0xc8, 0xa1, 0xaf, 0x60, 0x6c, - 0x1d, 0xd3, 0x13, 0x6f, 0xf4, 0x56, 0xe2, 0x67, 0x14, 0x36, 0x3d, 0xe9, 0x19, 0x8b, 0x0e, 0x27, - 0xc3, 0x03, 0xa8, 0x0e, 0x05, 0x8e, 0x1e, 0x22, 0x2b, 0x81, 0x1f, 0x66, 0x10, 0x98, 0x49, 0x10, - 0x20, 0x9b, 0x13, 0x54, 0x87, 0x71, 0x79, 0xec, 0x8e, 0xe6, 0x0d, 0x67, 0xfd, 0xe5, 0x52, 0xba, - 0x80, 0x07, 0x88, 0x86, 0xfe, 0x76, 0x3e, 0x87, 0xee, 0x03, 0xb0, 0x57, 0x71, 0x74, 0x2c, 0xc9, - 0x8e, 0x96, 0x53, 0x0c, 0x44, 0xeb, 0xc4, 0x10, 0x74, 0x70, 0x84, 0x2f, 0x3a, 0x78, 0x93, 0xb4, - 0xb6, 0x60, 0x5a, 0xbe, 0x51, 0xbb, 0x38, 0x27, 0x4c, 0xd4, 0x3e, 0x27, 0x33, 0x88, 0x3d, 0xed, - 0x96, 0xf7, 0xdc, 0x90, 0xe9, 0xe6, 0x9b, 0x14, 0x27, 0xab, 0xa6, 0xe0, 0xca, 0xe4, 0xbd, 0x12, - 0x37, 0x99, 0xce, 0x37, 0x81, 0x8b, 0xa1, 0xac, 0xb6, 0xab, 0xdf, 0x79, 0x43, 0xb7, 0x95, 0x0e, - 0x64, 0x5e, 0xd5, 0x2b, 0xbf, 0xd5, 0xa7, 0x06, 0x93, 0x13, 0xb5, 0x3a, 0xdf, 0xc0, 0x94, 0x76, - 0x4b, 0x0a, 0x89, 0x0b, 0xda, 0x59, 0xd7, 0xd8, 0xca, 0x0b, 0xd9, 0x85, 0x7c, 0x0f, 0xfb, 0x88, - 0x1a, 0x9b, 0x44, 0xb2, 0xbc, 0x72, 0x56, 0x52, 0x3c, 0xbe, 0x93, 0x16, 0xe9, 0x53, 0x12, 0x28, - 0x6b, 0x30, 0x23, 0x63, 0xe4, 0xca, 0x2f, 0x10, 0x18, 0xd2, 0xeb, 0x19, 0x25, 0xf7, 0x10, 0x66, - 0xb8, 0x1e, 0x68, 0x64, 0x8a, 0xd2, 0xb8, 0xf0, 0x4c, 0x6c, 0x46, 0x02, 0xdf, 0xc0, 0x5c, 0x23, - 0x31, 0x1e, 0xe6, 0xf2, 0xdc, 0xd0, 0x49, 0x28, 0x89, 0xf5, 0x8c, 0xb4, 0x1e, 0x03, 0x6a, 0x9c, - 0x1e, 0x9c, 0xb8, 0x92, 0xdc, 0x0b, 0x17, 0xbf, 0x44, 0xb7, 0x12, 0x43, 0x22, 0x40, 0x5a, 0x8d, - 0x5a, 0xa7, 0xb2, 0x61, 0xc4, 0x68, 0x97, 0xbd, 0xf5, 0x67, 0x19, 0x87, 0x9c, 0xae, 0x73, 0xe0, - 0x76, 0xdc, 0xc8, 0xc5, 0x44, 0x2d, 0x54, 0x04, 0xb5, 0x48, 0x48, 0xf0, 0x86, 0xb1, 0x06, 0xfa, - 0x1a, 0xa6, 0xd6, 0x71, 0x14, 0xe7, 0x0e, 0x44, 0xf3, 0xa9, 0x6c, 0x83, 0x5c, 0x6e, 0xe2, 0xb4, - 0x54, 0x4f, 0x58, 0xb8, 0x09, 0x45, 0x66, 0x5c, 0x15, 0x12, 0xb7, 0x52, 0x24, 0x78, 0x15, 0x27, - 0x70, 0x4e, 0x42, 0x23, 0xb7, 0xee, 0xc3, 0xf0, 0x8e, 0xeb, 0x1d, 0x22, 0xf1, 0xa2, 0x4d, 0xc9, - 0xbd, 0x55, 0x9e, 0xd1, 0x60, 0x5c, 0xf5, 0x0e, 0xa0, 0xc2, 0x92, 0xe6, 0xa5, 0x13, 0xd5, 0x89, - 0xcc, 0xe0, 0x6f, 0xcb, 0xcb, 0x8d, 0x7d, 0x92, 0xeb, 0x49, 0xfe, 0x24, 0xcb, 0xf7, 0x57, 0xd0, - 0x0e, 0xe5, 0x7a, 0xba, 0x01, 0x74, 0x27, 0x5e, 0x4f, 0x8d, 0x79, 0xf2, 0xca, 0x28, 0x49, 0x78, - 0x7f, 0x05, 0xc9, 0x14, 0x01, 0x19, 0x44, 0xef, 0x6a, 0xcb, 0xfe, 0xe5, 0xe8, 0x7e, 0x0d, 0xe3, - 0x32, 0x49, 0x9c, 0xb4, 0x37, 0xc9, 0xcc, 0x76, 0xd2, 0x80, 0xa7, 0xf3, 0xc9, 0x7d, 0xc9, 0xf2, - 0x39, 0xea, 0xf8, 0xc9, 0x3c, 0x6a, 0x46, 0xe1, 0x7d, 0x06, 0x13, 0x4a, 0x06, 0x35, 0x39, 0x59, - 0xd2, 0x59, 0xd5, 0xca, 0xfa, 0x2f, 0xcd, 0x3c, 0x20, 0x8b, 0xc6, 0x18, 0x4f, 0xd9, 0x89, 0xe6, - 0x62, 0x34, 0x25, 0x0d, 0x55, 0x02, 0x85, 0x6c, 0xe7, 0x45, 0x8e, 0x4f, 0x74, 0x5d, 0xc7, 0x30, - 0xb7, 0xb2, 0x02, 0xc0, 0xc6, 0x4c, 0x1b, 0xd2, 0x8b, 0x8d, 0xa3, 0x5a, 0x21, 0xeb, 0x59, 0xfb, - 0x92, 0x48, 0x5f, 0x8b, 0x35, 0x8d, 0x22, 0x95, 0x34, 0x4e, 0xaa, 0xa3, 0x32, 0xe1, 0x6f, 0x42, - 0xb1, 0xda, 0xa2, 0x56, 0x56, 0x66, 0xc6, 0x42, 0x8b, 0x72, 0x06, 0xeb, 0x05, 0x82, 0xd6, 0x5c, - 0x32, 0xd1, 0xd6, 0x16, 0x76, 0xe8, 0xf5, 0xab, 0x79, 0xb9, 0xd6, 0x26, 0x8a, 0xb2, 0x31, 0x8c, - 0x9d, 0x5a, 0x83, 0xd9, 0xba, 0xe3, 0xb5, 0x70, 0xe7, 0xf5, 0xc8, 0x7c, 0x4e, 0xcd, 0x8d, 0x92, - 0x35, 0xec, 0x7a, 0x12, 0x9f, 0x5b, 0x9b, 0x6b, 0x72, 0x5f, 0x27, 0xab, 0x56, 0xe1, 0x2a, 0x63, - 0x62, 0xcc, 0x16, 0x13, 0xb6, 0xa9, 0xf9, 0x4f, 0x60, 0x7a, 0x8d, 0x98, 0xe3, 0xd3, 0xb6, 0xcb, - 0x6e, 0xea, 0x22, 0xfd, 0xea, 0xa5, 0x11, 0x71, 0x43, 0x64, 0x60, 0x54, 0xd2, 0x69, 0x49, 0x25, - 0x4f, 0x67, 0x2c, 0x2b, 0xcf, 0x0a, 0xb2, 0x6a, 0xe6, 0x2d, 0xba, 0xf6, 0x1e, 0x8a, 0x94, 0x2d, - 0x89, 0x24, 0x49, 0xaa, 0x41, 0x31, 0xa6, 0x50, 0x2a, 0xbf, 0xdd, 0xbf, 0x92, 0xea, 0x8b, 0xd9, - 0x30, 0x6f, 0x48, 0x40, 0x85, 0xde, 0x91, 0x6e, 0x71, 0xbf, 0x04, 0x55, 0x19, 0xee, 0xda, 0x77, - 0x4a, 0x1a, 0x12, 0x03, 0xcd, 0xfe, 0x99, 0xa9, 0x8c, 0x0c, 0x96, 0xb7, 0xd1, 0x32, 0x33, 0x48, - 0xa1, 0x77, 0x75, 0xea, 0x7d, 0xb2, 0x4c, 0x19, 0x5b, 0x78, 0x4a, 0x55, 0x2f, 0x4e, 0x60, 0x24, - 0x9d, 0x9e, 0xac, 0x2c, 0x53, 0xd2, 0xe9, 0xc9, 0x4c, 0xff, 0xc4, 0x18, 0xbc, 0x0e, 0x57, 0x13, - 0xb9, 0x9c, 0xd0, 0xad, 0x24, 0x63, 0x07, 0x30, 0x94, 0x11, 0x7a, 0x22, 0x14, 0x3b, 0x4d, 0x28, - 0x3b, 0xbb, 0x93, 0x69, 0x8c, 0x8c, 0xdc, 0x9e, 0x74, 0x81, 0xd4, 0x7c, 0x4d, 0xe8, 0xad, 0x0c, - 0x16, 0x5e, 0x8c, 0x75, 0x8c, 0x6c, 0x03, 0x8a, 0xc9, 0x74, 0x47, 0x68, 0x51, 0x72, 0x29, 0x33, - 0xa7, 0x53, 0xb9, 0x62, 0x2c, 0xe7, 0x8b, 0xce, 0x37, 0xb1, 0x50, 0xd8, 0x99, 0x55, 0x52, 0x28, - 0x6a, 0xaa, 0x9b, 0x94, 0x50, 0xf4, 0x0c, 0x36, 0xeb, 0xf4, 0x0e, 0xad, 0x92, 0xb7, 0xc8, 0xb8, - 0x3b, 0xbd, 0x95, 0x45, 0x27, 0x3e, 0x96, 0x69, 0x88, 0x8c, 0xb0, 0x4a, 0xbf, 0x16, 0xb5, 0x75, - 0x33, 0xdd, 0xb5, 0x8a, 0xb1, 0x5c, 0x8e, 0xb4, 0x98, 0xcc, 0xe0, 0x23, 0x89, 0x1a, 0x52, 0xfb, - 0x18, 0x55, 0xf9, 0x11, 0xcc, 0xea, 0x52, 0x1c, 0x30, 0x5e, 0xb3, 0xaf, 0x3b, 0xa5, 0xe5, 0xed, - 0x41, 0xe2, 0x08, 0x2d, 0x91, 0x22, 0x28, 0xc5, 0xfd, 0x8c, 0xfc, 0x41, 0x8c, 0xfb, 0x4a, 0x0e, - 0xa0, 0x8b, 0x70, 0x3f, 0x2b, 0x65, 0x90, 0x64, 0x94, 0xd2, 0x2f, 0xb1, 0xfc, 0x25, 0x0b, 0x2e, - 0xc3, 0xa8, 0x8b, 0x74, 0xcd, 0x44, 0x67, 0x95, 0x7a, 0x37, 0xf2, 0x87, 0xb6, 0x6e, 0x68, 0x6c, - 0xd2, 0x34, 0xbe, 0xac, 0x0d, 0x4e, 0x57, 0xf6, 0x3a, 0x4c, 0xaa, 0x29, 0x88, 0x8c, 0xbd, 0xb8, - 0x99, 0xa6, 0x11, 0x2a, 0xfb, 0xad, 0x69, 0xc9, 0x05, 0xd6, 0x9b, 0x85, 0x24, 0x73, 0xb4, 0x0e, - 0x99, 0x87, 0x84, 0x54, 0xd6, 0x0c, 0xe8, 0x92, 0xd9, 0x2d, 0x98, 0x61, 0x0e, 0x92, 0xfe, 0x3b, - 0x6c, 0x86, 0x9f, 0x73, 0x33, 0x92, 0xd9, 0xa3, 0x37, 0xf3, 0xd5, 0x7c, 0x42, 0x48, 0xd1, 0x92, - 0x8c, 0x3c, 0x43, 0xe5, 0x45, 0x53, 0xb1, 0x6a, 0xa1, 0xbf, 0x85, 0x6b, 0xa9, 0xbc, 0x49, 0x32, - 0x10, 0x66, 0xca, 0xa8, 0xd4, 0xdf, 0x0a, 0x6e, 0x90, 0x01, 0x27, 0x10, 0xf7, 0x97, 0x07, 0x13, - 0x4d, 0xaf, 0xa5, 0x5b, 0xe2, 0x32, 0x7f, 0x56, 0xe7, 0x4c, 0xd9, 0x99, 0x8c, 0x1c, 0xdc, 0x85, - 0xb9, 0xcc, 0xbc, 0x4c, 0xd2, 0xad, 0xe8, 0x97, 0xb5, 0xc9, 0x48, 0xf5, 0xff, 0xa7, 0x79, 0x91, - 0x13, 0x39, 0x7f, 0x64, 0x1c, 0xc2, 0x98, 0xe7, 0x49, 0xc6, 0x21, 0xcc, 0x09, 0x98, 0x18, 0x37, - 0xb7, 0x60, 0x36, 0x2b, 0x8b, 0x92, 0x12, 0xb7, 0x33, 0xa6, 0x58, 0xca, 0xe0, 0xa8, 0x2d, 0x66, - 0xbb, 0x81, 0x5a, 0x9f, 0x9c, 0x4a, 0x46, 0x0e, 0xfc, 0x42, 0x64, 0xca, 0x4a, 0xe7, 0x3e, 0x92, - 0xbb, 0xb5, 0x01, 0xc9, 0x91, 0xfa, 0x38, 0x95, 0x57, 0x1b, 0xee, 0xa1, 0xa7, 0xa4, 0x29, 0x92, - 0x2e, 0x65, 0x3a, 0x3f, 0x92, 0xb4, 0x2c, 0x59, 0x59, 0x8d, 0x9e, 0xc2, 0xac, 0x58, 0x62, 0xd5, - 0xb4, 0x3e, 0x28, 0x85, 0x13, 0x5f, 0xc0, 0x97, 0x56, 0x26, 0x33, 0x0f, 0x10, 0xdb, 0x93, 0xd1, - 0x1f, 0x72, 0x52, 0xf6, 0x64, 0x4a, 0xbe, 0x9d, 0xb2, 0x9e, 0x9a, 0x07, 0x7d, 0x41, 0xf7, 0x64, - 0x2c, 0xfd, 0xa2, 0x39, 0x28, 0xac, 0x51, 0x8a, 0x6d, 0xda, 0x8a, 0x08, 0x1b, 0xd2, 0x06, 0x75, - 0xca, 0x83, 0xb7, 0x59, 0x14, 0x49, 0xdf, 0x66, 0xa9, 0x1d, 0x35, 0x07, 0x67, 0x26, 0xd5, 0x57, - 0xbd, 0x92, 0x57, 0x19, 0x8f, 0xff, 0x25, 0xaf, 0xb2, 0x1e, 0xd5, 0x53, 0xaf, 0x7e, 0x57, 0xb8, - 0x70, 0x31, 0xbd, 0x5b, 0x7d, 0x5f, 0xc5, 0x97, 0x17, 0xfb, 0x3f, 0x25, 0xe7, 0xa7, 0x03, 0xc5, - 0xe4, 0xc3, 0x63, 0x94, 0x95, 0x06, 0x41, 0x79, 0x7d, 0x2d, 0x1d, 0x11, 0xe3, 0x8b, 0xe5, 0x1d, - 0xe1, 0x1e, 0xea, 0x74, 0x0d, 0x4f, 0xdb, 0x55, 0xd2, 0xfd, 0xdd, 0x88, 0xf8, 0x0d, 0xb2, 0xea, - 0xc4, 0xa5, 0xde, 0x38, 0xab, 0x6e, 0x44, 0xc6, 0xb3, 0x65, 0x57, 0xdc, 0x29, 0xc9, 0x4e, 0xda, - 0xf4, 0xae, 0xee, 0x66, 0xf5, 0xb9, 0x14, 0x3a, 0xf0, 0xfc, 0x05, 0xfd, 0x8e, 0xc8, 0x46, 0x99, - 0x4e, 0x3c, 0xf1, 0x4e, 0x22, 0x0e, 0x93, 0x7d, 0xe3, 0xb1, 0xdc, 0x2f, 0xaf, 0x05, 0x7a, 0x42, - 0xdf, 0x82, 0x3d, 0xdd, 0x5c, 0xad, 0xf3, 0x9f, 0x6b, 0xf5, 0x83, 0x54, 0x80, 0x5b, 0xf9, 0xc9, - 0x91, 0x98, 0xc9, 0xac, 0x8a, 0x86, 0xb8, 0xbf, 0x82, 0x1a, 0x34, 0xce, 0xaa, 0x41, 0x33, 0x62, - 0xdc, 0x19, 0x04, 0xcb, 0xd9, 0x04, 0x69, 0xd0, 0x7f, 0x4d, 0xac, 0x66, 0x7a, 0x37, 0x0d, 0x7d, - 0xe8, 0xe7, 0x05, 0x30, 0xb5, 0xc9, 0x26, 0x23, 0x7a, 0x37, 0x48, 0x8f, 0x18, 0xc7, 0x1a, 0xd5, - 0x27, 0x5b, 0xaf, 0xc4, 0x31, 0x0d, 0x71, 0x7f, 0x99, 0x73, 0x4c, 0x83, 0x5e, 0x8e, 0x63, 0x09, - 0x82, 0x3a, 0xc7, 0xf4, 0x6e, 0x1a, 0xfa, 0x30, 0x98, 0x63, 0xd9, 0x64, 0x2e, 0xca, 0xb1, 0x6f, - 0xe9, 0xfa, 0xbc, 0x4e, 0x5f, 0x26, 0x5d, 0x8a, 0x67, 0x25, 0xe1, 0xc1, 0xea, 0xa8, 0xfb, 0x2b, - 0xe8, 0x19, 0x4d, 0xb9, 0x99, 0x80, 0x5f, 0x8c, 0x6f, 0x0b, 0x26, 0xa2, 0x94, 0x73, 0x9b, 0x30, - 0xc7, 0x38, 0x97, 0xec, 0xae, 0xb1, 0x2f, 0xc6, 0x61, 0xaf, 0x0b, 0x67, 0x27, 0x49, 0xea, 0xb2, - 0xfc, 0x5b, 0xa5, 0x2a, 0xb2, 0x1b, 0x10, 0xff, 0xb4, 0x9d, 0x76, 0x5e, 0x75, 0x22, 0x22, 0x32, - 0xae, 0x57, 0xdf, 0x5f, 0x46, 0x9b, 0x54, 0x0a, 0x3a, 0xb8, 0x9f, 0x77, 0x9f, 0x4d, 0x86, 0x32, - 0x69, 0x43, 0x38, 0x44, 0x89, 0x3e, 0x99, 0xda, 0x36, 0x77, 0x4a, 0x6e, 0x7d, 0x2e, 0x38, 0x3a, - 0x13, 0x8b, 0xd8, 0xc2, 0xce, 0x76, 0x1a, 0x83, 0x38, 0x93, 0xfc, 0xa9, 0x73, 0xf4, 0x73, 0x18, - 0x17, 0xc8, 0x83, 0x19, 0x92, 0xc4, 0xa6, 0x0c, 0xf9, 0x1a, 0x26, 0x38, 0x43, 0x68, 0x0f, 0x4c, - 0x2d, 0x19, 0xbb, 0xff, 0x15, 0x4c, 0x70, 0x36, 0xf4, 0x1d, 0x81, 0xf9, 0x58, 0x71, 0x6e, 0x1d, - 0x47, 0x19, 0x3f, 0xc5, 0x3b, 0x68, 0x30, 0x59, 0xbf, 0xfc, 0x8b, 0xf6, 0xe9, 0x9b, 0x4e, 0xd3, - 0xcf, 0x26, 0x9b, 0x48, 0x0e, 0xfc, 0xd1, 0x66, 0x42, 0xb7, 0x61, 0xa6, 0x3b, 0x10, 0xdf, 0x38, - 0xfa, 0x6d, 0x58, 0xa0, 0x67, 0x10, 0x97, 0xed, 0xb1, 0x79, 0x93, 0x72, 0x23, 0xbe, 0x7e, 0x90, - 0xfc, 0xc5, 0x66, 0x13, 0xb1, 0x41, 0x3f, 0x16, 0x4d, 0xa8, 0x36, 0x8c, 0x54, 0x07, 0x61, 0xf7, - 0x59, 0x8c, 0x6e, 0xd2, 0xb1, 0x5f, 0xb2, 0xb7, 0xfd, 0x2d, 0x4d, 0xe2, 0x27, 0xa4, 0x07, 0xdd, - 0x9e, 0x48, 0xfe, 0x48, 0x35, 0xa1, 0xd2, 0x48, 0x51, 0x31, 0xd5, 0xee, 0xb7, 0xf8, 0xd0, 0xa1, - 0x5d, 0xb0, 0x37, 0xe6, 0xc3, 0x91, 0x71, 0x99, 0xf0, 0x02, 0x29, 0xbe, 0xbd, 0x96, 0xce, 0xa1, - 0x3c, 0xa5, 0xde, 0x75, 0x08, 0x51, 0x95, 0xad, 0xf1, 0x6a, 0xe2, 0x07, 0x25, 0x8a, 0x98, 0x99, - 0x11, 0x22, 0x49, 0x82, 0xed, 0x4d, 0xe8, 0xef, 0x5a, 0x2b, 0x7b, 0x13, 0xe5, 0x49, 0x7c, 0x59, - 0x7f, 0xb0, 0xce, 0x4d, 0x18, 0x7d, 0xb5, 0xae, 0x9e, 0x17, 0xa9, 0x8f, 0xe2, 0xd5, 0xbd, 0x89, - 0xfe, 0x7c, 0x5f, 0xee, 0x4d, 0x68, 0x83, 0x3a, 0xe5, 0xc1, 0x7b, 0x13, 0x8a, 0xa4, 0xef, 0x4d, - 0xd4, 0x8e, 0x9a, 0x27, 0x1e, 0x4a, 0xbf, 0xdf, 0x97, 0xfb, 0x6e, 0xe3, 0xd3, 0xfe, 0x3e, 0x47, - 0x4a, 0x33, 0x19, 0x99, 0x5a, 0xa4, 0xcf, 0x6f, 0xce, 0xe2, 0x52, 0xd6, 0xcf, 0x47, 0x1e, 0xe4, - 0xd0, 0x36, 0x4d, 0x7c, 0x9d, 0xf5, 0x73, 0xdf, 0x26, 0xfd, 0xe9, 0xfb, 0xfb, 0xe2, 0x84, 0x5e, - 0x23, 0x9b, 0x5e, 0x5f, 0xbc, 0x3e, 0xdb, 0xba, 0x1b, 0xfc, 0x46, 0xc9, 0x25, 0xba, 0x68, 0x56, - 0xf1, 0x31, 0x16, 0x23, 0x36, 0xa3, 0x16, 0xd5, 0xdf, 0xd7, 0xa6, 0x4b, 0xd6, 0x12, 0x8c, 0x32, - 0x24, 0xe3, 0x6a, 0xa3, 0xfd, 0x26, 0x37, 0xfa, 0x40, 0x1c, 0xdc, 0x12, 0x14, 0xad, 0xc8, 0xd8, - 0xaf, 0x0f, 0x60, 0x9c, 0x85, 0xdd, 0x2e, 0x8e, 0xf2, 0x85, 0x38, 0xde, 0xed, 0xd7, 0x31, 0xf3, - 0xad, 0x8a, 0x29, 0x35, 0xe0, 0x7c, 0x79, 0x46, 0x7e, 0x45, 0x43, 0x9f, 0x22, 0xd4, 0x60, 0xc6, - 0x9f, 0x4b, 0xfd, 0x7e, 0x3a, 0x65, 0xe9, 0xa7, 0x34, 0xfe, 0x2a, 0x53, 0x1e, 0x99, 0xba, 0x9f, - 0xfe, 0xf5, 0x75, 0xf4, 0x05, 0x4c, 0x33, 0xe6, 0x4a, 0xe4, 0x74, 0xa5, 0x3e, 0x3c, 0x9b, 0x66, - 0x6c, 0x7e, 0x15, 0xe4, 0x9f, 0x8b, 0x40, 0xed, 0xc0, 0x6e, 0x5f, 0x24, 0x44, 0x3b, 0x98, 0x75, - 0x26, 0x2a, 0xbf, 0x43, 0x17, 0xdd, 0xec, 0x3c, 0x1d, 0x46, 0x62, 0xf7, 0x94, 0x10, 0x74, 0xff, - 0x0c, 0x1f, 0xc7, 0xf4, 0x76, 0x60, 0xf6, 0x2f, 0xf0, 0xdf, 0x1d, 0x40, 0x45, 0x30, 0xe0, 0x67, - 0x03, 0xeb, 0xc9, 0x38, 0x17, 0xcf, 0xba, 0x9e, 0xdd, 0xde, 0x80, 0x6c, 0x1d, 0x19, 0x21, 0x43, - 0x43, 0x12, 0x0c, 0x41, 0x50, 0x3f, 0x76, 0xec, 0x3b, 0x06, 0xf3, 0x16, 0x2d, 0x4e, 0x9e, 0x7e, - 0x49, 0x21, 0x98, 0xdd, 0x28, 0x94, 0x4e, 0x0d, 0x82, 0xfa, 0x3d, 0x7f, 0x52, 0x03, 0xb2, 0xa6, - 0x94, 0x22, 0xeb, 0xe2, 0x2a, 0x6a, 0xe2, 0xc7, 0x6d, 0x4d, 0x2f, 0x07, 0xfb, 0xec, 0xce, 0xf8, - 0x65, 0xcc, 0x37, 0x42, 0x28, 0x2d, 0xed, 0xcb, 0x13, 0x92, 0x81, 0xe1, 0x04, 0x21, 0xab, 0x8f, - 0x78, 0x07, 0x07, 0xbd, 0x4a, 0x06, 0xb9, 0x5e, 0x5e, 0xa0, 0x4e, 0x7c, 0xed, 0x2f, 0x9d, 0xbf, - 0x44, 0x2e, 0xfb, 0xc6, 0x5c, 0x2a, 0x52, 0xba, 0x7d, 0x92, 0x9f, 0xd4, 0xe3, 0x1f, 0xab, 0xd1, - 0x12, 0x9e, 0xd4, 0xed, 0x2d, 0x19, 0xae, 0xcb, 0xca, 0x84, 0x52, 0x06, 0x51, 0x68, 0x6f, 0x91, - 0xb9, 0x6e, 0x4a, 0xd6, 0x11, 0x5f, 0x5d, 0xea, 0x9f, 0xca, 0x44, 0xce, 0xf5, 0x81, 0x59, 0x3f, - 0xb6, 0x61, 0x36, 0x2b, 0xc9, 0x86, 0x14, 0x5a, 0x9f, 0x0c, 0x1c, 0x99, 0xf7, 0xa3, 0x76, 0x60, - 0x2e, 0x33, 0xd1, 0x85, 0x3c, 0x21, 0xe9, 0x97, 0x06, 0x23, 0x93, 0xe2, 0x77, 0x30, 0x6f, 0xc8, - 0xea, 0x10, 0x07, 0x10, 0xfb, 0x66, 0x7d, 0x30, 0x2a, 0xc4, 0xf7, 0x50, 0x36, 0x27, 0x0c, 0x40, - 0xf7, 0xf4, 0x20, 0xa8, 0xf9, 0x99, 0x7e, 0x39, 0x33, 0xc3, 0x09, 0xda, 0xa5, 0xc9, 0xd7, 0xb2, - 0x32, 0x08, 0xc8, 0x7e, 0xf7, 0xcf, 0x30, 0x60, 0xb8, 0xd7, 0x36, 0x6f, 0x48, 0x1a, 0xd0, 0x87, - 0xea, 0x05, 0x7a, 0xbb, 0x2d, 0xec, 0x92, 0xfe, 0x1e, 0x3e, 0x71, 0x45, 0x3e, 0xf3, 0xb1, 0x7c, - 0x66, 0x3f, 0xbf, 0x81, 0x29, 0xed, 0x35, 0xa6, 0x54, 0xff, 0xac, 0x37, 0xbc, 0x32, 0x5a, 0x9d, - 0xf9, 0x80, 0xb3, 0x56, 0xfc, 0xe9, 0xbf, 0x2d, 0xe6, 0x7e, 0xfa, 0xf5, 0x62, 0xee, 0xbf, 0xfc, - 0x7a, 0x31, 0xf7, 0x67, 0xbf, 0x5e, 0xcc, 0x1d, 0x8c, 0xd2, 0xea, 0x2b, 0xff, 0x27, 0x00, 0x00, - 0xff, 0xff, 0x49, 0xa4, 0x92, 0x0e, 0xea, 0x90, 0x00, 0x00, + // 9519 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7d, 0x4b, 0x70, 0x1c, 0xc9, + 0xb6, 0x90, 0xbb, 0xf5, 0x6b, 0x1d, 0x7d, 0xdc, 0x4e, 0x49, 0x56, 0xbb, 0x2d, 0xab, 0x3d, 0xe5, + 0x19, 0x5f, 0xcf, 0xbc, 0x79, 0xb2, 0x47, 0x9a, 0xff, 0xf7, 0x76, 0xb7, 0x64, 0x49, 0x63, 0x59, + 0xd6, 0x54, 0x4b, 0xf2, 0x30, 0x77, 0x1e, 0x3d, 0xa5, 0xee, 0xb4, 0x54, 0xa8, 0x55, 0xd5, 0xb7, + 0xaa, 0x64, 0x8f, 0x20, 0x20, 0xf8, 0x3d, 0x20, 0x08, 0x88, 0x78, 0x0b, 0x58, 0xb0, 0xe2, 0xc5, + 0x83, 0x0d, 0x10, 0x6f, 0x43, 0x10, 0x04, 0x1b, 0x58, 0xb0, 0x61, 0x20, 0x82, 0x80, 0xcd, 0x0b, + 0x22, 0xde, 0xa2, 0xdf, 0xe5, 0x2e, 0xb5, 0x22, 0x82, 0x80, 0x08, 0xee, 0x8a, 0xc8, 0x6f, 0x65, + 0x56, 0x55, 0x76, 0x4b, 0xb6, 0xb9, 0x6c, 0x6c, 0xd5, 0xc9, 0x3c, 0x27, 0x33, 0x4f, 0x9e, 0x3c, + 0x79, 0xf2, 0xe4, 0xc9, 0xd3, 0x70, 0xcd, 0x39, 0x8d, 0x8e, 0x42, 0x1c, 0x3c, 0x77, 0x5b, 0x78, + 0xa9, 0x1b, 0xf8, 0x91, 0x8f, 0x46, 0xe8, 0x7f, 0xe5, 0xd9, 0x43, 0xff, 0xd0, 0xa7, 0x7f, 0xde, + 0x27, 0x7f, 0xb1, 0xc2, 0xf2, 0xcd, 0x43, 0xdf, 0x3f, 0xec, 0xe0, 0xfb, 0xf4, 0xeb, 0xe0, 0xf4, + 0xd9, 0x7d, 0x7c, 0xd2, 0x8d, 0xce, 0x78, 0x61, 0x25, 0x59, 0x18, 0xb9, 0x27, 0x38, 0x8c, 0x9c, + 0x93, 0x2e, 0xaf, 0x30, 0xd1, 0xc2, 0x41, 0x14, 0xf2, 0x8f, 0x8f, 0x0e, 0xdd, 0xe8, 0xe8, 0xf4, + 0x60, 0xa9, 0xe5, 0x9f, 0xdc, 0x3f, 0x0c, 0x9c, 0xe7, 0x6e, 0xe4, 0x44, 0xae, 0xef, 0x39, 0x9d, + 0xfb, 0x11, 0xee, 0xe0, 0xae, 0x1f, 0x44, 0xf7, 0x9d, 0xae, 0x7b, 0x3f, 0x3a, 0xeb, 0xe2, 0x90, + 0xfd, 0xcb, 0x11, 0xeb, 0x97, 0x41, 0x7c, 0x81, 0x0f, 0xc8, 0x10, 0x3d, 0xf9, 0xc7, 0x4b, 0x11, + 0x09, 0x9c, 0x6e, 0x17, 0x07, 0xf1, 0x1f, 0x9c, 0xc8, 0x57, 0x97, 0x21, 0x82, 0x9f, 0x63, 0x2f, + 0x12, 0xff, 0x31, 0x02, 0xd6, 0xbf, 0x98, 0x85, 0x91, 0x35, 0x02, 0x40, 0x1f, 0xc3, 0xf0, 0xee, + 0x59, 0x17, 0x97, 0x72, 0xb7, 0x73, 0xf7, 0xa6, 0x97, 0x8b, 0xac, 0x7c, 0xe9, 0x49, 0x17, 0x07, + 0x94, 0x64, 0x0d, 0x9d, 0xf7, 0x2a, 0xd3, 0x84, 0xd0, 0xbb, 0xfe, 0x89, 0x1b, 0x51, 0xae, 0xdb, + 0x14, 0x03, 0x3d, 0x85, 0x69, 0x1b, 0x87, 0xfe, 0x69, 0xd0, 0xc2, 0x1b, 0xd8, 0x69, 0xe3, 0xa0, + 0x94, 0xbf, 0x9d, 0xbb, 0x37, 0xb1, 0x3c, 0xb7, 0xc4, 0x98, 0xa6, 0x17, 0xd6, 0xae, 0x9f, 0xf7, + 0x2a, 0x28, 0xe0, 0xb0, 0x98, 0xd8, 0xc6, 0x15, 0x3b, 0x41, 0x06, 0x7d, 0x0f, 0x53, 0x75, 0x1c, + 0x44, 0xd5, 0xd3, 0xe8, 0xc8, 0x0f, 0xdc, 0xe8, 0xac, 0x34, 0x44, 0xe9, 0x5e, 0xe7, 0x74, 0xb5, + 0xb2, 0xfd, 0xe5, 0xda, 0xc2, 0x79, 0xaf, 0x52, 0x22, 0x13, 0xdc, 0x74, 0x04, 0x54, 0x23, 0xaf, + 0x13, 0x43, 0xdf, 0xc2, 0x64, 0x83, 0xb0, 0xab, 0xb5, 0xeb, 0x1f, 0x63, 0x2f, 0x2c, 0x0d, 0x6b, + 0x9d, 0x56, 0x8b, 0xf6, 0x97, 0x6b, 0x37, 0xcf, 0x7b, 0x95, 0xf9, 0x90, 0xc2, 0x9a, 0x11, 0x05, + 0x6a, 0xa4, 0x35, 0x4a, 0xe8, 0x07, 0x98, 0xde, 0x09, 0xfc, 0xe7, 0x6e, 0xe8, 0xfa, 0x1e, 0x05, + 0x95, 0x46, 0x28, 0xed, 0x79, 0x4e, 0x5b, 0x2f, 0xdc, 0x5f, 0xae, 0xdd, 0x3a, 0xef, 0x55, 0x6e, + 0x74, 0x05, 0x94, 0x35, 0xa0, 0x73, 0x46, 0x47, 0x41, 0xbb, 0x30, 0x51, 0xef, 0x9c, 0x86, 0x11, + 0x0e, 0xb6, 0x9d, 0x13, 0x5c, 0x1a, 0xa5, 0xe4, 0x67, 0x05, 0x5f, 0xe2, 0x92, 0xfd, 0xe5, 0x5a, + 0xf9, 0xbc, 0x57, 0xb9, 0xde, 0x62, 0xa0, 0xa6, 0xe7, 0x9c, 0xe8, 0x2c, 0x57, 0xc9, 0xa0, 0x8f, + 0x60, 0x78, 0x2f, 0xc4, 0x41, 0xa9, 0x40, 0xc9, 0x4d, 0x71, 0x72, 0x04, 0xb4, 0xbf, 0xcc, 0xe6, + 0xff, 0x34, 0xc4, 0x81, 0x86, 0x4f, 0x11, 0x08, 0xa2, 0xed, 0x77, 0x70, 0x69, 0x5c, 0x43, 0x24, + 0xa0, 0xfd, 0x0f, 0x18, 0x62, 0xe0, 0x77, 0xf4, 0x86, 0x29, 0x02, 0xda, 0x84, 0x71, 0xd2, 0x72, + 0xd8, 0x75, 0x5a, 0xb8, 0x04, 0x14, 0xbb, 0xc8, 0xb1, 0x25, 0xbc, 0x36, 0x7f, 0xde, 0xab, 0xcc, + 0x78, 0xe2, 0x53, 0xa3, 0x12, 0x63, 0xa3, 0xaf, 0x60, 0xb4, 0x81, 0x83, 0xe7, 0x38, 0x28, 0x4d, + 0x50, 0x3a, 0x57, 0xc5, 0x44, 0x52, 0xe0, 0xfe, 0x72, 0x6d, 0xf6, 0xbc, 0x57, 0x29, 0x86, 0xf4, + 0x4b, 0xa3, 0xc1, 0xd1, 0x88, 0xb4, 0xd9, 0xf8, 0x39, 0x0e, 0x42, 0xbc, 0x7b, 0xea, 0x79, 0xb8, + 0x53, 0x9a, 0xd4, 0xa4, 0x4d, 0x2b, 0x13, 0xd2, 0x16, 0x30, 0x60, 0x33, 0xa2, 0x50, 0x5d, 0xda, + 0x34, 0x04, 0x74, 0x04, 0x45, 0xf6, 0x57, 0xdd, 0xf7, 0x3c, 0xdc, 0x22, 0x4b, 0xaa, 0x34, 0x45, + 0x1b, 0xb8, 0xc1, 0x1b, 0x48, 0x16, 0xef, 0x2f, 0xd7, 0x2a, 0xe7, 0xbd, 0xca, 0x4d, 0x46, 0xbb, + 0xd9, 0x92, 0x05, 0x5a, 0x33, 0x29, 0xaa, 0x64, 0x1c, 0xd5, 0x56, 0x0b, 0x87, 0xa1, 0x8d, 0x7f, + 0x79, 0x8a, 0xc3, 0xa8, 0x34, 0xad, 0x8d, 0x43, 0x2b, 0xdb, 0x5f, 0x61, 0xe3, 0x70, 0x28, 0xb0, + 0x19, 0x30, 0xa8, 0x3e, 0x0e, 0x0d, 0x01, 0xed, 0x00, 0x54, 0xbb, 0xdd, 0x06, 0x0e, 0x89, 0x30, + 0x96, 0xae, 0x52, 0xd2, 0x33, 0x9c, 0xf4, 0x53, 0x7c, 0xc0, 0x0b, 0xf6, 0x97, 0x6b, 0x37, 0xce, + 0x7b, 0x95, 0x39, 0xa7, 0xdb, 0x6d, 0x86, 0x0c, 0xa4, 0x11, 0x55, 0x68, 0x30, 0xbe, 0x9f, 0xf8, + 0x11, 0xe6, 0xa2, 0x58, 0x2a, 0x26, 0xf8, 0xae, 0x94, 0x89, 0xfe, 0x06, 0x14, 0xd8, 0xe4, 0x62, + 0x9d, 0xe4, 0xbb, 0x82, 0x40, 0xd6, 0xe2, 0xaa, 0x13, 0x39, 0x07, 0x4e, 0x88, 0xb9, 0x78, 0x5c, + 0xd3, 0xd6, 0xa2, 0x5e, 0xb8, 0xbf, 0xc2, 0xd6, 0x62, 0x9b, 0x43, 0x9b, 0x19, 0xf2, 0x92, 0xa0, + 0x47, 0x38, 0x12, 0x0f, 0xbc, 0x84, 0x06, 0x70, 0xe4, 0x05, 0x3e, 0xc8, 0xe6, 0x48, 0x5c, 0x15, + 0x6d, 0x40, 0xe1, 0x29, 0x3e, 0x60, 0x9a, 0x63, 0x86, 0xd2, 0xbb, 0x16, 0xd3, 0x63, 0x3a, 0x63, + 0x85, 0xad, 0x0a, 0x42, 0x2d, 0xad, 0x2d, 0x24, 0x36, 0xfa, 0xfd, 0x1c, 0xcc, 0x8b, 0x15, 0x8e, + 0xa3, 0x17, 0x7e, 0x70, 0xec, 0x7a, 0x87, 0x75, 0xdf, 0x7b, 0xe6, 0x1e, 0x96, 0x66, 0x29, 0xe5, + 0xdb, 0x09, 0xa5, 0x91, 0xa8, 0xb5, 0xbf, 0x5c, 0xfb, 0xd9, 0x79, 0xaf, 0x72, 0x47, 0x2a, 0x10, + 0x59, 0x4e, 0x04, 0xf2, 0x99, 0x7b, 0xa8, 0x35, 0x6c, 0x6a, 0x0b, 0xfd, 0xb5, 0x1c, 0x5c, 0xe7, + 0xa3, 0xb3, 0x71, 0xcb, 0x0f, 0xda, 0x71, 0x37, 0xe6, 0x68, 0x37, 0x2a, 0x72, 0xb5, 0x66, 0x55, + 0xda, 0x5f, 0xae, 0xdd, 0x3d, 0xef, 0x55, 0x2c, 0xce, 0xb8, 0x66, 0x20, 0x8a, 0xb3, 0x3a, 0x61, + 0x68, 0x88, 0x48, 0x02, 0x51, 0xfe, 0x3b, 0x01, 0x7e, 0x86, 0x03, 0xec, 0xb5, 0x70, 0xe9, 0xba, + 0x26, 0x09, 0x7a, 0xa1, 0xd0, 0xca, 0x64, 0x2b, 0x69, 0x76, 0x25, 0x58, 0x97, 0x04, 0x1d, 0x05, + 0xfd, 0x12, 0x10, 0x67, 0x40, 0xf5, 0xb4, 0xed, 0x46, 0x7c, 0x80, 0xf3, 0xb4, 0x95, 0x9b, 0x3a, + 0x9f, 0x95, 0x0a, 0xfb, 0xcb, 0x35, 0xeb, 0xbc, 0x57, 0x59, 0x14, 0x2c, 0x76, 0x48, 0x51, 0xd6, + 0xc0, 0x32, 0x88, 0x13, 0xcd, 0xbb, 0xe5, 0xb7, 0x8e, 0x4b, 0x25, 0x4d, 0xf3, 0x12, 0x90, 0x50, + 0xd9, 0x1d, 0xbf, 0x75, 0xac, 0x6b, 0x5e, 0x52, 0x8a, 0x22, 0x98, 0xe1, 0xb3, 0x64, 0xe3, 0x30, + 0x0a, 0x5c, 0xaa, 0x3b, 0xc2, 0xd2, 0x0d, 0x4a, 0x67, 0x41, 0xe8, 0xe0, 0x74, 0x8d, 0xfd, 0xf7, + 0x59, 0x6f, 0xb9, 0x20, 0x34, 0x03, 0xa5, 0x4c, 0x6b, 0x26, 0x8b, 0x3c, 0xfa, 0xcb, 0x30, 0xf7, + 0xd4, 0xf5, 0xda, 0xfe, 0x8b, 0x70, 0x15, 0x87, 0xc7, 0x91, 0xdf, 0x6d, 0x30, 0xcb, 0xaf, 0x54, + 0xa6, 0xed, 0x2e, 0x0a, 0x31, 0xcf, 0xaa, 0xb3, 0xbf, 0x52, 0x7b, 0xeb, 0xbc, 0x57, 0x79, 0xe3, + 0x05, 0x2b, 0x6c, 0xb6, 0x59, 0x69, 0x93, 0x1b, 0x8f, 0x5a, 0xe3, 0xd9, 0xad, 0x10, 0x11, 0xd0, + 0x0b, 0x4a, 0x37, 0x35, 0x11, 0xd0, 0x0b, 0x85, 0x32, 0x48, 0x34, 0xa8, 0x8b, 0x80, 0x8e, 0x82, + 0xd6, 0xa1, 0x20, 0xd4, 0x43, 0x69, 0x41, 0x5b, 0xba, 0x02, 0xbc, 0xbf, 0xc2, 0x2c, 0x20, 0xa1, + 0x62, 0xf4, 0x95, 0x2b, 0x6a, 0xa1, 0x2d, 0x18, 0xa7, 0x3a, 0x92, 0xaa, 0xac, 0x5b, 0x94, 0x12, + 0x12, 0x82, 0x2a, 0xe0, 0xfb, 0x2b, 0xb5, 0xd2, 0x79, 0xaf, 0x32, 0xcb, 0xb4, 0x6c, 0x4a, 0x51, + 0xc5, 0x04, 0xd0, 0x0a, 0x0c, 0x55, 0xbb, 0xdd, 0xd2, 0x22, 0xa5, 0x33, 0x19, 0xd3, 0xd9, 0x5f, + 0xa9, 0x5d, 0x3b, 0xef, 0x55, 0xa6, 0x9c, 0xae, 0x3e, 0x2c, 0x52, 0xbb, 0x06, 0x50, 0x10, 0x06, + 0xd9, 0xd7, 0xc3, 0x85, 0xb1, 0x62, 0xc1, 0xda, 0x80, 0x91, 0xa7, 0x4e, 0xd4, 0x3a, 0x42, 0x5f, + 0xc1, 0xc8, 0x23, 0xd7, 0x6b, 0x87, 0xa5, 0xdc, 0xed, 0x21, 0xba, 0x67, 0x33, 0x6b, 0x91, 0x16, + 0x92, 0x82, 0xda, 0xfc, 0x4f, 0xbd, 0xca, 0x95, 0xf3, 0x5e, 0xe5, 0xea, 0x31, 0xa9, 0xa6, 0x98, + 0x8c, 0x0c, 0xcf, 0xfa, 0x57, 0x79, 0x18, 0x97, 0xb5, 0xd1, 0x02, 0x0c, 0x93, 0xff, 0xa9, 0xed, + 0x39, 0x5e, 0x2b, 0x9c, 0xf7, 0x2a, 0xc3, 0x04, 0xcf, 0xa6, 0x50, 0xb4, 0x0c, 0x13, 0x5b, 0xbe, + 0xd3, 0x6e, 0xe0, 0x56, 0x80, 0xa3, 0x90, 0x1a, 0x97, 0x85, 0x5a, 0xf1, 0xbc, 0x57, 0x99, 0xec, + 0xf8, 0x4e, 0xbb, 0x19, 0x32, 0xb8, 0xad, 0x56, 0x22, 0x14, 0xa9, 0x65, 0x34, 0x14, 0x53, 0x24, + 0x16, 0x84, 0x4d, 0xa1, 0xe8, 0x6b, 0x18, 0x7d, 0xe8, 0x76, 0xc8, 0x5e, 0x33, 0x4c, 0xfb, 0xbf, + 0x90, 0xec, 0xff, 0x12, 0x2b, 0x5e, 0xf3, 0xa2, 0xe0, 0x8c, 0x19, 0x0e, 0xcf, 0x28, 0x40, 0x19, + 0x08, 0xa7, 0x80, 0x1e, 0xc0, 0x58, 0xe3, 0xf4, 0x80, 0x76, 0x7f, 0x84, 0x36, 0x46, 0x67, 0x37, + 0x3c, 0x3d, 0x68, 0x92, 0x21, 0x28, 0x08, 0xa2, 0x5a, 0xf9, 0x13, 0x98, 0x50, 0xc8, 0xa3, 0x22, + 0x0c, 0x1d, 0xe3, 0x33, 0x36, 0x76, 0x9b, 0xfc, 0x89, 0x66, 0x61, 0xe4, 0xb9, 0xd3, 0x39, 0xc5, + 0x74, 0xa8, 0xe3, 0x36, 0xfb, 0xf8, 0x34, 0xff, 0x71, 0xce, 0xfa, 0x2f, 0xc3, 0x50, 0xdc, 0xf0, + 0xc3, 0x88, 0x58, 0xb2, 0x72, 0x4b, 0xbe, 0x03, 0xa3, 0x04, 0xb6, 0xb9, 0xca, 0xf9, 0x37, 0x71, + 0xde, 0xab, 0x8c, 0x1d, 0xf9, 0x61, 0xd4, 0x74, 0xdb, 0x36, 0x2f, 0x42, 0x6f, 0x43, 0x61, 0xdb, + 0x6f, 0x63, 0xca, 0x14, 0x4a, 0xb6, 0x36, 0x75, 0xde, 0xab, 0x8c, 0x7b, 0x7e, 0x1b, 0x53, 0xab, + 0xd0, 0x96, 0xc5, 0x68, 0x9f, 0x5b, 0x73, 0x8c, 0x77, 0x35, 0xc2, 0x3b, 0x62, 0xbe, 0xfd, 0xa6, + 0x57, 0xf9, 0xf0, 0x12, 0xc7, 0x8d, 0xa5, 0xc6, 0x59, 0x18, 0xe1, 0x13, 0x42, 0x89, 0x1b, 0x7b, + 0x4f, 0x61, 0xb6, 0xda, 0x6e, 0xbb, 0x0c, 0x63, 0x27, 0x70, 0xbd, 0x96, 0xdb, 0x75, 0x3a, 0x21, + 0x9d, 0x83, 0xf1, 0xda, 0x9d, 0xf3, 0x5e, 0xa5, 0xe2, 0xc8, 0xf2, 0x66, 0x57, 0x56, 0x50, 0x78, + 0x98, 0x49, 0x00, 0xad, 0x40, 0x61, 0x75, 0xbb, 0x41, 0x4d, 0xc1, 0xd2, 0x08, 0x25, 0x46, 0x37, + 0xc7, 0xb6, 0x17, 0xd2, 0xa1, 0xa9, 0x04, 0x64, 0x45, 0xf4, 0x21, 0x4c, 0xee, 0x9c, 0x1e, 0x74, + 0xdc, 0xd6, 0xee, 0x56, 0xe3, 0x11, 0x3e, 0xa3, 0x36, 0xf4, 0x24, 0x53, 0x99, 0x5d, 0x0a, 0x6f, + 0x46, 0x9d, 0xb0, 0x79, 0x8c, 0xcf, 0x6c, 0xad, 0x5e, 0x8c, 0xd7, 0x68, 0x6c, 0x10, 0xbc, 0xb1, + 0x14, 0x5e, 0x18, 0x1e, 0xa9, 0x78, 0xac, 0x1e, 0xba, 0x0f, 0xc0, 0x2c, 0x93, 0x6a, 0xbb, 0xcd, + 0x4c, 0xec, 0xf1, 0xda, 0xd5, 0xf3, 0x5e, 0x65, 0x82, 0xdb, 0x32, 0x4e, 0xbb, 0x1d, 0xd8, 0x4a, + 0x15, 0x54, 0x87, 0x82, 0xed, 0x33, 0x06, 0x73, 0xc3, 0xfa, 0xaa, 0x34, 0xac, 0x19, 0x98, 0x1f, + 0xa5, 0xf8, 0x97, 0x3a, 0x4a, 0x51, 0x03, 0x55, 0x60, 0x6c, 0xdb, 0xaf, 0x3b, 0xad, 0x23, 0x66, + 0x5e, 0x17, 0x6a, 0x23, 0xe7, 0xbd, 0x4a, 0xee, 0x77, 0x6d, 0x01, 0xb5, 0xfe, 0x69, 0x01, 0x8a, + 0xc4, 0x86, 0xd7, 0x24, 0xea, 0x5d, 0x18, 0x67, 0x7d, 0x7f, 0xc4, 0x05, 0x73, 0xb2, 0x36, 0x7d, + 0xde, 0xab, 0x00, 0x1f, 0x20, 0x19, 0x5c, 0x5c, 0x01, 0xdd, 0x83, 0x02, 0xa1, 0xe0, 0xc5, 0xa2, + 0x35, 0x79, 0xde, 0xab, 0x14, 0x4e, 0x39, 0xcc, 0x96, 0xa5, 0xa8, 0x01, 0x63, 0x6b, 0x3f, 0x76, + 0xdd, 0x00, 0x87, 0xfc, 0x28, 0x57, 0x5e, 0x62, 0x27, 0xf6, 0x25, 0x71, 0x62, 0x5f, 0xda, 0x15, + 0x27, 0xf6, 0xda, 0x2d, 0xae, 0x42, 0xae, 0x61, 0x86, 0x12, 0x8f, 0xef, 0x0f, 0xfe, 0xac, 0x92, + 0xb3, 0x05, 0x25, 0xf4, 0x2e, 0x8c, 0x3e, 0xf4, 0x83, 0x13, 0x27, 0xa2, 0x27, 0xb8, 0x71, 0xbe, + 0x5c, 0x29, 0x44, 0x5b, 0xae, 0x14, 0x82, 0x1e, 0xc2, 0xb4, 0xed, 0x9f, 0x46, 0x78, 0xd7, 0x17, + 0xe6, 0x26, 0x5b, 0xb5, 0x8b, 0xe7, 0xbd, 0x4a, 0x39, 0x20, 0x25, 0xcd, 0xc8, 0x4f, 0x1b, 0x96, + 0x76, 0x02, 0x0b, 0xad, 0xc1, 0xb4, 0x66, 0x18, 0x87, 0xa5, 0x51, 0x2a, 0x79, 0xcc, 0x68, 0xd0, + 0xcc, 0x69, 0x55, 0xfe, 0x12, 0x48, 0x68, 0x1b, 0xae, 0x3d, 0x3a, 0x3d, 0xc0, 0x81, 0x87, 0x23, + 0x1c, 0x8a, 0x1e, 0x8d, 0xd1, 0x1e, 0xdd, 0x3e, 0xef, 0x55, 0x16, 0x8e, 0x65, 0x61, 0x46, 0x9f, + 0xd2, 0xa8, 0x08, 0xc3, 0x55, 0xde, 0x51, 0xb9, 0x0d, 0x15, 0xb8, 0x39, 0xcd, 0x54, 0x5c, 0xa2, + 0xb4, 0x76, 0x87, 0x73, 0xf9, 0xa6, 0x1c, 0x7b, 0x7a, 0x63, 0xb2, 0x93, 0x34, 0xc9, 0x8a, 0x93, + 0xda, 0x64, 0x9c, 0xf6, 0x96, 0x1d, 0xd2, 0x84, 0x36, 0x51, 0x65, 0x51, 0xea, 0x95, 0x2d, 0x18, + 0xd9, 0x0b, 0x9d, 0x43, 0x26, 0x89, 0xd3, 0xcb, 0x6f, 0xf0, 0x1e, 0x25, 0xa5, 0x8f, 0x9e, 0xeb, + 0x69, 0xc5, 0xda, 0x0c, 0xd9, 0x41, 0x4e, 0xc9, 0x9f, 0xea, 0x0e, 0x42, 0xcb, 0xd0, 0x37, 0x00, + 0xbc, 0x57, 0x64, 0x67, 0x9b, 0xe0, 0x7b, 0xad, 0x36, 0x48, 0xb2, 0x89, 0x2d, 0xf2, 0xf1, 0x5d, + 0x97, 0xe3, 0xd3, 0xf6, 0x3a, 0x5b, 0x21, 0x82, 0xbe, 0x82, 0x49, 0xaa, 0xae, 0xc4, 0x8c, 0x4e, + 0xd2, 0x19, 0xa5, 0x47, 0x7f, 0xa2, 0x00, 0xb3, 0xe6, 0x53, 0x43, 0x40, 0x7f, 0x05, 0xe6, 0x38, + 0xb9, 0x84, 0x99, 0x31, 0xc5, 0xcd, 0x2a, 0xad, 0x7b, 0x7a, 0x9d, 0xda, 0x3b, 0xbc, 0xa7, 0x96, + 0xec, 0xa9, 0xd1, 0xf0, 0xb0, 0xb3, 0x9b, 0xb1, 0xbe, 0x85, 0x71, 0xc9, 0x3c, 0x34, 0x06, 0x43, + 0xd5, 0x4e, 0xa7, 0x78, 0x85, 0xfc, 0xd1, 0x68, 0x6c, 0x14, 0x73, 0x68, 0x1a, 0x20, 0x96, 0x98, + 0x62, 0x1e, 0x4d, 0xc6, 0xc6, 0x4a, 0x71, 0x88, 0xd6, 0xef, 0x76, 0x8b, 0xc3, 0x08, 0x25, 0xad, + 0xa4, 0xe2, 0x88, 0xf5, 0xdf, 0x72, 0x29, 0xc1, 0x22, 0xfb, 0x32, 0x37, 0xac, 0xa8, 0x1c, 0xb0, + 0xcd, 0x87, 0xee, 0xcb, 0xdc, 0x24, 0x63, 0x1b, 0x8b, 0x5a, 0x89, 0xe8, 0x8a, 0x1d, 0xc2, 0x83, + 0x96, 0xdf, 0x51, 0x75, 0x45, 0x97, 0xc3, 0x6c, 0x59, 0x8a, 0x96, 0x15, 0xad, 0x32, 0x14, 0x6f, + 0xac, 0x42, 0xab, 0xa8, 0x12, 0x26, 0xf5, 0xcb, 0xb2, 0x62, 0x7d, 0x0d, 0xc7, 0x38, 0x19, 0x12, + 0x2d, 0xeb, 0x59, 0xa7, 0x86, 0x39, 0x43, 0x9f, 0xa5, 0x8c, 0x45, 0x36, 0x42, 0x2a, 0x94, 0x89, + 0xa9, 0x49, 0xd9, 0x81, 0x15, 0x18, 0xd9, 0xf2, 0x0f, 0x5d, 0x8f, 0x0f, 0x72, 0xfc, 0xbc, 0x57, + 0x19, 0xe9, 0x10, 0x80, 0xcd, 0xe0, 0xd6, 0xff, 0xc9, 0xa9, 0xf2, 0x2b, 0xed, 0x95, 0x5c, 0xa6, + 0xbd, 0xf2, 0x2e, 0x8c, 0xf3, 0x43, 0xcd, 0xe6, 0x2a, 0xa7, 0x48, 0xf5, 0xb1, 0x38, 0x0f, 0xb9, + 0x6d, 0x3b, 0xae, 0x40, 0x76, 0x1a, 0xa6, 0x9c, 0xe9, 0x4e, 0x33, 0x14, 0xef, 0x34, 0x5c, 0x7d, + 0xb3, 0x9d, 0x26, 0xae, 0x42, 0x26, 0x52, 0xf5, 0x26, 0x0d, 0xc7, 0x13, 0xa9, 0xfa, 0x8d, 0x74, + 0x5f, 0xd1, 0xa7, 0x00, 0xd5, 0xa7, 0x0d, 0x22, 0xfd, 0x55, 0x7b, 0x9b, 0xeb, 0x50, 0xea, 0x6a, + 0x72, 0x5e, 0x84, 0x4d, 0xba, 0x5a, 0x9c, 0x40, 0xdd, 0x92, 0x94, 0xda, 0x56, 0x07, 0xa6, 0xd7, + 0x71, 0x44, 0x66, 0x4d, 0x6c, 0x38, 0xfd, 0x87, 0xff, 0x39, 0x4c, 0x3c, 0x75, 0xa3, 0x23, 0xdd, + 0x00, 0xa4, 0x8d, 0xbd, 0x70, 0xa3, 0x23, 0x61, 0x00, 0x2a, 0x8d, 0xa9, 0xd5, 0xad, 0x35, 0xb8, + 0xca, 0x5b, 0x93, 0xfb, 0xdb, 0xb2, 0x4e, 0x30, 0x17, 0x5b, 0x94, 0x2a, 0x41, 0x9d, 0x0c, 0x4e, + 0x2a, 0x7c, 0xd4, 0x48, 0x6d, 0x01, 0xcc, 0x1a, 0x36, 0x79, 0x5a, 0xa8, 0xe0, 0x24, 0xb6, 0x86, + 0xe4, 0x86, 0x60, 0xed, 0xc1, 0xd4, 0x4e, 0xe7, 0xf4, 0xd0, 0xf5, 0x88, 0x80, 0x36, 0xf0, 0x2f, + 0xd1, 0x2a, 0x40, 0x0c, 0xe0, 0x2d, 0x08, 0xf7, 0x42, 0x5c, 0xb0, 0xbf, 0xc2, 0xa7, 0x98, 0x42, + 0xa8, 0x0e, 0xb7, 0x15, 0x3c, 0xeb, 0xef, 0x0e, 0x01, 0xe2, 0x6d, 0x34, 0x22, 0x27, 0xc2, 0x0d, + 0x1c, 0x91, 0xed, 0xe2, 0x3a, 0xe4, 0xa5, 0xd9, 0x38, 0x7a, 0xde, 0xab, 0xe4, 0xdd, 0xb6, 0x9d, + 0xdf, 0x5c, 0x45, 0xef, 0xc3, 0x08, 0xad, 0x46, 0x79, 0x3d, 0x2d, 0xdb, 0x53, 0x29, 0x30, 0x99, + 0x0e, 0xc9, 0x9f, 0x36, 0xab, 0x8c, 0x3e, 0x80, 0xf1, 0x55, 0xdc, 0xc1, 0x87, 0x4e, 0xe4, 0x0b, + 0xb9, 0x63, 0x86, 0x98, 0x00, 0x2a, 0x53, 0x14, 0xd7, 0x24, 0x1b, 0xb8, 0x8d, 0x9d, 0xd0, 0xf7, + 0xd4, 0x0d, 0x3c, 0xa0, 0x10, 0x75, 0x03, 0x67, 0x75, 0xd0, 0x3f, 0xcc, 0xc1, 0x44, 0xd5, 0xf3, + 0xb8, 0x81, 0x13, 0x72, 0xd7, 0xea, 0xdc, 0x92, 0xf4, 0x8c, 0x6f, 0x39, 0x07, 0xb8, 0xb3, 0x4f, + 0x4c, 0xe6, 0xb0, 0xf6, 0x3d, 0xd1, 0xa9, 0x7f, 0xda, 0xab, 0x7c, 0xf6, 0x32, 0xce, 0xf6, 0xa5, + 0xdd, 0xc0, 0x71, 0xa3, 0x90, 0xfa, 0xb1, 0xe2, 0x06, 0x55, 0x31, 0x53, 0xfa, 0x81, 0xde, 0x86, + 0x11, 0x22, 0xdf, 0xc2, 0x0e, 0xa0, 0x93, 0x4d, 0xd6, 0x81, 0x76, 0xf8, 0xa1, 0x35, 0xac, 0x3b, + 0x30, 0xce, 0x39, 0xb9, 0xb9, 0x6a, 0x9a, 0x02, 0x6b, 0x15, 0x6e, 0x51, 0x2b, 0x0e, 0x13, 0xc9, + 0xa5, 0xde, 0x1c, 0x2e, 0x89, 0xb1, 0xd9, 0x3f, 0x46, 0xc1, 0x12, 0x9b, 0x4e, 0x08, 0xf5, 0x06, + 0xd9, 0xa2, 0xc4, 0xaa, 0xc3, 0xc2, 0x3a, 0x8e, 0x6c, 0x1c, 0xe2, 0x68, 0xc7, 0x09, 0xc3, 0x17, + 0x7e, 0xd0, 0xa6, 0x45, 0x97, 0x22, 0xf2, 0x37, 0x73, 0x50, 0xa9, 0x07, 0x98, 0xcc, 0xb4, 0x91, + 0x50, 0xff, 0x15, 0xbc, 0xc0, 0x2f, 0x17, 0xf2, 0x71, 0x29, 0xe1, 0x35, 0xbf, 0x40, 0x78, 0x0b, + 0x86, 0x76, 0x77, 0xb7, 0xa8, 0xc4, 0x0c, 0x51, 0xc6, 0x0d, 0x45, 0x51, 0xe7, 0x37, 0xbd, 0x4a, + 0x61, 0xf5, 0x94, 0x5d, 0x3e, 0xd8, 0xa4, 0xdc, 0x7a, 0x06, 0x73, 0x36, 0xf6, 0xf0, 0x0b, 0xe7, + 0xa0, 0x83, 0x35, 0x73, 0xb5, 0x02, 0x23, 0xcc, 0x59, 0x96, 0x1a, 0x02, 0x83, 0xeb, 0xf6, 0x6c, + 0x7e, 0x80, 0x3d, 0x6b, 0xfd, 0x61, 0x0e, 0x8a, 0x6c, 0xb8, 0x35, 0x3f, 0xba, 0xd8, 0xf8, 0xf8, + 0x08, 0xf2, 0xfd, 0x47, 0x80, 0xee, 0xc6, 0xdc, 0x1e, 0x8a, 0x37, 0x3f, 0xda, 0x55, 0xa2, 0xc3, + 0x45, 0x21, 0x19, 0x10, 0x93, 0x25, 0x76, 0x34, 0xa2, 0x03, 0xa2, 0xb2, 0x24, 0x24, 0xe8, 0x8f, + 0xf3, 0x70, 0x4d, 0xe9, 0x62, 0xd8, 0xf5, 0xbd, 0x10, 0x93, 0x33, 0x1e, 0x11, 0x16, 0xa5, 0x9f, + 0xf4, 0x8c, 0x47, 0xb6, 0xcc, 0x66, 0x6c, 0x89, 0xd3, 0x0e, 0xbf, 0x4d, 0x0e, 0x17, 0x9d, 0xd4, + 0x71, 0x90, 0x2a, 0x6e, 0x56, 0x55, 0x14, 0x5f, 0xb8, 0xd3, 0xf7, 0xa1, 0x40, 0xff, 0x24, 0x8c, + 0x18, 0x36, 0x33, 0x42, 0x56, 0x42, 0x2e, 0xc0, 0xd7, 0xbe, 0xeb, 0x3d, 0xc6, 0xd1, 0x91, 0x2f, + 0x0e, 0xcf, 0x9b, 0x44, 0x89, 0xfd, 0x05, 0xdf, 0xf5, 0x9a, 0x27, 0x14, 0x7c, 0xd9, 0x43, 0x67, + 0x4c, 0xd0, 0x56, 0x88, 0x5b, 0x0f, 0xa0, 0x48, 0xf4, 0xcd, 0xc5, 0x67, 0xd4, 0x9a, 0x05, 0xb4, + 0x8e, 0xa3, 0x9a, 0xaf, 0x6d, 0x1c, 0xd6, 0x14, 0x4c, 0xec, 0xb8, 0xde, 0xa1, 0xf8, 0xfc, 0xd7, + 0x79, 0x98, 0x64, 0xdf, 0x7c, 0x06, 0x12, 0x3b, 0x69, 0xee, 0x22, 0x3b, 0xe9, 0xc7, 0x30, 0xc5, + 0xdd, 0x39, 0x38, 0xa0, 0x2e, 0x64, 0x36, 0x1f, 0xf4, 0x44, 0xc9, 0xbc, 0x3a, 0xcd, 0xe7, 0xac, + 0xc4, 0xd6, 0x2b, 0xa2, 0x2d, 0x98, 0x66, 0x80, 0x87, 0xd8, 0x89, 0x4e, 0xe3, 0x53, 0xd5, 0x55, + 0x6e, 0x67, 0x0a, 0x30, 0x53, 0x46, 0x9c, 0xd6, 0x33, 0x0e, 0xb4, 0x13, 0xb8, 0xe8, 0x2b, 0xb8, + 0xba, 0x13, 0xf8, 0x3f, 0x9e, 0x29, 0xb6, 0x03, 0xd3, 0xc7, 0x73, 0xe4, 0x10, 0xd6, 0x25, 0x45, + 0x4d, 0xd5, 0x82, 0x48, 0xd6, 0x26, 0x32, 0xb5, 0x19, 0xd6, 0xfc, 0xc0, 0xf5, 0x0e, 0xe9, 0x6c, + 0x16, 0x98, 0x4c, 0xb9, 0x61, 0xf3, 0x80, 0x02, 0x6d, 0x59, 0x6c, 0xfd, 0xd1, 0x10, 0x14, 0x64, + 0xc3, 0x4b, 0xaa, 0x59, 0xca, 0x37, 0x63, 0xba, 0x3c, 0xe3, 0xc3, 0x8f, 0xad, 0xd4, 0x40, 0x37, + 0x98, 0x33, 0x8b, 0x99, 0x01, 0x63, 0x44, 0xc6, 0x9c, 0x6e, 0x97, 0xba, 0xac, 0x88, 0x32, 0x5d, + 0xad, 0x51, 0x2e, 0x14, 0x98, 0x32, 0x6d, 0x1f, 0xd8, 0xf9, 0xd5, 0x1a, 0x99, 0xeb, 0x27, 0x9b, + 0xab, 0x75, 0x3a, 0xa0, 0x02, 0x9b, 0x6b, 0xdf, 0x6d, 0xb7, 0x6c, 0x0a, 0x25, 0xa5, 0x8d, 0xea, + 0xe3, 0x2d, 0xde, 0x69, 0x5a, 0x1a, 0x3a, 0x27, 0x1d, 0x9b, 0x42, 0x89, 0x1d, 0xc8, 0xf6, 0xe8, + 0xba, 0xef, 0x45, 0x81, 0xdf, 0x09, 0xa9, 0xab, 0xa0, 0xa0, 0x6d, 0xe7, 0x2d, 0x5e, 0x64, 0x27, + 0xaa, 0xa2, 0xa7, 0x30, 0x5f, 0x6d, 0x3f, 0x77, 0xbc, 0x16, 0x6e, 0xb3, 0x92, 0xa7, 0x7e, 0x70, + 0xfc, 0xac, 0xe3, 0xbf, 0x08, 0xe9, 0x29, 0xaf, 0xc0, 0xcf, 0x8b, 0xbc, 0x4a, 0x93, 0x93, 0x7b, + 0x21, 0x2a, 0xd9, 0x26, 0x6c, 0xa2, 0x22, 0xea, 0x1d, 0xff, 0xb4, 0x4d, 0x8f, 0x77, 0x05, 0xa6, + 0x22, 0x5a, 0x04, 0x60, 0x33, 0x38, 0xe1, 0xd2, 0x46, 0xe3, 0x31, 0x3d, 0x9d, 0x71, 0x2e, 0x1d, + 0x85, 0x27, 0x36, 0x81, 0xa1, 0xb7, 0x60, 0x4c, 0x98, 0xb4, 0xcc, 0x29, 0x40, 0x3d, 0x46, 0xc2, + 0x94, 0x15, 0x65, 0xd6, 0x7b, 0x70, 0x8d, 0x2d, 0x9a, 0x0b, 0x5b, 0x6a, 0xd6, 0x0e, 0x40, 0x03, + 0x9f, 0x38, 0xdd, 0x23, 0x9f, 0x4c, 0x6c, 0x4d, 0xfd, 0xe2, 0xa6, 0x0b, 0x92, 0x8e, 0x7e, 0x5e, + 0xb0, 0xbf, 0x22, 0x6c, 0x59, 0x51, 0xd3, 0x56, 0xb0, 0xac, 0xff, 0x9c, 0x07, 0x44, 0x1d, 0xde, + 0x8d, 0x28, 0xc0, 0xce, 0x89, 0xe8, 0xc6, 0x27, 0x30, 0xc9, 0xf4, 0x1f, 0x03, 0xd3, 0xee, 0x10, + 0xbb, 0x88, 0x09, 0xbe, 0x5a, 0xb4, 0x71, 0xc5, 0xd6, 0xaa, 0x12, 0x54, 0x1b, 0x87, 0xa7, 0x27, + 0x02, 0x35, 0xaf, 0xa1, 0xaa, 0x45, 0x04, 0x55, 0xfd, 0x46, 0x5f, 0xc1, 0x74, 0xdd, 0x3f, 0xe9, + 0x12, 0x9e, 0x70, 0xe4, 0x21, 0x6e, 0x7d, 0xf0, 0x76, 0xb5, 0xc2, 0x8d, 0x2b, 0x76, 0xa2, 0x3a, + 0xda, 0x86, 0x99, 0x87, 0x9d, 0xd3, 0xf0, 0xa8, 0xea, 0xb5, 0xeb, 0x1d, 0x3f, 0x14, 0x54, 0x86, + 0xb9, 0x33, 0x84, 0x2f, 0xdb, 0x74, 0x8d, 0x8d, 0x2b, 0x76, 0x16, 0x22, 0x7a, 0x8b, 0xdf, 0xde, + 0x73, 0x2b, 0x68, 0x6a, 0x89, 0x5f, 0xee, 0x3f, 0xf1, 0xf0, 0x93, 0x67, 0x1b, 0x57, 0x6c, 0x56, + 0x5a, 0x1b, 0x87, 0x31, 0xa1, 0xb2, 0xee, 0xc3, 0x35, 0x85, 0x9d, 0xc4, 0x6e, 0x3b, 0x0d, 0x51, + 0x19, 0x0a, 0x7b, 0xdd, 0x8e, 0xef, 0xb4, 0x85, 0x19, 0x60, 0xcb, 0x6f, 0xeb, 0x5d, 0x9d, 0xd3, + 0x68, 0x41, 0x3d, 0x8b, 0xb0, 0xca, 0x31, 0xc0, 0xda, 0xd0, 0x99, 0xdb, 0xbf, 0xb6, 0xd6, 0x6e, + 0x3e, 0xd1, 0x6e, 0x31, 0xc9, 0x6b, 0x6b, 0x2e, 0x93, 0x79, 0xd6, 0x23, 0x6a, 0xe2, 0x54, 0xbb, + 0xdd, 0x8e, 0xdb, 0xa2, 0x3b, 0x03, 0xd3, 0x6b, 0xd2, 0x3a, 0xf8, 0x1d, 0xf5, 0x8e, 0x59, 0xd9, + 0x16, 0xe5, 0x8d, 0xb2, 0x72, 0x8b, 0x6c, 0x7d, 0x07, 0xb7, 0x0c, 0xc4, 0xb8, 0x86, 0xff, 0x04, + 0xc6, 0x38, 0x28, 0x21, 0xd0, 0xaa, 0x57, 0x9e, 0xae, 0xa7, 0x90, 0x63, 0x8a, 0xfa, 0xd6, 0xb7, + 0xb0, 0xb8, 0xd7, 0x0d, 0x71, 0x90, 0x26, 0x2f, 0xba, 0xfa, 0xa1, 0xbc, 0xc3, 0xce, 0x19, 0x3d, + 0xfe, 0x70, 0xde, 0xab, 0x8c, 0x32, 0xda, 0xe2, 0xea, 0xda, 0xfa, 0x83, 0x1c, 0x2c, 0xb2, 0xa5, + 0x6a, 0x24, 0x7d, 0x19, 0x2e, 0x28, 0x1e, 0xe5, 0xbc, 0xd9, 0xa3, 0xdc, 0xd7, 0xc5, 0x6e, 0x7d, + 0x03, 0x16, 0xef, 0x51, 0xa7, 0xf3, 0x9a, 0xe6, 0xe6, 0xaf, 0xe7, 0x60, 0x96, 0x4d, 0xce, 0x2b, + 0x50, 0x41, 0x5f, 0xc0, 0x74, 0xe3, 0xd8, 0xed, 0xee, 0x3b, 0x1d, 0xb7, 0xcd, 0x9c, 0xab, 0x6c, + 0x23, 0x99, 0xa3, 0x7b, 0xe4, 0xb1, 0xdb, 0x6d, 0x3e, 0x8f, 0x8b, 0x72, 0x76, 0xa2, 0xb2, 0xf5, + 0x04, 0xe6, 0x12, 0x7d, 0xe0, 0x82, 0xf1, 0x61, 0x52, 0x30, 0x52, 0x01, 0x08, 0xd9, 0x52, 0xf1, + 0x18, 0xae, 0x4b, 0xa9, 0xd0, 0xa7, 0x6c, 0x25, 0x21, 0x0d, 0x29, 0x82, 0x59, 0xa2, 0xd0, 0x82, + 0xeb, 0x52, 0x12, 0x5e, 0x41, 0x02, 0xc4, 0xe4, 0xe6, 0x33, 0x27, 0x77, 0x13, 0xca, 0xea, 0xe4, + 0xbe, 0xca, 0xa4, 0xfe, 0xa7, 0x1c, 0xcc, 0xaf, 0x63, 0x0f, 0x07, 0x0e, 0xed, 0xb2, 0x76, 0xa6, + 0x50, 0x1d, 0xcb, 0xb9, 0xbe, 0x8e, 0x65, 0x69, 0x30, 0xe7, 0xb3, 0x0d, 0x66, 0xb2, 0x1b, 0xee, + 0xd9, 0x9b, 0x5c, 0x56, 0xe9, 0x6e, 0x78, 0x1a, 0xb8, 0x36, 0x81, 0xa1, 0xcd, 0xd8, 0x29, 0x3d, + 0x3c, 0xd0, 0x29, 0x3d, 0xc3, 0x9d, 0x74, 0x63, 0xdc, 0x29, 0xad, 0xb9, 0xa2, 0xad, 0xcf, 0xa0, + 0x94, 0x1e, 0x0b, 0x97, 0x8f, 0x41, 0x87, 0x14, 0x6b, 0x35, 0x96, 0x6e, 0x7e, 0x7f, 0x2d, 0x9d, + 0xf1, 0x09, 0x15, 0xda, 0xc7, 0xf9, 0x63, 0x35, 0x62, 0xf9, 0xe4, 0x54, 0x78, 0xfb, 0x9f, 0x12, + 0xf9, 0x64, 0x31, 0x0a, 0x39, 0x73, 0x8c, 0x02, 0x97, 0x51, 0x86, 0x2a, 0x10, 0xac, 0xa7, 0x70, + 0x5d, 0x23, 0x1a, 0x4b, 0xfd, 0x17, 0x50, 0x10, 0xb0, 0x84, 0x6f, 0x42, 0x23, 0x4b, 0xe7, 0x2d, + 0x14, 0xc8, 0x12, 0xc5, 0xfa, 0x55, 0x0e, 0xe6, 0xd9, 0xee, 0x92, 0x1e, 0xf7, 0xc5, 0x67, 0xff, + 0xb7, 0xe2, 0xf0, 0x7a, 0x90, 0xe1, 0xf0, 0xa2, 0x28, 0xaa, 0xc3, 0x4b, 0x75, 0x73, 0x7d, 0x3d, + 0x5c, 0xc8, 0x17, 0x87, 0xac, 0x7d, 0x28, 0xa5, 0x47, 0xf8, 0x1a, 0xe6, 0x64, 0x1d, 0xe6, 0x95, + 0x85, 0xfe, 0xca, 0x12, 0x13, 0xb7, 0xf8, 0x1a, 0x25, 0x26, 0xae, 0xf8, 0xda, 0x24, 0x66, 0x13, + 0x66, 0x18, 0x61, 0x7d, 0x75, 0x2d, 0xab, 0xab, 0x2b, 0x33, 0x5e, 0x26, 0xbd, 0xe0, 0x1e, 0xd3, + 0x05, 0x27, 0xaa, 0xc4, 0x3d, 0xfc, 0x00, 0x46, 0x79, 0x48, 0x20, 0xeb, 0x5f, 0x06, 0x31, 0xaa, + 0x79, 0x59, 0x1c, 0xa0, 0xcd, 0x2b, 0x5b, 0x25, 0x3a, 0x64, 0x72, 0x4e, 0xe1, 0x0e, 0x6f, 0x79, + 0x6a, 0xfc, 0x86, 0xa8, 0xb8, 0x44, 0xc9, 0x2b, 0xee, 0x1a, 0x4f, 0xa0, 0xc4, 0x76, 0x0d, 0x85, + 0xea, 0x2b, 0xed, 0x1b, 0x1f, 0x43, 0x89, 0x89, 0x53, 0x06, 0xc1, 0xfe, 0x9b, 0xc1, 0x22, 0x2c, + 0xc8, 0xcd, 0x20, 0x6b, 0xf4, 0x7f, 0x3b, 0x07, 0x37, 0xd6, 0x71, 0xa4, 0x47, 0x4d, 0xfd, 0x7f, + 0xd9, 0xbb, 0xbf, 0x87, 0x72, 0x56, 0x47, 0xf8, 0x54, 0x7c, 0x99, 0x9c, 0x0a, 0x63, 0x88, 0x58, + 0xf6, 0x94, 0x7c, 0x07, 0x37, 0xd9, 0x94, 0xe8, 0xf5, 0xc5, 0x40, 0x3f, 0x4b, 0xcc, 0x8a, 0x91, + 0x7a, 0xd6, 0xec, 0xfc, 0xfd, 0x1c, 0xdc, 0x64, 0x4c, 0xce, 0x26, 0xfe, 0xdb, 0xb6, 0xee, 0xb6, + 0xa1, 0x22, 0xe7, 0xfc, 0x35, 0x4c, 0xac, 0xd5, 0x02, 0x24, 0xc8, 0xd4, 0x1b, 0xb6, 0x20, 0x71, + 0x03, 0x86, 0xea, 0x0d, 0x9b, 0x5f, 0x40, 0xd3, 0x4d, 0xbb, 0x15, 0x06, 0x36, 0x81, 0x25, 0x35, + 0x78, 0xfe, 0x02, 0x1a, 0xdc, 0xfa, 0x05, 0xcc, 0x68, 0x8d, 0xf0, 0x79, 0x5f, 0x80, 0xe1, 0x3a, + 0x0e, 0x22, 0xde, 0x0c, 0x1d, 0x69, 0x0b, 0x07, 0x91, 0x4d, 0xa1, 0xe8, 0x2e, 0x8c, 0xd5, 0xab, + 0xd4, 0xdb, 0x48, 0x6d, 0x8b, 0x49, 0xa6, 0x98, 0x5a, 0x4e, 0x93, 0x46, 0x92, 0xdb, 0xa2, 0xd0, + 0xfa, 0x77, 0x39, 0x85, 0x3a, 0x41, 0x1f, 0x3c, 0x86, 0xf7, 0xc8, 0xf1, 0x98, 0xf0, 0x4c, 0x19, + 0xc2, 0x35, 0xb2, 0x6d, 0x71, 0x4f, 0x0d, 0xdb, 0xf9, 0x6c, 0xa5, 0xd2, 0x05, 0x3d, 0xa5, 0xe2, + 0x66, 0x8e, 0x21, 0x09, 0x2f, 0xa2, 0xbc, 0x99, 0xe3, 0xa4, 0x43, 0x5b, 0xad, 0x64, 0x7d, 0x0f, + 0xb3, 0x7a, 0xff, 0x5f, 0x2b, 0x7b, 0xde, 0xa4, 0x57, 0x3e, 0xca, 0x65, 0x29, 0x42, 0xaa, 0x23, + 0x81, 0x8b, 0xd5, 0x47, 0x50, 0xe4, 0xb5, 0xe2, 0x65, 0x79, 0x47, 0x98, 0x76, 0x6c, 0x51, 0xea, + 0xc1, 0xc5, 0xc2, 0x1f, 0xfa, 0x33, 0xe1, 0xaa, 0x18, 0xd4, 0xc2, 0xbf, 0xc9, 0x41, 0xe9, 0xf1, + 0xc3, 0x6a, 0xf5, 0x34, 0x3a, 0xc2, 0x5e, 0x44, 0x0e, 0x25, 0xb8, 0x7e, 0xe4, 0x74, 0x3a, 0xd8, + 0x3b, 0xa4, 0xdc, 0xdd, 0x5b, 0x7e, 0x28, 0x77, 0x25, 0x7e, 0x3d, 0xbd, 0xfc, 0x50, 0xd6, 0xb0, + 0x49, 0x39, 0xba, 0x07, 0xc3, 0xbb, 0x4f, 0x76, 0x77, 0xb8, 0xe3, 0x60, 0x96, 0xd7, 0x23, 0xa0, + 0xb8, 0x22, 0xad, 0x81, 0x1e, 0xc1, 0xb5, 0xa7, 0x3c, 0xea, 0x5f, 0x16, 0x71, 0x97, 0xc1, 0xad, + 0x25, 0xf9, 0x1e, 0xa0, 0x1e, 0xe0, 0x36, 0xe9, 0x8c, 0xd3, 0xa9, 0x86, 0x44, 0x7f, 0x90, 0x69, + 0x4c, 0xe3, 0x59, 0xff, 0x36, 0x07, 0xf3, 0x89, 0xae, 0x4b, 0x26, 0xdd, 0x15, 0x3d, 0x67, 0xa7, + 0x46, 0xd9, 0x73, 0x51, 0x61, 0xe3, 0x0a, 0xeb, 0xfa, 0xdb, 0x5a, 0xd7, 0x67, 0x94, 0xae, 0x2b, + 0x35, 0x59, 0xdf, 0xeb, 0x34, 0x08, 0x95, 0xf6, 0x81, 0x77, 0xf9, 0xad, 0xfe, 0x5d, 0x8e, 0x09, + 0x48, 0x44, 0x1e, 0x42, 0x46, 0xe1, 0xd6, 0x5f, 0x84, 0x49, 0x95, 0x97, 0x68, 0x01, 0xc6, 0x1f, + 0xe1, 0xb3, 0x0d, 0xc7, 0x6b, 0x77, 0xc4, 0x1c, 0xc5, 0x00, 0x52, 0x1a, 0xb3, 0x8c, 0xf9, 0x06, + 0x62, 0x00, 0x9a, 0x85, 0x91, 0x6a, 0xb7, 0x2b, 0x3c, 0xd2, 0x36, 0xfb, 0x40, 0x25, 0x18, 0x13, + 0x3e, 0x54, 0x6a, 0xd2, 0xd9, 0xe2, 0xd3, 0x72, 0x61, 0x42, 0xe1, 0xc6, 0x80, 0xa6, 0x17, 0x01, + 0xea, 0x1d, 0x17, 0x7b, 0x54, 0x91, 0xf3, 0xb6, 0x15, 0x08, 0xf5, 0x69, 0xb8, 0x87, 0x1e, 0xf5, + 0x5e, 0xf2, 0x0e, 0xc4, 0x00, 0xeb, 0x2a, 0x4c, 0x69, 0xa2, 0x60, 0x59, 0x30, 0xa9, 0x32, 0x98, + 0x88, 0x65, 0xdd, 0x6f, 0x4b, 0xb1, 0x24, 0x7f, 0x5b, 0xff, 0x3e, 0x07, 0xb3, 0x8f, 0x1f, 0x56, + 0x6d, 0x7c, 0xe8, 0x12, 0x75, 0x15, 0x0f, 0xf4, 0xbe, 0x3a, 0xb1, 0x37, 0xd5, 0x89, 0x4d, 0xd4, + 0x14, 0x33, 0xbc, 0xac, 0xcd, 0xf0, 0x82, 0x36, 0xc3, 0x69, 0x14, 0x36, 0xd5, 0x9f, 0xa6, 0xa6, + 0x7a, 0x21, 0x6b, 0xaa, 0xa9, 0x19, 0xeb, 0xfa, 0x9e, 0x36, 0xc3, 0x8a, 0x6b, 0xe9, 0xa7, 0x1c, + 0xcc, 0x28, 0x83, 0x90, 0x03, 0x5e, 0x52, 0xc7, 0x50, 0x4e, 0x8f, 0x21, 0x29, 0xa4, 0xef, 0x69, + 0x43, 0xb8, 0x99, 0x31, 0x84, 0x94, 0xb0, 0xd6, 0x52, 0x23, 0x78, 0xb3, 0xdf, 0x08, 0x06, 0xca, + 0x6a, 0x1b, 0x66, 0xb3, 0x98, 0xac, 0x4b, 0x65, 0xce, 0x28, 0x95, 0x79, 0x83, 0x54, 0x0e, 0xe9, + 0x52, 0xe9, 0xc0, 0x4c, 0x06, 0x1b, 0xd0, 0x3b, 0x50, 0x64, 0x30, 0xa6, 0xd2, 0xf9, 0xbd, 0x2f, + 0xc1, 0x4c, 0xc1, 0x07, 0xc9, 0xaa, 0xf5, 0x27, 0x39, 0x98, 0xcb, 0x9c, 0x7c, 0x74, 0x9d, 0xd8, + 0x23, 0xad, 0x00, 0x47, 0x9c, 0x36, 0xff, 0x22, 0xf0, 0xcd, 0x30, 0x3c, 0xe5, 0xaf, 0x78, 0xc6, + 0x6d, 0xfe, 0x85, 0xde, 0x84, 0xa9, 0x1d, 0x1c, 0xb8, 0x7e, 0xbb, 0x81, 0x5b, 0xbe, 0xd7, 0x66, + 0x77, 0x0d, 0x53, 0xb6, 0x0e, 0x24, 0x0c, 0xaa, 0x76, 0x0e, 0xfd, 0xc0, 0x8d, 0x8e, 0x4e, 0xf8, + 0x22, 0x8c, 0x01, 0x84, 0xf6, 0xaa, 0x7b, 0xe8, 0x46, 0xec, 0xd6, 0x76, 0xca, 0xe6, 0x5f, 0x84, + 0x45, 0xd5, 0x56, 0xcb, 0x3f, 0xf5, 0x22, 0xea, 0x5b, 0x1f, 0xb7, 0xc5, 0x27, 0xc1, 0xf8, 0xc6, + 0xa6, 0xcb, 0x85, 0xc6, 0xd9, 0xd9, 0xfc, 0xcb, 0x7a, 0x07, 0x66, 0xb3, 0x04, 0x22, 0x73, 0x71, + 0xfd, 0xd5, 0x3c, 0xcc, 0x54, 0xdb, 0xed, 0xc7, 0x0f, 0xab, 0xab, 0x58, 0x35, 0x6b, 0xdf, 0x87, + 0xe1, 0x4d, 0xcf, 0x8d, 0xb8, 0x60, 0x2e, 0x72, 0x39, 0xcb, 0xa8, 0x49, 0x6a, 0x11, 0x51, 0x23, + 0xff, 0x23, 0x1b, 0x66, 0xd6, 0x7e, 0x74, 0xc3, 0xc8, 0xf5, 0x0e, 0xa9, 0xb0, 0xb3, 0x86, 0xb9, + 0xb0, 0x0a, 0x22, 0x06, 0x3d, 0xbd, 0x71, 0xc5, 0xce, 0x42, 0x46, 0xbb, 0x70, 0x7d, 0x1b, 0xbf, + 0xc8, 0x58, 0x3b, 0x32, 0x4c, 0x4e, 0x92, 0xcd, 0x58, 0x02, 0x06, 0x5c, 0x75, 0x69, 0xfe, 0xad, + 0x3c, 0x8d, 0xbd, 0x54, 0x06, 0xc6, 0x5b, 0xde, 0x83, 0x59, 0xa5, 0x43, 0xba, 0x6c, 0x4f, 0x2c, + 0x57, 0xb2, 0x87, 0xa3, 0x6a, 0x90, 0x4c, 0x74, 0xf4, 0x14, 0xe6, 0xf5, 0x4e, 0xe9, 0xba, 0x3c, + 0x5e, 0xd5, 0x59, 0x55, 0x36, 0xae, 0xd8, 0x26, 0x6c, 0xb4, 0x0c, 0x43, 0xd5, 0xd6, 0x31, 0x67, + 0x4b, 0xf6, 0x94, 0xb1, 0x91, 0x55, 0x5b, 0xc7, 0x34, 0x8e, 0xb9, 0x75, 0xac, 0x2d, 0xec, 0xff, + 0x9d, 0x83, 0x79, 0xc3, 0x0c, 0xa3, 0x06, 0xc0, 0x16, 0x3e, 0x74, 0x5a, 0x67, 0xf2, 0xaa, 0x7a, + 0x7a, 0xf9, 0x7e, 0x7f, 0xa9, 0x58, 0x62, 0x08, 0x0c, 0x4e, 0xd0, 0x6a, 0x79, 0x62, 0xb1, 0xc5, + 0x64, 0xc8, 0x02, 0x65, 0xa5, 0x8a, 0x29, 0xa2, 0x40, 0x88, 0x11, 0x18, 0x63, 0xd3, 0x71, 0x4d, + 0xcb, 0x30, 0xb6, 0xb8, 0xc0, 0x56, 0x2a, 0x59, 0x2b, 0x50, 0x4c, 0x36, 0x8b, 0x0a, 0x4c, 0x67, + 0xb2, 0x68, 0xaf, 0xbd, 0xe5, 0x87, 0xc5, 0x1c, 0x9a, 0x8c, 0x75, 0x62, 0x31, 0x6f, 0xd5, 0x93, + 0xe3, 0x96, 0x6c, 0x42, 0xf7, 0x60, 0x94, 0x01, 0xf9, 0xac, 0x8b, 0x17, 0x58, 0x71, 0x65, 0x5e, + 0x6e, 0xfd, 0x61, 0x4e, 0x78, 0x17, 0x53, 0x8b, 0xe9, 0x23, 0x6d, 0x31, 0xbd, 0x21, 0x47, 0x90, + 0x55, 0x59, 0x5b, 0x4f, 0x35, 0x98, 0x78, 0x99, 0x75, 0xa4, 0x22, 0xa9, 0x92, 0xfe, 0x4f, 0x72, + 0xc2, 0x2f, 0x92, 0x16, 0xf6, 0x35, 0x98, 0x7c, 0x39, 0x21, 0xd7, 0xd0, 0xd0, 0x07, 0x4c, 0x06, + 0xf3, 0xfd, 0x47, 0xda, 0x57, 0x0c, 0x3f, 0x17, 0x0e, 0xd4, 0x4c, 0x41, 0x1c, 0x20, 0x33, 0xd6, + 0x42, 0x06, 0xb6, 0x6c, 0xce, 0x3a, 0x4d, 0x95, 0x36, 0xce, 0xbc, 0x96, 0x98, 0xa7, 0xbb, 0xc9, + 0x80, 0x0f, 0xe3, 0x6d, 0xbe, 0xda, 0x87, 0x7c, 0xec, 0x53, 0x6b, 0xe3, 0x38, 0xb4, 0x4f, 0xed, + 0xd4, 0x79, 0x62, 0x65, 0xbd, 0x4c, 0xa3, 0x75, 0x98, 0xda, 0xc6, 0x2f, 0x52, 0xed, 0xd2, 0x3b, + 0x52, 0x0f, 0xbf, 0x68, 0x2a, 0x6d, 0x2b, 0x51, 0x35, 0x3a, 0x0e, 0x3a, 0x80, 0x69, 0xa1, 0x3d, + 0x2e, 0xaa, 0x44, 0x59, 0xf4, 0x2f, 0x69, 0xe1, 0xe4, 0x99, 0xd3, 0x0c, 0x38, 0x54, 0x0d, 0xdb, + 0xd5, 0x29, 0x5a, 0x3b, 0x50, 0x4a, 0x8f, 0x95, 0x4b, 0xd9, 0xfb, 0x83, 0x96, 0x13, 0x3b, 0xe1, + 0xb7, 0xf5, 0xa5, 0xb5, 0x41, 0x9d, 0x51, 0xb2, 0x8e, 0x3c, 0x46, 0x3f, 0x48, 0xb2, 0x8e, 0x46, + 0x34, 0x0a, 0xd6, 0xa9, 0xcf, 0x0b, 0xe2, 0x90, 0x9f, 0xb9, 0x04, 0x25, 0x69, 0x57, 0x8c, 0x71, + 0x90, 0x7c, 0xb6, 0x91, 0x5c, 0xe8, 0xa2, 0x82, 0xf5, 0x8f, 0x72, 0x70, 0x63, 0x2f, 0xc4, 0x41, + 0xc3, 0xf5, 0x0e, 0x3b, 0x78, 0x2f, 0xd4, 0x03, 0x6e, 0x7e, 0x57, 0x5b, 0xec, 0xf3, 0x86, 0x40, + 0xde, 0xff, 0x57, 0x4b, 0xfc, 0x1f, 0xe7, 0xa0, 0x9c, 0xd5, 0xb7, 0xd7, 0xbb, 0xca, 0x97, 0xf8, + 0xb9, 0x97, 0xf5, 0xb6, 0xc4, 0xd1, 0x65, 0x9b, 0x62, 0xb0, 0x64, 0x90, 0xe4, 0xff, 0xe4, 0x2e, + 0x33, 0xbb, 0x19, 0xd2, 0xee, 0xff, 0xf2, 0xd4, 0x0d, 0x70, 0x5b, 0x30, 0x6e, 0x29, 0x2b, 0xdc, + 0x9b, 0xce, 0xeb, 0xc6, 0x95, 0xac, 0x70, 0xee, 0xf7, 0x95, 0x80, 0xd6, 0x7c, 0xbf, 0x38, 0x6e, + 0xed, 0xed, 0xd0, 0x5d, 0x18, 0xde, 0x26, 0x46, 0xd0, 0x10, 0x97, 0x3f, 0x86, 0x41, 0x40, 0x34, + 0xf6, 0x94, 0x74, 0x99, 0x7c, 0xa0, 0x87, 0xa9, 0x08, 0xd7, 0xe1, 0xc1, 0x71, 0xca, 0xe9, 0x47, + 0x4f, 0xb5, 0x02, 0x8c, 0xee, 0x3a, 0xc1, 0x21, 0x8e, 0xac, 0xef, 0xa0, 0xcc, 0x2f, 0x96, 0x99, + 0xbf, 0x96, 0x5e, 0x3f, 0x87, 0xb1, 0x1f, 0xb1, 0xdf, 0x65, 0xf0, 0x22, 0x40, 0x23, 0x72, 0x82, + 0x68, 0xd3, 0x6b, 0xe3, 0x1f, 0xe9, 0x68, 0x47, 0x6c, 0x05, 0x62, 0x7d, 0x00, 0xe3, 0x72, 0x08, + 0xf4, 0x6c, 0xaf, 0xd8, 0x79, 0x74, 0x38, 0xb3, 0x5a, 0xcc, 0xad, 0x08, 0xb4, 0x5d, 0x81, 0xb9, + 0xc4, 0x54, 0x70, 0x39, 0x29, 0x93, 0x09, 0x63, 0x30, 0x16, 0x74, 0x62, 0xcb, 0x6f, 0xab, 0x0e, + 0xd7, 0x52, 0x33, 0x8d, 0x10, 0x8d, 0xa3, 0x66, 0x8e, 0x10, 0xa2, 0xd4, 0x1b, 0x8d, 0x0d, 0x02, + 0xdb, 0xdd, 0x6a, 0xb0, 0x98, 0x32, 0x02, 0xdb, 0xdd, 0x6a, 0xd4, 0x46, 0x99, 0xe4, 0x58, 0xff, + 0x3c, 0x4f, 0xdd, 0x19, 0x29, 0x1e, 0x24, 0xdc, 0x62, 0xaa, 0x6b, 0xae, 0x06, 0xe3, 0x74, 0xc4, + 0xab, 0x22, 0xf6, 0xb2, 0xff, 0x6d, 0x54, 0xe1, 0xa7, 0x5e, 0xe5, 0x0a, 0xbd, 0x82, 0x8a, 0xd1, + 0xd0, 0x97, 0x30, 0xb6, 0xe6, 0xb5, 0x29, 0x85, 0xa1, 0x4b, 0x50, 0x10, 0x48, 0x64, 0x1e, 0x68, + 0x97, 0x89, 0x5d, 0xc1, 0x7d, 0x47, 0xb6, 0x02, 0xa1, 0x6c, 0x76, 0x4f, 0x5c, 0x16, 0x73, 0x30, + 0x62, 0xb3, 0x0f, 0xc2, 0x4d, 0xda, 0x05, 0xf1, 0x94, 0x66, 0xdc, 0x96, 0xdf, 0xc8, 0x82, 0x91, + 0x27, 0x41, 0x9b, 0x3f, 0x6c, 0x98, 0x5e, 0x9e, 0x14, 0xb9, 0x05, 0x08, 0xcc, 0x66, 0x45, 0xd6, + 0xff, 0xa4, 0xf7, 0x80, 0x51, 0xa6, 0xdc, 0x68, 0x5c, 0xc9, 0xbd, 0x32, 0x57, 0xf2, 0x2f, 0xc3, + 0x15, 0x39, 0xea, 0x21, 0xd3, 0xa8, 0x87, 0x4d, 0xa3, 0x1e, 0x31, 0x8f, 0x7a, 0x1d, 0x46, 0xd9, + 0x50, 0xd1, 0x1d, 0x18, 0xd9, 0x8c, 0xf0, 0x49, 0xec, 0xe6, 0x52, 0x23, 0x39, 0x6c, 0x56, 0x46, + 0xce, 0x49, 0x5b, 0x4e, 0x18, 0x89, 0x28, 0xc6, 0x71, 0x5b, 0x7c, 0x5a, 0x7f, 0x9a, 0x83, 0xe2, + 0x96, 0x1b, 0x46, 0x64, 0x21, 0x5c, 0x50, 0xd6, 0xe4, 0x88, 0xf2, 0xa6, 0x11, 0x0d, 0x25, 0x46, + 0xf4, 0x19, 0x8c, 0xd2, 0xe0, 0xda, 0x90, 0x3f, 0x9b, 0xbb, 0xc3, 0x87, 0x94, 0x6c, 0x98, 0x85, + 0xe0, 0x86, 0xf4, 0x79, 0x9b, 0xcd, 0x51, 0xca, 0x9f, 0xc0, 0x84, 0x02, 0xbe, 0xd4, 0xab, 0xb7, + 0x6f, 0xe1, 0x9a, 0xd2, 0x84, 0x0c, 0x76, 0x1c, 0x70, 0x73, 0x22, 0x3d, 0xf3, 0x84, 0x6d, 0xdb, + 0xf8, 0x47, 0x95, 0x6d, 0xfc, 0xd3, 0xfa, 0x81, 0xc6, 0x86, 0x6f, 0xf9, 0xad, 0x63, 0xc5, 0x6f, + 0x3d, 0xc6, 0x94, 0x59, 0xf2, 0xfa, 0x87, 0xd4, 0x62, 0x25, 0xb6, 0xa8, 0x81, 0x6e, 0xc3, 0xc4, + 0xa6, 0xf7, 0xd0, 0x0f, 0x5a, 0xf8, 0x89, 0xd7, 0x61, 0xd4, 0x0b, 0xb6, 0x0a, 0xe2, 0x2e, 0x4d, + 0xde, 0x42, 0xec, 0xd2, 0xa4, 0x80, 0x84, 0x4b, 0x93, 0xbd, 0xda, 0xb5, 0x59, 0x19, 0xf7, 0x98, + 0x92, 0xbf, 0xfb, 0xf9, 0x33, 0xa5, 0xe3, 0x73, 0x50, 0xc5, 0x03, 0xb8, 0x61, 0xe3, 0x6e, 0xc7, + 0x21, 0xb6, 0xe2, 0x89, 0xcf, 0xea, 0xcb, 0x31, 0xdf, 0xce, 0x08, 0x5b, 0xd4, 0x6f, 0x3f, 0x65, + 0x97, 0xf3, 0x7d, 0xba, 0x7c, 0x02, 0x6f, 0xac, 0xe3, 0x28, 0xf3, 0xe9, 0x6d, 0x3c, 0xf8, 0x0d, + 0x28, 0xf0, 0xe7, 0x21, 0x62, 0xfc, 0x83, 0x5e, 0xfd, 0xf2, 0xab, 0x40, 0x4e, 0x47, 0xfe, 0x65, + 0x7d, 0x05, 0x15, 0x53, 0x73, 0x17, 0x8b, 0x56, 0x73, 0xe1, 0xb6, 0x99, 0x80, 0xb4, 0x26, 0xc6, + 0x78, 0x83, 0xd2, 0x4f, 0xd0, 0xbf, 0xb7, 0xf2, 0x72, 0x88, 0xda, 0x53, 0xfc, 0x0f, 0xab, 0x26, + 0xc2, 0x61, 0x5e, 0xa1, 0xbb, 0x4d, 0x7a, 0x7d, 0xa5, 0x13, 0x88, 0xf9, 0x5a, 0x85, 0x82, 0x80, + 0x25, 0xee, 0xaf, 0x52, 0xaf, 0x9a, 0x29, 0x43, 0xdb, 0x82, 0x80, 0x44, 0xb3, 0x7e, 0x10, 0x97, + 0x4c, 0x3a, 0xc6, 0xc5, 0x42, 0xa0, 0x2f, 0x72, 0xab, 0x64, 0xf9, 0x70, 0x43, 0xa7, 0xad, 0x5e, + 0x95, 0x14, 0x95, 0xab, 0x12, 0x76, 0x43, 0x42, 0xe4, 0xd2, 0xde, 0x5a, 0xf3, 0xda, 0x5d, 0xdf, + 0xf5, 0x22, 0xbe, 0x78, 0x55, 0x10, 0x5a, 0x54, 0x2f, 0x44, 0x26, 0xd3, 0x31, 0xe3, 0x0f, 0xa0, + 0x9c, 0xd5, 0xa0, 0xe2, 0x2d, 0x92, 0x77, 0x1b, 0xcc, 0x8e, 0xb3, 0x8e, 0x60, 0x56, 0xcb, 0x13, + 0x13, 0x27, 0xbe, 0x88, 0xf3, 0xe3, 0x8c, 0xd7, 0x3e, 0xff, 0x4d, 0xaf, 0xf2, 0xf1, 0x65, 0x02, + 0x93, 0x05, 0xcd, 0x5d, 0x19, 0xf6, 0x6e, 0xcd, 0xc3, 0x50, 0xdd, 0xde, 0xa2, 0xc3, 0xb6, 0xb7, + 0xe4, 0xb0, 0xed, 0x2d, 0xeb, 0x37, 0x39, 0xa8, 0xd4, 0x8f, 0x1c, 0xef, 0x90, 0xda, 0x1e, 0x8a, + 0xb9, 0xaa, 0xdc, 0xf1, 0x5f, 0xf4, 0x48, 0xb5, 0x0c, 0x13, 0xdb, 0xf8, 0x85, 0x08, 0xd9, 0xe7, + 0xc1, 0xef, 0xf4, 0x2a, 0x88, 0x1c, 0x77, 0xba, 0x1c, 0x6e, 0xab, 0x95, 0xd0, 0x5f, 0x7a, 0x79, + 0x77, 0x14, 0xcb, 0x16, 0x11, 0x9f, 0xa4, 0x58, 0x69, 0xd6, 0x91, 0xca, 0xd0, 0x84, 0xf5, 0x2f, + 0x73, 0x70, 0xdb, 0x3c, 0x78, 0x3e, 0x71, 0xab, 0x5a, 0xce, 0x8d, 0x3e, 0xd1, 0x09, 0xf4, 0xc8, + 0xaa, 0xe4, 0xdc, 0x48, 0xe6, 0xd9, 0xb0, 0x71, 0xcb, 0x7f, 0x8e, 0x83, 0xb3, 0xc4, 0x65, 0x8e, + 0x00, 0xd7, 0xc9, 0x96, 0x23, 0x32, 0x16, 0x31, 0x90, 0xf6, 0xcc, 0x96, 0xc3, 0xac, 0xff, 0x98, + 0x83, 0x9b, 0x74, 0x9b, 0xe4, 0x7e, 0x4b, 0x51, 0x70, 0xf9, 0x58, 0x96, 0x0f, 0x60, 0x52, 0x6d, + 0x9c, 0x4f, 0x18, 0x7d, 0xa4, 0x2f, 0x7a, 0xd0, 0x6c, 0xf9, 0x6d, 0x6c, 0x6b, 0xd5, 0xd0, 0x26, + 0x4c, 0xf0, 0x6f, 0xc5, 0x8f, 0x34, 0xa7, 0x64, 0xf0, 0xa1, 0xf2, 0xc0, 0x5e, 0x55, 0xd2, 0xd9, + 0xe7, 0xc4, 0x9a, 0xf4, 0x19, 0x86, 0x8a, 0x6b, 0xfd, 0x3a, 0x0f, 0x0b, 0xfb, 0x38, 0x70, 0x9f, + 0x9d, 0x19, 0x06, 0xf3, 0x04, 0x66, 0x05, 0x88, 0x8e, 0x59, 0x97, 0x43, 0xf6, 0x5c, 0x52, 0x74, + 0x35, 0x24, 0x15, 0x9a, 0x52, 0x2c, 0x33, 0x11, 0x2f, 0xf1, 0x80, 0xf8, 0x7d, 0x28, 0x48, 0x51, + 0x1e, 0xa2, 0x9c, 0xa1, 0x73, 0x23, 0xc4, 0x58, 0xcf, 0xa5, 0x20, 0xe5, 0xf9, 0x6f, 0x98, 0x6f, + 0xce, 0xf8, 0x89, 0x67, 0xc0, 0x61, 0x94, 0x49, 0x35, 0x91, 0x68, 0x47, 0x29, 0xcd, 0x90, 0xea, + 0x8d, 0x2b, 0xb6, 0xa9, 0xa5, 0xda, 0x04, 0x8c, 0x57, 0xe9, 0x8d, 0x1e, 0x39, 0x60, 0xfc, 0xaf, + 0x3c, 0x2c, 0x8a, 0xf0, 0x56, 0x03, 0x9b, 0xbf, 0x85, 0x79, 0x01, 0xaa, 0x76, 0xbb, 0x81, 0xff, + 0x1c, 0xb7, 0x75, 0x4e, 0xb3, 0x27, 0xcb, 0x82, 0xd3, 0x0e, 0xaf, 0x13, 0x33, 0xdb, 0x84, 0xfe, + 0x7a, 0xdc, 0x2c, 0x5f, 0xea, 0x8a, 0x85, 0xcd, 0x06, 0x7d, 0x94, 0xa7, 0x2a, 0x16, 0x3d, 0xd9, + 0x94, 0xaa, 0x64, 0xda, 0x29, 0x37, 0xcd, 0xf0, 0xab, 0xba, 0x69, 0xc8, 0xd1, 0x54, 0xa7, 0x59, + 0x9b, 0x86, 0xc9, 0x6d, 0xfc, 0x22, 0xe6, 0xfb, 0xef, 0xe7, 0x60, 0x4a, 0x5b, 0xdc, 0xe8, 0x6d, + 0x18, 0xa1, 0x7f, 0xd0, 0x4d, 0x93, 0xbf, 0xdb, 0x22, 0x0b, 0x4c, 0x7b, 0xb7, 0xc5, 0xaa, 0x6e, + 0xc2, 0x18, 0x0b, 0xe5, 0x6a, 0x5f, 0xe0, 0x0c, 0x21, 0x23, 0x05, 0x5b, 0x0c, 0x85, 0x1d, 0x27, + 0x38, 0xbe, 0xf5, 0x08, 0xde, 0xe0, 0x51, 0x61, 0xfa, 0xe4, 0xd7, 0x55, 0xfb, 0xfd, 0x82, 0x3a, + 0xde, 0x72, 0x60, 0x71, 0x1d, 0x27, 0x55, 0x8f, 0x16, 0x49, 0xf9, 0x15, 0x5c, 0xd5, 0xe0, 0x92, + 0x22, 0x7d, 0xdb, 0x21, 0x65, 0x48, 0x92, 0x4e, 0xd6, 0xb6, 0x6e, 0x67, 0x35, 0xa1, 0x76, 0xd6, + 0xc2, 0x70, 0x95, 0x9e, 0x94, 0xe5, 0x65, 0x5b, 0x78, 0x09, 0xad, 0x77, 0x4f, 0x59, 0xd7, 0x4c, + 0xe3, 0xb1, 0x67, 0xc1, 0x62, 0x7b, 0x92, 0xa5, 0xd6, 0xff, 0xc8, 0x81, 0xc5, 0x39, 0x97, 0xe5, + 0xc6, 0x11, 0x03, 0x3e, 0x48, 0xf5, 0x86, 0xef, 0x12, 0xd7, 0x55, 0x67, 0x55, 0x5c, 0xca, 0x44, + 0x8b, 0xbe, 0x94, 0x6a, 0xc5, 0x50, 0x4d, 0xb4, 0x52, 0xc3, 0xfb, 0x85, 0x41, 0x0f, 0xb2, 0xd5, + 0x44, 0x73, 0xd5, 0x18, 0xf4, 0xa0, 0x46, 0x37, 0x93, 0x88, 0xea, 0xef, 0xfa, 0x07, 0x39, 0xb8, + 0xc9, 0x86, 0xbc, 0x13, 0xb8, 0xcf, 0xdd, 0x0e, 0x3e, 0xc4, 0xda, 0xe4, 0x9e, 0x66, 0xdf, 0x48, + 0xe5, 0x2e, 0xa4, 0xd9, 0x68, 0xda, 0x0d, 0xcc, 0xd1, 0x4d, 0xee, 0xcf, 0x2c, 0xfa, 0xd6, 0xdf, + 0xcb, 0xc1, 0xa2, 0x78, 0x15, 0x98, 0xb8, 0xa6, 0xb9, 0xac, 0x91, 0x52, 0xd3, 0x2e, 0x41, 0xf2, + 0x86, 0x4b, 0x10, 0xcd, 0xff, 0x1c, 0x25, 0x6f, 0x45, 0x7e, 0x35, 0x04, 0xd7, 0x76, 0x9c, 0x43, + 0xd7, 0x23, 0xeb, 0x4b, 0xe4, 0xad, 0x41, 0xd5, 0x54, 0xfa, 0xaf, 0xfe, 0xd1, 0x57, 0x19, 0xf9, + 0xbd, 0x96, 0xd5, 0x4c, 0x3c, 0x79, 0x53, 0x5c, 0xbe, 0x9e, 0x6f, 0xe7, 0x13, 0xcd, 0x03, 0x97, + 0x0a, 0xc0, 0xa3, 0x6f, 0xbb, 0x3c, 0xbf, 0x9d, 0x48, 0x89, 0x47, 0xbd, 0x58, 0x4f, 0x60, 0x42, + 0x89, 0xa2, 0xe3, 0x4a, 0x31, 0x45, 0x81, 0x2a, 0xda, 0xe3, 0xd3, 0x03, 0x9c, 0x99, 0xfe, 0x48, + 0xa5, 0x90, 0x91, 0xf4, 0x68, 0xe4, 0x35, 0x27, 0x3d, 0xfa, 0x8e, 0x75, 0x59, 0xf8, 0x33, 0x47, + 0xb9, 0x6e, 0x64, 0xe4, 0x53, 0x4e, 0xcd, 0xfd, 0x15, 0xa5, 0xf7, 0x59, 0x19, 0xdc, 0x54, 0x62, + 0x35, 0x80, 0x82, 0xc8, 0x15, 0x69, 0xfd, 0xd1, 0x28, 0xcc, 0x6e, 0xb9, 0x61, 0x24, 0x66, 0x37, + 0x8c, 0xd5, 0xdb, 0xa4, 0x80, 0x29, 0x36, 0x3a, 0xb7, 0x44, 0x18, 0xbc, 0x99, 0x48, 0x5d, 0xa9, + 0x21, 0xa0, 0x0f, 0x54, 0x4f, 0x49, 0x5e, 0x49, 0x68, 0x91, 0xce, 0x3a, 0xa8, 0xba, 0x50, 0xde, + 0xd6, 0x9c, 0x42, 0x6c, 0xef, 0xe8, 0x10, 0x80, 0xba, 0x77, 0x30, 0xbf, 0xca, 0x4a, 0xd2, 0x53, + 0xc4, 0x1a, 0x60, 0x7a, 0xe1, 0x18, 0x6b, 0x66, 0xa5, 0x74, 0xb8, 0xec, 0x49, 0x87, 0xcb, 0x08, + 0x3d, 0xd1, 0xfd, 0x4c, 0x71, 0xb8, 0x24, 0x99, 0xa0, 0x3a, 0x5d, 0xd8, 0x13, 0xea, 0x0e, 0x05, + 0xa8, 0x4f, 0xa8, 0x59, 0x15, 0xb4, 0x0b, 0x33, 0x3b, 0x01, 0x6e, 0x53, 0x45, 0xb0, 0xf6, 0x63, + 0x37, 0xe0, 0x66, 0x34, 0x75, 0xdb, 0xb1, 0xec, 0x5e, 0x5d, 0x51, 0xdc, 0xc4, 0xb2, 0x5c, 0xd5, + 0x07, 0x19, 0xe8, 0x68, 0x0d, 0xa6, 0x1b, 0xd8, 0x09, 0x5a, 0x47, 0x8f, 0xf0, 0x19, 0x51, 0xd5, + 0x61, 0x69, 0x2c, 0xce, 0x88, 0x12, 0xd2, 0x12, 0x32, 0x50, 0x5a, 0xa4, 0x5e, 0xad, 0xe8, 0x48, + 0xe8, 0xe7, 0x30, 0xda, 0xf0, 0x83, 0xa8, 0x76, 0x96, 0x48, 0x43, 0xc9, 0x80, 0xb5, 0x1b, 0x22, + 0x2b, 0x4c, 0xe8, 0x07, 0x51, 0xf3, 0x40, 0xe5, 0x1b, 0xc7, 0x43, 0x0f, 0x89, 0x65, 0x41, 0xac, + 0x9d, 0xc8, 0xe9, 0xd4, 0x69, 0x50, 0x01, 0x7b, 0x04, 0xc7, 0xad, 0x07, 0x6a, 0x22, 0x45, 0x4e, + 0xa7, 0x49, 0xf7, 0x32, 0xfd, 0x92, 0x47, 0xc5, 0x42, 0x67, 0x30, 0xab, 0x0b, 0x3a, 0xcf, 0x19, + 0x05, 0x5a, 0x42, 0xb7, 0xac, 0x2a, 0xb5, 0x7b, 0xbc, 0x97, 0xb7, 0x93, 0xc9, 0xca, 0x52, 0x69, + 0xa4, 0x32, 0x9b, 0x78, 0x15, 0x67, 0xd9, 0x9f, 0xe4, 0x60, 0x2e, 0x21, 0x1f, 0xfc, 0xd0, 0xf4, + 0x04, 0xc6, 0x25, 0x90, 0xbb, 0x08, 0xc4, 0xb5, 0x46, 0x4a, 0x71, 0x32, 0xe9, 0x14, 0x8b, 0x47, + 0x9d, 0xaf, 0x98, 0x06, 0x7a, 0x90, 0xf0, 0xab, 0x31, 0x63, 0xdc, 0xc3, 0x3f, 0x26, 0x25, 0x5a, + 0x54, 0x43, 0x9f, 0x00, 0x28, 0xd3, 0xc2, 0x56, 0x0d, 0x4d, 0x8b, 0x98, 0x3d, 0x23, 0x4a, 0x65, + 0xeb, 0xcf, 0x46, 0xc5, 0x2e, 0xc8, 0x8f, 0x6f, 0xbb, 0x81, 0xd3, 0x3a, 0x8e, 0x43, 0x60, 0x3f, + 0x48, 0xc7, 0x9b, 0x5e, 0x64, 0x09, 0xdf, 0xd5, 0x5e, 0xa6, 0x9b, 0x93, 0xdc, 0xc6, 0x49, 0x0a, + 0x86, 0x2e, 0x90, 0xa4, 0xe0, 0x3e, 0x8c, 0x6d, 0x7a, 0xcf, 0x5d, 0x62, 0x29, 0xb2, 0xe0, 0x4b, + 0x6a, 0x67, 0xb9, 0x0c, 0xa4, 0x32, 0x86, 0xd7, 0x42, 0x9f, 0x40, 0x61, 0xc3, 0x0f, 0x23, 0x6a, + 0x2a, 0x8d, 0xc4, 0xd6, 0x78, 0x44, 0xfd, 0x8c, 0xcd, 0x23, 0x5e, 0xa4, 0x2a, 0x09, 0x51, 0x1d, + 0x7d, 0x08, 0x63, 0xd5, 0x76, 0x9b, 0xac, 0x42, 0xbe, 0x82, 0x69, 0x86, 0x4c, 0x8e, 0xe9, 0xb0, + 0x12, 0xb5, 0x49, 0x5e, 0x19, 0x7d, 0xae, 0x3b, 0xfd, 0xc6, 0xe2, 0x14, 0x1e, 0xd9, 0xd9, 0x62, + 0x75, 0x87, 0xe0, 0xdb, 0xe2, 0xb2, 0xa5, 0x10, 0x27, 0x45, 0xa1, 0x09, 0x4e, 0x34, 0xd5, 0x47, + 0xef, 0x6a, 0x36, 0x61, 0x7c, 0xd3, 0x73, 0x23, 0x97, 0xa6, 0x85, 0x18, 0xd7, 0x36, 0xd0, 0x1d, + 0x27, 0x88, 0xdc, 0x96, 0xdb, 0x75, 0xbc, 0x88, 0xcd, 0x96, 0x2b, 0x2a, 0xaa, 0xb3, 0x25, 0xb1, + 0xd5, 0x04, 0x52, 0xf0, 0xda, 0x12, 0x48, 0x65, 0xe6, 0x60, 0x9a, 0x78, 0xf9, 0x1c, 0x4c, 0x2b, + 0x6c, 0x2e, 0x69, 0x2a, 0xdd, 0xc9, 0x58, 0x10, 0xa9, 0x2f, 0x4c, 0x4f, 0xa0, 0x6b, 0xcb, 0x8a, + 0xe8, 0x36, 0x4d, 0x03, 0x31, 0x15, 0xc7, 0x31, 0x6b, 0x97, 0xbb, 0xf9, 0xcd, 0x55, 0xd4, 0x84, + 0x49, 0x52, 0x7b, 0xc7, 0xef, 0xb8, 0x2d, 0x17, 0x87, 0xa5, 0x69, 0xcd, 0x79, 0xaa, 0x2f, 0x0a, + 0x5a, 0xe9, 0xac, 0x81, 0x23, 0xb6, 0x09, 0xd2, 0xa6, 0xbb, 0x1c, 0x51, 0xdd, 0x04, 0x55, 0x82, + 0x96, 0x0d, 0xa5, 0xf8, 0x06, 0x26, 0xb1, 0xba, 0x3e, 0x4c, 0x3f, 0x29, 0xa1, 0xa9, 0x07, 0xe3, + 0x27, 0x25, 0xea, 0x84, 0xc5, 0x8f, 0x4b, 0xf6, 0xe0, 0xa6, 0x8d, 0x4f, 0xfc, 0xe7, 0xf8, 0xf5, + 0x92, 0xfd, 0x05, 0xdc, 0xd0, 0x09, 0xee, 0x75, 0xdb, 0xf4, 0x89, 0x2a, 0xbb, 0xea, 0xc9, 0x4c, + 0x5e, 0xc2, 0x11, 0x58, 0xf2, 0x12, 0xf6, 0x22, 0x9e, 0xfc, 0xa9, 0xca, 0x2b, 0x2d, 0xb3, 0x7c, + 0x58, 0xd0, 0x89, 0x57, 0xdb, 0x6d, 0x45, 0x50, 0x89, 0x85, 0xa6, 0x7c, 0x26, 0x4c, 0x42, 0x55, + 0xa2, 0xa9, 0x66, 0xeb, 0xc6, 0x00, 0x75, 0x2d, 0x29, 0xf5, 0x2c, 0x0c, 0x95, 0x24, 0x7b, 0x08, + 0xcb, 0xd4, 0x36, 0x6b, 0x30, 0xa5, 0x7c, 0xca, 0x43, 0x06, 0x5d, 0xea, 0x4a, 0x0b, 0x3a, 0xc3, + 0x74, 0x14, 0xeb, 0x9f, 0x0d, 0xc1, 0x4d, 0xce, 0xa7, 0xd7, 0x39, 0x19, 0xe8, 0x07, 0x98, 0x50, + 0xd8, 0xcf, 0xf9, 0x71, 0x5b, 0x5c, 0x98, 0x9b, 0xa6, 0x89, 0xa9, 0x9a, 0x53, 0x0a, 0x68, 0x26, + 0x66, 0x82, 0x18, 0x81, 0xea, 0x8c, 0x76, 0x60, 0x5a, 0x9f, 0x03, 0x6e, 0x58, 0xdf, 0xc9, 0x6c, + 0x44, 0xaf, 0x2a, 0x5e, 0xd8, 0xb7, 0x9b, 0x99, 0x33, 0x41, 0xd3, 0xb8, 0xea, 0xf3, 0xfb, 0x23, + 0x5c, 0x4b, 0x4d, 0x00, 0xb7, 0xc3, 0xef, 0x66, 0x36, 0x98, 0xaa, 0xcd, 0xf4, 0x46, 0x40, 0xc1, + 0xc6, 0x66, 0xd3, 0x8d, 0xd4, 0x0a, 0x30, 0xca, 0x86, 0x4d, 0xd6, 0xcd, 0x4e, 0x80, 0x43, 0xec, + 0xb5, 0xb0, 0x1a, 0x95, 0xf0, 0xaa, 0xeb, 0xe6, 0x3f, 0xe4, 0xa0, 0x94, 0x45, 0xb7, 0x81, 0xbd, + 0x36, 0xda, 0x81, 0x62, 0xb2, 0x21, 0x7e, 0x5a, 0xb2, 0x84, 0x99, 0x60, 0xee, 0xd2, 0xc6, 0x15, + 0x3b, 0x85, 0x4d, 0x34, 0xab, 0x02, 0xbb, 0x64, 0xf8, 0x47, 0x1a, 0x55, 0x39, 0x14, 0xbf, 0xf3, + 0x0e, 0x8c, 0xcb, 0xdc, 0xf4, 0xa8, 0x00, 0xc3, 0x9b, 0xdb, 0x9b, 0xbb, 0x2c, 0xfa, 0x6d, 0x67, + 0x6f, 0xb7, 0x98, 0x43, 0x00, 0xa3, 0xab, 0x6b, 0x5b, 0x6b, 0xbb, 0x6b, 0xc5, 0xfc, 0x3b, 0x9e, + 0x7a, 0xbc, 0x44, 0x37, 0x61, 0x7e, 0x75, 0x6d, 0x7f, 0xb3, 0xbe, 0xd6, 0xdc, 0xfd, 0x73, 0x3b, + 0x6b, 0xcd, 0xbd, 0xed, 0xc6, 0xce, 0x5a, 0x7d, 0xf3, 0xe1, 0xe6, 0xda, 0x6a, 0xf1, 0x0a, 0x9a, + 0x85, 0xa2, 0x5a, 0x48, 0x63, 0xea, 0x72, 0x68, 0x06, 0xae, 0x6a, 0x28, 0xcb, 0x0f, 0x8b, 0x79, + 0x54, 0x82, 0x59, 0x15, 0xf8, 0x74, 0xad, 0x56, 0xdd, 0xdb, 0xdd, 0xd8, 0x2e, 0x0e, 0xbd, 0x73, + 0x97, 0xdf, 0xfc, 0xa2, 0x69, 0x80, 0xd5, 0xb5, 0x46, 0x7d, 0x6d, 0x7b, 0x75, 0x73, 0x7b, 0xbd, + 0x78, 0x05, 0x4d, 0xc1, 0x78, 0x55, 0x7e, 0xe6, 0x96, 0xff, 0xf8, 0x07, 0x98, 0x20, 0x83, 0x17, + 0x27, 0xb5, 0x26, 0xcc, 0x3f, 0x76, 0x5c, 0x2f, 0x72, 0x5c, 0x8f, 0x4f, 0x99, 0x60, 0x38, 0xaa, + 0xf4, 0x99, 0x01, 0x32, 0x79, 0xe5, 0x41, 0xf1, 0x2d, 0xf7, 0x72, 0x0f, 0x72, 0xa8, 0x01, 0xb3, + 0x59, 0x26, 0x14, 0xb2, 0xf4, 0xbc, 0x09, 0x59, 0xda, 0xa1, 0x3c, 0x9f, 0xb9, 0xd1, 0xec, 0xbf, + 0x87, 0x1e, 0xc3, 0xb5, 0xd4, 0xb6, 0x21, 0xfb, 0x6b, 0xda, 0x50, 0xfa, 0x91, 0x2b, 0x51, 0x4f, + 0x53, 0xe4, 0x26, 0x37, 0x8d, 0x10, 0x5d, 0x4f, 0xed, 0xf6, 0x6b, 0x44, 0xc2, 0x8d, 0xc4, 0x1e, + 0xe4, 0x90, 0x0d, 0xb3, 0x59, 0x1b, 0x90, 0x1c, 0x72, 0x9f, 0xdd, 0xa9, 0x6c, 0x68, 0x8e, 0xd0, + 0xcc, 0xd2, 0xa3, 0x92, 0x66, 0x1f, 0x25, 0x6b, 0xa4, 0xf9, 0x39, 0x39, 0x3d, 0x79, 0xed, 0x47, + 0x18, 0x77, 0xab, 0x1d, 0xf7, 0x39, 0x0e, 0x91, 0x88, 0xce, 0x92, 0x20, 0x13, 0xee, 0xbd, 0x1c, + 0xfa, 0x1d, 0x98, 0xa0, 0xb9, 0x6b, 0x79, 0x30, 0xc1, 0xa4, 0x9a, 0xcf, 0xb6, 0x2c, 0xbe, 0x68, + 0xe1, 0x83, 0x1c, 0xfa, 0x02, 0xc6, 0xd6, 0x31, 0xbd, 0x4d, 0x47, 0x6f, 0x24, 0x7e, 0xa2, 0x61, + 0xd3, 0x93, 0x96, 0xb1, 0xe8, 0x70, 0xd2, 0xf5, 0x80, 0xea, 0x50, 0xe0, 0xe8, 0x21, 0xb2, 0x12, + 0xf8, 0x61, 0x06, 0x81, 0x99, 0x04, 0x01, 0x72, 0x38, 0x41, 0x75, 0x18, 0x97, 0x57, 0xfa, 0x68, + 0xde, 0x10, 0x47, 0x50, 0x2e, 0xa5, 0x0b, 0xb8, 0xf3, 0x69, 0xe8, 0xef, 0xe4, 0x73, 0xe8, 0x3e, + 0x00, 0x7b, 0x71, 0x47, 0xc7, 0x92, 0xec, 0x68, 0x39, 0xc5, 0x40, 0xb4, 0x4e, 0x14, 0x41, 0x07, + 0x47, 0xf8, 0xa2, 0x83, 0x37, 0xcd, 0xd6, 0x16, 0x4c, 0xcb, 0xf7, 0x6f, 0x17, 0xe7, 0x84, 0x89, + 0xda, 0xa7, 0x64, 0x05, 0xb1, 0x67, 0xe3, 0x32, 0x86, 0x0e, 0x99, 0xa2, 0xea, 0xe4, 0x74, 0xb2, + 0x6a, 0x0a, 0xae, 0x4c, 0x0c, 0x2c, 0x71, 0x93, 0xa9, 0x82, 0x13, 0xb8, 0x18, 0xca, 0x6a, 0xbb, + 0x7a, 0x3c, 0x1d, 0xba, 0xad, 0x74, 0x20, 0x33, 0x0c, 0xb0, 0xfc, 0x46, 0x9f, 0x1a, 0x6c, 0x9e, + 0xa8, 0xd6, 0xf9, 0x1a, 0xa6, 0xb4, 0x08, 0x2c, 0x24, 0x82, 0xbf, 0xb3, 0x42, 0xe4, 0xca, 0x0b, + 0xd9, 0x85, 0xfc, 0x0c, 0xfb, 0x90, 0x2a, 0x9b, 0x44, 0x22, 0xbe, 0x72, 0x56, 0xc2, 0x3d, 0x7e, + 0x92, 0x16, 0xa9, 0x59, 0x12, 0x28, 0x6b, 0x30, 0x23, 0xfd, 0xef, 0xca, 0xaf, 0x1b, 0x18, 0x52, + 0xf7, 0x19, 0x67, 0xee, 0x2b, 0x98, 0xe1, 0x72, 0xa0, 0x91, 0x29, 0x4a, 0xe5, 0xc2, 0xb3, 0xbc, + 0x19, 0x09, 0x7c, 0x0d, 0x73, 0x8d, 0xc4, 0x78, 0x98, 0xc9, 0x73, 0x43, 0x27, 0xa1, 0x24, 0xed, + 0x33, 0xd2, 0x7a, 0x04, 0xa8, 0x71, 0x7a, 0x70, 0xe2, 0x4a, 0x72, 0xcf, 0x5d, 0xfc, 0x02, 0xdd, + 0x4a, 0x0c, 0x89, 0x00, 0x69, 0x35, 0xaa, 0x9d, 0xca, 0x86, 0x11, 0xa3, 0x5d, 0x96, 0x47, 0x80, + 0x65, 0x33, 0x72, 0xba, 0xce, 0x81, 0xdb, 0x71, 0x23, 0x17, 0x13, 0xb1, 0x50, 0x11, 0xd4, 0x22, + 0x31, 0x83, 0x37, 0x8c, 0x35, 0xd0, 0x97, 0x30, 0xb5, 0x8e, 0xa3, 0x38, 0x2f, 0x21, 0x9a, 0x4f, + 0x65, 0x32, 0xe4, 0xf3, 0x26, 0x6e, 0x62, 0xf5, 0x64, 0x88, 0x9b, 0x50, 0x64, 0xca, 0x55, 0x21, + 0x71, 0x2b, 0x45, 0x82, 0x57, 0x71, 0x02, 0xe7, 0x24, 0x34, 0x72, 0xeb, 0x3e, 0x0c, 0xef, 0xb8, + 0xde, 0x21, 0x12, 0xaf, 0xe5, 0x94, 0xbc, 0x5e, 0xe5, 0x19, 0x0d, 0xc6, 0x45, 0xef, 0x00, 0x2a, + 0x2c, 0x21, 0x5f, 0x3a, 0x09, 0x9e, 0xc8, 0x3a, 0xfe, 0xa6, 0x0c, 0x9c, 0xec, 0x93, 0xb8, 0x4f, + 0xf2, 0x27, 0x59, 0xbe, 0xbf, 0x82, 0x76, 0x28, 0xd7, 0xd3, 0x0d, 0xa0, 0x3b, 0xf1, 0x7e, 0x6a, + 0xcc, 0xc1, 0x57, 0x46, 0x49, 0xc2, 0xfb, 0x2b, 0x48, 0xa6, 0x1f, 0xc8, 0x20, 0x7a, 0x57, 0xdb, + 0xf6, 0x2f, 0x47, 0xf7, 0x4b, 0x18, 0x97, 0x09, 0xe8, 0xa4, 0xbe, 0x49, 0x66, 0xcd, 0x93, 0x0a, + 0x3c, 0x9d, 0xab, 0xee, 0x73, 0x96, 0x2b, 0x52, 0xc7, 0x4f, 0xe6, 0x68, 0x33, 0x4e, 0xde, 0x27, + 0x30, 0xa1, 0x64, 0x67, 0x93, 0x8b, 0x25, 0x9d, 0xb1, 0xad, 0xac, 0xff, 0x8a, 0xcd, 0x03, 0xb2, + 0x69, 0x8c, 0xf1, 0x74, 0xa0, 0x68, 0x2e, 0x46, 0x53, 0x52, 0x5c, 0x25, 0x50, 0xc8, 0x71, 0x5e, + 0xe4, 0x0f, 0x45, 0xd7, 0x75, 0x0c, 0x73, 0x2b, 0x2b, 0x00, 0x6c, 0xcc, 0xb4, 0x21, 0xbd, 0xd8, + 0x38, 0xaa, 0x15, 0xb2, 0x9f, 0xb5, 0x2f, 0x89, 0xf4, 0xa5, 0xd8, 0xd3, 0x28, 0x52, 0x49, 0xe3, + 0xa4, 0x3a, 0x2a, 0x13, 0xfe, 0x26, 0x14, 0xab, 0x2d, 0xaa, 0x65, 0x65, 0xd6, 0x2d, 0xb4, 0x28, + 0x57, 0xb0, 0x5e, 0x20, 0x68, 0xcd, 0x25, 0x93, 0x78, 0x6d, 0x61, 0x87, 0x86, 0x76, 0xcd, 0xcb, + 0xbd, 0x36, 0x51, 0x94, 0x8d, 0x61, 0xec, 0xd4, 0x1a, 0xcc, 0xd6, 0x1d, 0xaf, 0x85, 0x3b, 0xaf, + 0x46, 0xe6, 0x53, 0xaa, 0x6e, 0x94, 0x8c, 0x64, 0xd7, 0x93, 0xf8, 0x5c, 0xdb, 0x5c, 0x93, 0xe7, + 0x3a, 0x59, 0xb5, 0x0a, 0x57, 0x19, 0x13, 0x63, 0xb6, 0x98, 0xb0, 0x4d, 0xcd, 0x7f, 0x04, 0xd3, + 0x6b, 0x44, 0x1d, 0x9f, 0xb6, 0x5d, 0x16, 0x05, 0x8c, 0xf4, 0xb0, 0x4e, 0x23, 0xe2, 0x86, 0xc8, + 0xee, 0xa8, 0xa4, 0xea, 0x92, 0x42, 0x9e, 0xce, 0x86, 0x56, 0x9e, 0x15, 0x64, 0xd5, 0xac, 0x5e, + 0x74, 0xef, 0x3d, 0x14, 0xe9, 0x60, 0x12, 0x09, 0x98, 0x54, 0x85, 0x62, 0x4c, 0xcf, 0x54, 0x7e, + 0xb3, 0x7f, 0x25, 0xd5, 0x16, 0xb3, 0x61, 0xde, 0x90, 0xdc, 0x0a, 0xbd, 0x25, 0xcd, 0xe2, 0x7e, + 0xc9, 0xaf, 0x32, 0xcc, 0xb5, 0x6f, 0x95, 0x14, 0x27, 0x06, 0x9a, 0xfd, 0xb3, 0x5e, 0x19, 0x19, + 0x2c, 0x23, 0xdd, 0x32, 0xb3, 0x53, 0xa1, 0xb7, 0x75, 0xea, 0x7d, 0x32, 0x58, 0x19, 0x5b, 0x78, + 0x42, 0x45, 0x2f, 0x4e, 0x8e, 0x24, 0x8d, 0x9e, 0xac, 0x0c, 0x56, 0xd2, 0xe8, 0xc9, 0x4c, 0x2d, + 0xc5, 0x18, 0xbc, 0x0e, 0x57, 0x13, 0x79, 0xa2, 0xd0, 0xad, 0x24, 0x63, 0x07, 0x30, 0x94, 0x11, + 0x7a, 0x2c, 0x04, 0x3b, 0x4d, 0x28, 0x3b, 0x73, 0x94, 0x69, 0x8c, 0x8c, 0xdc, 0x9e, 0x34, 0x81, + 0xd4, 0x5c, 0x50, 0xe8, 0x8d, 0x0c, 0x16, 0x5e, 0x8c, 0x75, 0x8c, 0x6c, 0x03, 0x8a, 0xc9, 0x54, + 0x4a, 0x68, 0x51, 0x72, 0x29, 0x33, 0x5f, 0x54, 0xb9, 0x62, 0x2c, 0xe7, 0x9b, 0xce, 0xd7, 0xf1, + 0xa4, 0xb0, 0x3b, 0xab, 0xe4, 0xa4, 0xa8, 0x69, 0x74, 0x52, 0x93, 0xa2, 0x67, 0xc7, 0x59, 0xa7, + 0xf1, 0xb9, 0x4a, 0x4e, 0x24, 0xe3, 0xe9, 0xf4, 0x56, 0x16, 0x9d, 0xf8, 0x5a, 0xa6, 0x21, 0xb2, + 0xcd, 0x2a, 0xfd, 0x5a, 0xd4, 0xf6, 0xcd, 0x74, 0xd7, 0x2a, 0xc6, 0x72, 0x39, 0xd2, 0x62, 0x32, + 0x3b, 0x90, 0x24, 0x6a, 0x48, 0x1b, 0x64, 0x14, 0xe5, 0x87, 0x30, 0xab, 0xcf, 0xe2, 0x80, 0xf1, + 0x9a, 0x6d, 0xdd, 0x29, 0x2d, 0x27, 0x10, 0x12, 0x57, 0x68, 0x89, 0xf4, 0x43, 0x29, 0xee, 0x67, + 0xe4, 0x26, 0x62, 0xdc, 0x57, 0xf2, 0x0b, 0x5d, 0x84, 0xfb, 0x59, 0xe9, 0x88, 0x24, 0xa3, 0x94, + 0x7e, 0x89, 0xed, 0x2f, 0x59, 0x70, 0x19, 0x46, 0x5d, 0xa4, 0x6b, 0x26, 0x3a, 0xab, 0xd4, 0xba, + 0x91, 0x3f, 0xe2, 0x75, 0x43, 0x63, 0x93, 0x26, 0xf1, 0x65, 0x6d, 0x70, 0xba, 0xb0, 0xd7, 0x61, + 0x52, 0x4d, 0x6f, 0x64, 0xec, 0xc5, 0xcd, 0x34, 0x8d, 0x50, 0x39, 0x6f, 0x4d, 0x4b, 0x2e, 0xb0, + 0xde, 0x2c, 0x24, 0x99, 0xa3, 0x75, 0xc8, 0x3c, 0x24, 0xa4, 0xb2, 0x66, 0x40, 0x97, 0xcc, 0x66, + 0xc1, 0x0c, 0x33, 0x90, 0xf4, 0xdf, 0x78, 0x33, 0xfc, 0x54, 0x9c, 0x91, 0xcc, 0x1e, 0x8d, 0xfa, + 0x57, 0x73, 0x15, 0x21, 0x45, 0x4a, 0x32, 0x72, 0x18, 0x95, 0x17, 0x4d, 0xc5, 0xaa, 0x86, 0xfe, + 0x06, 0xae, 0xa5, 0x72, 0x32, 0x49, 0x47, 0x98, 0x29, 0x5b, 0x53, 0x7f, 0x2d, 0xb8, 0x41, 0x06, + 0x9c, 0x40, 0xdc, 0x5f, 0x1e, 0x4c, 0x34, 0xbd, 0x97, 0x6e, 0x89, 0x87, 0x02, 0x59, 0x9d, 0x33, + 0x65, 0x7e, 0x32, 0x72, 0x70, 0x17, 0xe6, 0x32, 0x73, 0x3e, 0x49, 0xb3, 0xa2, 0x5f, 0x46, 0x28, + 0x23, 0xd5, 0x3f, 0x4f, 0x73, 0x2e, 0x27, 0xf2, 0x09, 0x49, 0x3f, 0x84, 0x31, 0x87, 0x94, 0xf4, + 0x43, 0x98, 0x93, 0x3b, 0x31, 0x6e, 0x6e, 0xc1, 0x6c, 0x56, 0x86, 0x26, 0xc5, 0x6f, 0x67, 0x4c, + 0xdf, 0x94, 0xc1, 0x51, 0x5b, 0xac, 0x76, 0x03, 0xb5, 0x3e, 0xf9, 0x9a, 0x8c, 0x1c, 0xf8, 0x4e, + 0x64, 0xe1, 0x4a, 0xe7, 0x55, 0x92, 0xa7, 0xb5, 0x01, 0x89, 0x97, 0xfa, 0x18, 0x95, 0x57, 0x1b, + 0xee, 0xa1, 0xa7, 0xa4, 0x40, 0x92, 0x26, 0x65, 0x3a, 0xf7, 0x92, 0xd4, 0x2c, 0x59, 0x19, 0x93, + 0x9e, 0xc0, 0xac, 0xd8, 0x62, 0xd5, 0x94, 0x41, 0x28, 0x85, 0x13, 0x07, 0xf7, 0x4b, 0x2d, 0x93, + 0x99, 0x63, 0x88, 0x9d, 0xc9, 0xe8, 0x8f, 0x44, 0x29, 0x67, 0x32, 0x25, 0x97, 0x4f, 0x59, 0x4f, + 0xfb, 0x83, 0x3e, 0xa3, 0x67, 0x32, 0x96, 0xda, 0xd1, 0xec, 0x14, 0xd6, 0x28, 0xc5, 0x3a, 0x6d, + 0x45, 0xb8, 0x0d, 0x69, 0x83, 0x3a, 0xe5, 0xc1, 0xc7, 0x2c, 0x8a, 0xa4, 0x1f, 0xb3, 0xd4, 0x8e, + 0x9a, 0x9d, 0x33, 0x93, 0xea, 0x8b, 0x61, 0xc9, 0xab, 0x8c, 0xc4, 0x02, 0x92, 0x57, 0x59, 0x0f, + 0xf6, 0xa9, 0x55, 0xbf, 0x2b, 0x4c, 0xb8, 0x98, 0xde, 0xad, 0xbe, 0x2f, 0xee, 0xcb, 0x8b, 0xfd, + 0x9f, 0xa9, 0xf3, 0xdb, 0x81, 0x62, 0xf2, 0x51, 0x33, 0xca, 0x4a, 0xb1, 0xa0, 0xbc, 0xec, 0x96, + 0x86, 0x88, 0xf1, 0x35, 0xf4, 0x8e, 0x30, 0x0f, 0x75, 0xba, 0x86, 0x67, 0xf3, 0x2a, 0xe9, 0xfe, + 0x66, 0x44, 0xfc, 0xbe, 0x59, 0x35, 0xe2, 0x52, 0xef, 0xa7, 0x55, 0x33, 0x22, 0xe3, 0x49, 0xb4, + 0x2b, 0x62, 0x4a, 0xb2, 0x13, 0x42, 0xbd, 0xad, 0x9b, 0x59, 0x7d, 0x02, 0x4e, 0x07, 0xde, 0xbf, + 0xa0, 0xdf, 0x13, 0x99, 0x2e, 0xd3, 0x49, 0x2d, 0xde, 0x4a, 0xf8, 0x61, 0xb2, 0xa3, 0x29, 0xcb, + 0xfd, 0x72, 0x66, 0xa0, 0xc7, 0xf4, 0x9d, 0xd9, 0x93, 0xcd, 0xd5, 0x3a, 0xff, 0x29, 0x58, 0x3f, + 0x48, 0x39, 0xb8, 0x95, 0x9f, 0x33, 0x89, 0x99, 0xcc, 0xaa, 0x68, 0x88, 0xfb, 0x2b, 0xa8, 0x41, + 0xfd, 0xac, 0x1a, 0x34, 0xc3, 0xc7, 0x9d, 0x41, 0xb0, 0x9c, 0x4d, 0x90, 0x3a, 0xfd, 0xd7, 0xc4, + 0x6e, 0xa6, 0x77, 0xd3, 0xd0, 0x87, 0x7e, 0x56, 0x00, 0x13, 0x9b, 0x6c, 0x32, 0xa2, 0x77, 0x83, + 0xe4, 0x88, 0x71, 0xac, 0x51, 0x7d, 0xbc, 0xf5, 0x52, 0x1c, 0xd3, 0x10, 0xf7, 0x97, 0x39, 0xc7, + 0x34, 0xe8, 0xe5, 0x38, 0x96, 0x20, 0xa8, 0x73, 0x4c, 0xef, 0xa6, 0xa1, 0x0f, 0x83, 0x39, 0x96, + 0x4d, 0xe6, 0xa2, 0x1c, 0xfb, 0x86, 0xee, 0xcf, 0xeb, 0xf4, 0xd5, 0xd3, 0xa5, 0x78, 0x56, 0x12, + 0x16, 0xac, 0x8e, 0xba, 0xbf, 0x82, 0x9e, 0xd2, 0x74, 0x9e, 0x09, 0xf8, 0xc5, 0xf8, 0xb6, 0x60, + 0x22, 0x4a, 0x39, 0xb7, 0x09, 0x73, 0x8c, 0x73, 0xc9, 0xee, 0x1a, 0xfb, 0x62, 0x1c, 0xf6, 0xba, + 0x30, 0x76, 0x92, 0xa4, 0x2e, 0xcb, 0xbf, 0x55, 0x2a, 0x22, 0xbb, 0x01, 0xb1, 0x4f, 0xdb, 0x69, + 0xe3, 0x55, 0x27, 0x22, 0x3c, 0xe3, 0x7a, 0xf5, 0xfd, 0x65, 0xb4, 0x49, 0x67, 0x41, 0x07, 0xf7, + 0xb3, 0xee, 0xb3, 0xc9, 0x50, 0x26, 0x6d, 0x08, 0x83, 0x28, 0xd1, 0x27, 0x53, 0xdb, 0xe6, 0x4e, + 0xc9, 0xa3, 0xcf, 0x05, 0x47, 0x67, 0x62, 0x11, 0xdb, 0xd8, 0xd9, 0x49, 0x63, 0x10, 0x67, 0x92, + 0x3f, 0xa3, 0x8e, 0x7e, 0x0e, 0xe3, 0x02, 0x79, 0x30, 0x43, 0x92, 0xd8, 0x94, 0x21, 0x5f, 0xc2, + 0x04, 0x67, 0x08, 0xed, 0x81, 0xa9, 0x25, 0x63, 0xf7, 0xbf, 0x80, 0x09, 0xce, 0x86, 0xbe, 0x23, + 0x30, 0x5f, 0x2b, 0xce, 0xad, 0xe3, 0x28, 0xe3, 0x67, 0x7e, 0x07, 0x0d, 0x26, 0xeb, 0x57, 0x85, + 0xd1, 0x3e, 0x7d, 0x2f, 0x6a, 0xfa, 0x49, 0x66, 0x13, 0xc9, 0x81, 0x3f, 0x08, 0x4d, 0xe8, 0x36, + 0xcc, 0x74, 0x07, 0xe2, 0x1b, 0x47, 0xbf, 0x0d, 0x0b, 0xf4, 0x0e, 0xe2, 0xb2, 0x3d, 0x36, 0x1f, + 0x52, 0x6e, 0xc4, 0xe1, 0x07, 0xc9, 0x5f, 0x83, 0x36, 0x11, 0x1b, 0xf4, 0x43, 0xd4, 0x84, 0x6a, + 0xc3, 0x48, 0x75, 0x10, 0x76, 0x9f, 0xcd, 0xe8, 0x26, 0x1d, 0xfb, 0x25, 0x7b, 0xdb, 0x5f, 0xd3, + 0x24, 0x7e, 0x9e, 0x7a, 0x50, 0xf4, 0x44, 0xf2, 0x07, 0xb0, 0x09, 0x95, 0x46, 0x8a, 0x8a, 0xa9, + 0x76, 0xbf, 0xcd, 0x87, 0x0e, 0xed, 0x82, 0xbd, 0x31, 0x5f, 0x8e, 0x8c, 0xcb, 0x64, 0x1a, 0x48, + 0xb1, 0xed, 0xb5, 0x54, 0x11, 0xe5, 0x29, 0x35, 0xd6, 0x21, 0x44, 0x55, 0xb6, 0xc7, 0xab, 0x49, + 0x25, 0x14, 0x2f, 0x62, 0x66, 0xb6, 0x89, 0x24, 0x09, 0x76, 0x36, 0xa1, 0xbf, 0x99, 0xad, 0x9c, + 0x4d, 0x94, 0xe7, 0xf6, 0x65, 0xfd, 0x31, 0x3c, 0x57, 0x61, 0xf4, 0x45, 0xbc, 0x7a, 0x5f, 0xa4, + 0x3e, 0xb8, 0x57, 0xcf, 0x26, 0x7a, 0x6a, 0x00, 0x79, 0x36, 0xa1, 0x0d, 0xea, 0x94, 0x07, 0x9f, + 0x4d, 0x28, 0x92, 0x7e, 0x36, 0x51, 0x3b, 0x6a, 0x5e, 0x78, 0x28, 0x9d, 0x1b, 0x40, 0x9e, 0xbb, + 0x8d, 0x69, 0x03, 0xfa, 0x5c, 0x29, 0xcd, 0x64, 0x64, 0x81, 0x91, 0x36, 0xbf, 0x39, 0x43, 0x4c, + 0x59, 0xbf, 0x1f, 0x79, 0x90, 0x43, 0xdb, 0x34, 0xa9, 0x76, 0xd6, 0x4f, 0x89, 0x9b, 0xe4, 0xa7, + 0xef, 0x6f, 0x97, 0x13, 0x7a, 0x8d, 0x6c, 0x7a, 0x7d, 0xf1, 0xfa, 0x1c, 0xeb, 0x6e, 0xf0, 0x88, + 0x92, 0x4b, 0x74, 0xd1, 0x2c, 0xe2, 0x63, 0xcc, 0x47, 0x6c, 0x46, 0x2d, 0xaa, 0xbf, 0xdd, 0x4d, + 0xb7, 0xac, 0x25, 0x18, 0x65, 0x48, 0xc6, 0xdd, 0x46, 0xfb, 0xbd, 0x6f, 0xf4, 0x9e, 0xb8, 0xb8, + 0x25, 0x28, 0x5a, 0x91, 0xb1, 0x5f, 0xef, 0xc1, 0x38, 0x73, 0xbb, 0x5d, 0x1c, 0xe5, 0x33, 0x71, + 0xbd, 0xdb, 0xaf, 0x63, 0xe6, 0xa8, 0x8a, 0x29, 0xd5, 0xe1, 0x7c, 0x79, 0x46, 0x7e, 0x41, 0x5d, + 0x9f, 0xc2, 0xd5, 0x60, 0xc6, 0x9f, 0x4b, 0xfd, 0x36, 0x3b, 0x65, 0xe9, 0xc7, 0xd4, 0xff, 0x2a, + 0xd3, 0x29, 0x99, 0xba, 0x9f, 0xfe, 0x65, 0x77, 0xf4, 0x19, 0x4c, 0x33, 0xe6, 0x4a, 0xe4, 0x74, + 0xa5, 0x3e, 0x3c, 0x9b, 0x66, 0x6c, 0x7e, 0x19, 0xe4, 0x9f, 0x0b, 0x47, 0xed, 0xc0, 0x6e, 0x5f, + 0xc4, 0x45, 0x3b, 0x98, 0x75, 0x26, 0x2a, 0xbf, 0x47, 0x37, 0xdd, 0xec, 0x1c, 0x20, 0x46, 0x62, + 0xf7, 0x14, 0x17, 0x74, 0xff, 0xec, 0x21, 0xc7, 0x34, 0x3a, 0x30, 0xfb, 0xd7, 0xfd, 0xef, 0x0e, + 0xa0, 0x22, 0x18, 0xf0, 0xb3, 0x81, 0xf5, 0xa4, 0x9f, 0x8b, 0x67, 0x74, 0xcf, 0x6e, 0x6f, 0x40, + 0x26, 0x90, 0x0c, 0x97, 0xa1, 0x21, 0xc1, 0x86, 0x20, 0xa8, 0x5f, 0x3b, 0xf6, 0x1d, 0x83, 0xf9, + 0x88, 0x16, 0x27, 0x66, 0xbf, 0xe4, 0x24, 0x98, 0xcd, 0x28, 0x94, 0x4e, 0x3b, 0x82, 0xfa, 0x3d, + 0x7f, 0x52, 0x1d, 0xb2, 0xa6, 0x74, 0x25, 0xeb, 0x22, 0x14, 0x35, 0xf1, 0x96, 0xd0, 0xf4, 0x2a, + 0xb1, 0xcf, 0xe9, 0x8c, 0x07, 0x63, 0xbe, 0x16, 0x42, 0xe9, 0xd9, 0xbe, 0x3c, 0x21, 0xe9, 0x18, + 0x4e, 0x10, 0xb2, 0xfa, 0x4c, 0xef, 0x60, 0xa7, 0x57, 0xc9, 0x30, 0xaf, 0x97, 0x9f, 0x50, 0x27, + 0x0e, 0xfb, 0x4b, 0xe7, 0x46, 0x91, 0xdb, 0xbe, 0x31, 0x4f, 0x8b, 0x9c, 0xdd, 0x3e, 0x89, 0x55, + 0xea, 0xf1, 0x0f, 0xe1, 0x68, 0xc9, 0x54, 0xea, 0xf6, 0x96, 0x74, 0xd7, 0x65, 0x65, 0x59, 0x29, + 0x83, 0x28, 0xb4, 0xb7, 0xc8, 0x5a, 0x37, 0x25, 0x02, 0x89, 0x43, 0x97, 0xfa, 0xa7, 0x49, 0x91, + 0x6b, 0x7d, 0x60, 0x46, 0x91, 0x6d, 0x98, 0xcd, 0x4a, 0xe0, 0x21, 0x27, 0xad, 0x4f, 0x76, 0x8f, + 0xcc, 0xf8, 0xa8, 0x1d, 0x98, 0xcb, 0x4c, 0xa2, 0x21, 0x6f, 0x48, 0xfa, 0xa5, 0xd8, 0xc8, 0xa4, + 0xf8, 0x2d, 0xcc, 0x1b, 0x32, 0x46, 0xc4, 0x0e, 0xc4, 0xbe, 0x19, 0x25, 0x8c, 0x02, 0xf1, 0x3d, + 0x94, 0xcd, 0xc9, 0x08, 0xd0, 0x3d, 0xdd, 0x09, 0x6a, 0x4e, 0x01, 0x50, 0xce, 0xcc, 0x9e, 0x82, + 0x76, 0x69, 0x62, 0xb7, 0xac, 0xec, 0x04, 0xb2, 0xdf, 0xfd, 0xb3, 0x17, 0x18, 0xe2, 0xda, 0xe6, + 0x0d, 0x09, 0x09, 0xfa, 0x50, 0xbd, 0x40, 0x6f, 0xb7, 0x85, 0x5e, 0xd2, 0xdf, 0xda, 0x27, 0x42, + 0xe4, 0x33, 0x1f, 0xe2, 0x67, 0xf6, 0xf3, 0x6b, 0x98, 0xd2, 0x5e, 0x63, 0x4a, 0xf1, 0xcf, 0x7a, + 0xc3, 0x2b, 0xbd, 0xd5, 0x99, 0x0f, 0x38, 0x6b, 0xc5, 0x9f, 0xfe, 0xfb, 0x62, 0xee, 0xa7, 0x5f, + 0x2f, 0xe6, 0xfe, 0xeb, 0xaf, 0x17, 0x73, 0xbf, 0xfa, 0xf5, 0x62, 0xee, 0x60, 0x94, 0x56, 0x5f, + 0xf9, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe9, 0xf8, 0xe8, 0x00, 0x46, 0x91, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -25398,6 +25412,27 @@ func (m *PaginatedResource_WindowsDesktop) MarshalToSizedBuffer(dAtA []byte) (in } return len(dAtA) - i, nil } +func (m *PaginatedResource_KubeCluster) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PaginatedResource_KubeCluster) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.KubeCluster != nil { + { + size, err := m.KubeCluster.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintAuthservice(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} func (m *ListResourcesRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -25628,12 +25663,12 @@ func (m *CreateSessionTrackerRequest) MarshalToSizedBuffer(dAtA []byte) (int, er i-- dAtA[i] = 0x5a } - n101, err101 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err101 != nil { - return 0, err101 + n102, err102 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err102 != nil { + return 0, err102 } - i -= n101 - i = encodeVarintAuthservice(dAtA, i, uint64(n101)) + i -= n102 + i = encodeVarintAuthservice(dAtA, i, uint64(n102)) i-- dAtA[i] = 0x52 if m.Initiator != nil { @@ -29703,6 +29738,18 @@ func (m *PaginatedResource_WindowsDesktop) Size() (n int) { } return n } +func (m *PaginatedResource_KubeCluster) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.KubeCluster != nil { + l = m.KubeCluster.Size() + n += 1 + l + sovAuthservice(uint64(l)) + } + return n +} func (m *ListResourcesRequest) Size() (n int) { if m == nil { return 0 @@ -47468,6 +47515,41 @@ func (m *PaginatedResource) Unmarshal(dAtA []byte) error { } m.Resource = &PaginatedResource_WindowsDesktop{v} iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeCluster", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuthservice + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthAuthservice + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthAuthservice + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &types.KubernetesClusterV3{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Resource = &PaginatedResource_KubeCluster{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipAuthservice(dAtA[iNdEx:]) diff --git a/api/client/proto/authservice.proto b/api/client/proto/authservice.proto index a7eb12e81795c..80ac456f6190d 100644 --- a/api/client/proto/authservice.proto +++ b/api/client/proto/authservice.proto @@ -1470,6 +1470,9 @@ message PaginatedResource { // WindowsDesktop represents a WindowsDesktop resource. types.WindowsDesktopV3 WindowsDesktop = 5 [ (gogoproto.jsontag) = "windows_desktop,omitempty" ]; + // KubeCluster represents a KubeCluster resource. + types.KubernetesClusterV3 KubeCluster = 6 + [ (gogoproto.jsontag) = "kube_cluster,omitempty" ]; } } diff --git a/api/client/proto/types.go b/api/client/proto/types.go index ece8f561c6ba0..9e1b789474628 100644 --- a/api/client/proto/types.go +++ b/api/client/proto/types.go @@ -88,5 +88,5 @@ func (req *ListResourcesRequest) CheckAndSetDefaults() error { // RequiresFakePagination checks if we need to fallback to GetXXX calls // that retrieves entire resources upfront rather than working with subsets. func (req *ListResourcesRequest) RequiresFakePagination() bool { - return req.SortBy.Field != "" || req.NeedTotalCount + return req.SortBy.Field != "" || req.NeedTotalCount || req.ResourceType == types.KindKubernetesCluster } diff --git a/api/types/kubernetes.go b/api/types/kubernetes.go index 13e5c7545c946..511f527defa29 100644 --- a/api/types/kubernetes.go +++ b/api/types/kubernetes.go @@ -18,6 +18,7 @@ package types import ( "fmt" + "sort" "time" "github.com/gogo/protobuf/proto" @@ -25,6 +26,30 @@ import ( "github.com/gravitational/trace" ) +// KubeCluster represents a kubernetes cluster. +type KubeCluster interface { + // ResourceWithLabels provides common resource methods. + ResourceWithLabels + // GetNamespace returns the kube cluster namespace. + GetNamespace() string + // GetStaticLabels returns the kube cluster static labels. + GetStaticLabels() map[string]string + // SetStaticLabels sets the kube cluster static labels. + SetStaticLabels(map[string]string) + // GetDynamicLabels returns the kube cluster dynamic labels. + GetDynamicLabels() map[string]CommandLabel + // SetDynamicLabels sets the kube cluster dynamic labels. + SetDynamicLabels(map[string]CommandLabel) + // LabelsString returns all labels as a string. + LabelsString() string + // String returns string representation of the kube cluster. + String() string + // GetDescription returns the kube cluster description. + GetDescription() string + // Copy returns a copy of this kube cluster resource. + Copy() *KubernetesClusterV3 +} + // NewKubernetesClusterV3FromLegacyCluster creates a new Kubernetes cluster resource // from the legacy type. func NewKubernetesClusterV3FromLegacyCluster(namespace string, cluster *KubernetesCluster) (*KubernetesClusterV3, error) { @@ -192,3 +217,76 @@ func (k *KubernetesClusterV3) CheckAndSetDefaults() error { return nil } + +// KubeClusters represents a list of kube clusters. +type KubeClusters []KubeCluster + +// Len returns the slice length. +func (s KubeClusters) Len() int { return len(s) } + +// Less compares kube clusters by name. +func (s KubeClusters) Less(i, j int) bool { + return s[i].GetName() < s[j].GetName() +} + +// Swap swaps two kube clusters. +func (s KubeClusters) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +// SortByCustom custom sorts by given sort criteria. +func (s KubeClusters) SortByCustom(sortBy SortBy) error { + if sortBy.Field == "" { + return nil + } + + isDesc := sortBy.IsDesc + switch sortBy.Field { + case ResourceMetadataName: + sort.SliceStable(s, func(i, j int) bool { + return stringCompare(s[i].GetName(), s[j].GetName(), isDesc) + }) + default: + return trace.NotImplemented("sorting by field %q for resource %q is not supported", sortBy.Field, KindKubernetesCluster) + } + + return nil +} + +// AsResources returns as type resources with labels. +func (s KubeClusters) AsResources() []ResourceWithLabels { + resources := make([]ResourceWithLabels, 0, len(s)) + for _, cluster := range s { + resources = append(resources, ResourceWithLabels(cluster)) + } + return resources +} + +// GetFieldVals returns list of select field values. +func (s KubeClusters) GetFieldVals(field string) ([]string, error) { + vals := make([]string, 0, len(s)) + switch field { + case ResourceMetadataName: + for _, server := range s { + vals = append(vals, server.GetName()) + } + default: + return nil, trace.NotImplemented("getting field %q for resource %q is not supported", field, KindKubernetesCluster) + } + + return vals, nil +} + +// DeduplicateKubeClusters deduplicates kube clusters by name. +func DeduplicateKubeClusters(kubeclusters []KubeCluster) []KubeCluster { + seen := make(map[string]struct{}) + result := make([]KubeCluster, 0, len(kubeclusters)) + + for _, cluster := range kubeclusters { + if _, ok := seen[cluster.GetName()]; ok { + continue + } + seen[cluster.GetName()] = struct{}{} + result = append(result, cluster) + } + + return result +} diff --git a/api/types/kubernetes_test.go b/api/types/kubernetes_test.go new file mode 100644 index 0000000000000..2931ebf626a0f --- /dev/null +++ b/api/types/kubernetes_test.go @@ -0,0 +1,84 @@ +/* +Copyright 2022 Gravitational, Inc. + +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. +*/ + +package types + +import ( + "testing" + + "github.com/gravitational/trace" + "github.com/stretchr/testify/require" +) + +func TestKubeClustersSorter(t *testing.T) { + t.Parallel() + + makeClusters := func(testVals []string, testField string) []KubeCluster { + servers := make([]KubeCluster, len(testVals)) + for i := 0; i < len(testVals); i++ { + var err error + servers[i], err = NewKubernetesClusterV3FromLegacyCluster("_", &KubernetesCluster{ + Name: testVals[i], + }) + require.NoError(t, err) + } + return servers + } + + testValsUnordered := []string{"d", "b", "a", "c"} + + // Test descending. + sortBy := SortBy{Field: ResourceMetadataName, IsDesc: true} + clusters := KubeClusters(makeClusters(testValsUnordered, ResourceMetadataName)) + require.NoError(t, clusters.SortByCustom(sortBy)) + targetVals, err := clusters.GetFieldVals(ResourceMetadataName) + require.NoError(t, err) + require.IsDecreasing(t, targetVals) + + // Test ascending. + sortBy = SortBy{Field: ResourceMetadataName} + clusters = KubeClusters(makeClusters(testValsUnordered, ResourceMetadataName)) + require.NoError(t, clusters.SortByCustom(sortBy)) + targetVals, err = clusters.GetFieldVals(ResourceMetadataName) + require.NoError(t, err) + require.IsIncreasing(t, targetVals) + + // Test error. + sortBy = SortBy{Field: "unsupported"} + clusters = KubeClusters(makeClusters(testValsUnordered, ResourceMetadataName)) + require.True(t, trace.IsNotImplemented(clusters.SortByCustom(sortBy))) +} + +func TestDeduplicateKubeClusters(t *testing.T) { + t.Parallel() + + expected := []KubeCluster{ + &KubernetesClusterV3{Metadata: Metadata{Name: "a"}}, + &KubernetesClusterV3{Metadata: Metadata{Name: "b"}}, + &KubernetesClusterV3{Metadata: Metadata{Name: "c"}}, + } + + extra := []KubeCluster{ + &KubernetesClusterV3{Metadata: Metadata{Name: "a"}}, + &KubernetesClusterV3{Metadata: Metadata{Name: "a"}}, + &KubernetesClusterV3{Metadata: Metadata{Name: "b"}}, + } + + clusters := append(expected, extra...) + + result := DeduplicateKubeClusters(clusters) + require.ElementsMatch(t, result, expected) +} diff --git a/api/types/resource.go b/api/types/resource.go index f0ffd15e87c92..389fbce18e2f4 100644 --- a/api/types/resource.go +++ b/api/types/resource.go @@ -161,6 +161,19 @@ func (r ResourcesWithLabels) AsWindowsDesktops() ([]WindowsDesktop, error) { return desktops, nil } +// AsKubeClusters converts each resource into type KubeCluster. +func (r ResourcesWithLabels) AsKubeClusters() ([]KubeCluster, error) { + clusters := make([]KubeCluster, 0, len(r)) + for _, resource := range r { + cluster, ok := resource.(KubeCluster) + if !ok { + return nil, trace.BadParameter("expected types.KubeCluster, got: %T", resource) + } + clusters = append(clusters, cluster) + } + return clusters, nil +} + // GetVersion returns resource version func (h *ResourceHeader) GetVersion() string { return h.Version diff --git a/lib/auth/auth_with_roles.go b/lib/auth/auth_with_roles.go index adc9075c26ef7..0cc45b35520a3 100644 --- a/lib/auth/auth_with_roles.go +++ b/lib/auth/auth_with_roles.go @@ -1043,6 +1043,30 @@ func (a *ServerWithRoles) listResourcesWithSort(ctx context.Context, req proto.L } resources = servers.AsResources() + case types.KindKubernetesCluster: + kubeservices, err := a.GetKubeServices(ctx) + if err != nil { + return nil, trace.Wrap(err) + } + + // Extract kube clusters into its own list. + clusters := []types.KubeCluster{} + for _, svc := range kubeservices { + for _, legacyCluster := range svc.GetKubernetesClusters() { + cluster, err := types.NewKubernetesClusterV3FromLegacyCluster(svc.GetNamespace(), legacyCluster) + if err != nil { + return nil, trace.Wrap(err) + } + clusters = append(clusters, cluster) + } + } + + sortedClusters := types.KubeClusters(types.DeduplicateKubeClusters(clusters)) + if err := sortedClusters.SortByCustom(req.SortBy); err != nil { + return nil, trace.Wrap(err) + } + resources = sortedClusters.AsResources() + case types.KindWindowsDesktop: windowsdesktops, err := a.GetWindowsDesktops(ctx, req.GetWindowsDesktopFilter()) if err != nil { @@ -1741,8 +1765,8 @@ func (a *ServerWithRoles) GenerateKeyPair(pass string) ([]byte, []byte, error) { } func (a *ServerWithRoles) GenerateHostCert( - key []byte, hostID, nodeName string, principals []string, clusterName string, role types.SystemRole, ttl time.Duration) ([]byte, error) { - + key []byte, hostID, nodeName string, principals []string, clusterName string, role types.SystemRole, ttl time.Duration, +) ([]byte, error) { if err := a.action(apidefaults.Namespace, types.KindHostCert, types.VerbCreate); err != nil { return nil, trace.Wrap(err) } diff --git a/lib/auth/auth_with_roles_test.go b/lib/auth/auth_with_roles_test.go index cbdcfa0ad74eb..4fdf8a890a5c3 100644 --- a/lib/auth/auth_with_roles_test.go +++ b/lib/auth/auth_with_roles_test.go @@ -2296,3 +2296,108 @@ func TestGetAndList_WindowsDesktops(t *testing.T) { require.Len(t, resp.Resources, 0) require.Empty(t, cmp.Diff([]types.ResourceWithLabels{}, resp.Resources)) } + +func TestListResources_KindKubernetesCluster(t *testing.T) { + t.Parallel() + ctx := context.Background() + srv, err := NewTestAuthServer(TestAuthServerConfig{Dir: t.TempDir()}) + require.NoError(t, err) + + authContext, err := srv.Authorizer.Authorize(context.WithValue(ctx, ContextUser, TestBuiltin(types.RoleProxy).I)) + require.NoError(t, err) + + s := &ServerWithRoles{ + authServer: srv.AuthServer, + sessions: srv.SessionServer, + alog: srv.AuditLog, + context: *authContext, + } + + testNames := []string{"a", "b", "c", "d"} + + // Add some kube services. + kubeService, err := types.NewServer("bar", types.KindKubeService, types.ServerSpecV2{ + KubernetesClusters: []*types.KubernetesCluster{{Name: "d"}, {Name: "b"}, {Name: "a"}}, + }) + require.NoError(t, err) + _, err = s.UpsertKubeServiceV2(ctx, kubeService) + require.NoError(t, err) + + // Include a duplicate cluster name to test deduplicate. + kubeService, err = types.NewServer("foo", types.KindKubeService, types.ServerSpecV2{ + KubernetesClusters: []*types.KubernetesCluster{{Name: "a"}, {Name: "c"}}, + }) + require.NoError(t, err) + _, err = s.UpsertKubeServiceV2(ctx, kubeService) + require.NoError(t, err) + + // Test upsert. + kubeservices, err := s.GetKubeServices(ctx) + require.NoError(t, err) + require.Len(t, kubeservices, 2) + + t.Run("fetch all", func(t *testing.T) { + t.Parallel() + + res, err := s.ListResources(ctx, proto.ListResourcesRequest{ + ResourceType: types.KindKubernetesCluster, + Limit: 10, + }) + require.NoError(t, err) + require.Len(t, res.Resources, len(testNames)) + require.Empty(t, res.NextKey) + require.Empty(t, res.TotalCount) + + clusters, err := types.ResourcesWithLabels(res.Resources).AsKubeClusters() + require.NoError(t, err) + names, err := types.KubeClusters(clusters).GetFieldVals(types.ResourceMetadataName) + require.NoError(t, err) + require.ElementsMatch(t, names, testNames) + }) + + t.Run("start keys", func(t *testing.T) { + t.Parallel() + + // First fetch. + res, err := s.ListResources(ctx, proto.ListResourcesRequest{ + ResourceType: types.KindKubernetesCluster, + Limit: 1, + }) + require.NoError(t, err) + require.Len(t, res.Resources, 1) + require.Equal(t, kubeservices[0].GetKubernetesClusters()[1].Name, res.NextKey) + + // Second fetch. + res, err = s.ListResources(ctx, proto.ListResourcesRequest{ + ResourceType: types.KindKubernetesCluster, + Limit: 1, + StartKey: res.NextKey, + }) + require.NoError(t, err) + require.Len(t, res.Resources, 1) + require.Equal(t, kubeservices[0].GetKubernetesClusters()[2].Name, res.NextKey) + }) + + t.Run("fetch with sort and total count", func(t *testing.T) { + t.Parallel() + res, err := s.ListResources(ctx, proto.ListResourcesRequest{ + ResourceType: types.KindKubernetesCluster, + Limit: 10, + SortBy: types.SortBy{ + IsDesc: true, + Field: types.ResourceMetadataName, + }, + NeedTotalCount: true, + }) + require.NoError(t, err) + require.Empty(t, res.NextKey) + require.Len(t, res.Resources, len(testNames)) + require.Equal(t, res.TotalCount, len(testNames)) + + clusters, err := types.ResourcesWithLabels(res.Resources).AsKubeClusters() + require.NoError(t, err) + names, err := types.KubeClusters(clusters).GetFieldVals(types.ResourceMetadataName) + require.NoError(t, err) + require.IsDecreasing(t, names) + }) +} diff --git a/lib/auth/grpcserver.go b/lib/auth/grpcserver.go index 54c80a94e0bb9..7945b98980f93 100644 --- a/lib/auth/grpcserver.go +++ b/lib/auth/grpcserver.go @@ -3760,6 +3760,13 @@ func (g *GRPCServer) ListResources(ctx context.Context, req *proto.ListResources } protoResource = &proto.PaginatedResource{Resource: &proto.PaginatedResource_WindowsDesktop{WindowsDesktop: desktop}} + case types.KindKubernetesCluster: + cluster, ok := resource.(*types.KubernetesClusterV3) + if !ok { + return nil, trace.BadParameter("kubernetes cluster has invalid type %T", resource) + } + + protoResource = &proto.PaginatedResource{Resource: &proto.PaginatedResource_KubeCluster{KubeCluster: cluster}} default: return nil, trace.NotImplemented("resource type %s doesn't support pagination", req.ResourceType) } diff --git a/lib/auth/grpcserver_test.go b/lib/auth/grpcserver_test.go index 791461532d750..42519a60a806c 100644 --- a/lib/auth/grpcserver_test.go +++ b/lib/auth/grpcserver_test.go @@ -2076,11 +2076,11 @@ func TestListResources(t *testing.T) { testCases := map[string]struct { resourceType string - createResource func(name string) error + createResource func(name string, clt *Client) error }{ "DatabaseServers": { resourceType: types.KindDatabaseServer, - createResource: func(name string) error { + createResource: func(name string, clt *Client) error { server, err := types.NewDatabaseServerV3(types.Metadata{ Name: name, }, types.DatabaseServerSpecV3{ @@ -2099,7 +2099,7 @@ func TestListResources(t *testing.T) { }, "ApplicationServers": { resourceType: types.KindAppServer, - createResource: func(name string) error { + createResource: func(name string, clt *Client) error { app, err := types.NewAppV3(types.Metadata{ Name: name, }, types.AppSpecV3{ @@ -2126,7 +2126,7 @@ func TestListResources(t *testing.T) { }, "KubeService": { resourceType: types.KindKubeService, - createResource: func(name string) error { + createResource: func(name string, clt *Client) error { server, err := types.NewServer(name, types.KindKubeService, types.ServerSpecV2{ KubernetesClusters: []*types.KubernetesCluster{ {Name: name, StaticLabels: map[string]string{"name": name}}, @@ -2141,7 +2141,7 @@ func TestListResources(t *testing.T) { }, "Node": { resourceType: types.KindNode, - createResource: func(name string) error { + createResource: func(name string, clt *Client) error { server, err := types.NewServer(name, types.KindNode, types.ServerSpecV2{}) if err != nil { return err @@ -2153,7 +2153,7 @@ func TestListResources(t *testing.T) { }, "WindowsDesktops": { resourceType: types.KindWindowsDesktop, - createResource: func(name string) error { + createResource: func(name string, clt *Client) error { desktop, err := types.NewWindowsDesktopV3(name, nil, types.WindowsDesktopSpecV3{Addr: "_", HostID: "_"}) if err != nil { @@ -2166,7 +2166,10 @@ func TestListResources(t *testing.T) { } for name, test := range testCases { + name := name + test := test t.Run(name, func(t *testing.T) { + t.Parallel() resp, err := clt.ListResources(ctx, proto.ListResourcesRequest{ ResourceType: test.resourceType, Namespace: apidefaults.Namespace, @@ -2177,9 +2180,9 @@ func TestListResources(t *testing.T) { require.Empty(t, resp.NextKey) // create two resources - err = test.createResource("foo") + err = test.createResource("foo", clt) require.NoError(t, err) - err = test.createResource("bar") + err = test.createResource("bar", clt) require.NoError(t, err) resp, err = clt.ListResources(ctx, proto.ListResourcesRequest{ @@ -2192,6 +2195,20 @@ func TestListResources(t *testing.T) { require.Empty(t, resp.NextKey) require.Empty(t, resp.TotalCount) + // Test types.KindKubernetesCluster + if test.resourceType == types.KindKubeService { + test.resourceType = types.KindKubernetesCluster + resp, err = clt.ListResources(ctx, proto.ListResourcesRequest{ + ResourceType: test.resourceType, + Namespace: apidefaults.Namespace, + Limit: 100, + }) + require.NoError(t, err) + require.Len(t, resp.Resources, 2) + require.Empty(t, resp.NextKey) + require.Empty(t, resp.TotalCount) + } + // Test listing with NeedTotalCount flag. if test.resourceType != types.KindKubeService { resp, err = clt.ListResources(ctx, proto.ListResourcesRequest{ diff --git a/lib/services/matchers.go b/lib/services/matchers.go index 28626542130f0..b734adfbfb1d8 100644 --- a/lib/services/matchers.go +++ b/lib/services/matchers.go @@ -72,7 +72,7 @@ func MatchResourceByFilters(resource types.ResourceWithLabels, filter MatchResou // We assume when filtering for services like KubeService, AppServer, and DatabaseServer // the user is wanting to filter the contained resource ie. KubeClusters, Application, and Database. switch filter.ResourceKind { - case types.KindNode, types.KindWindowsDesktop: + case types.KindNode, types.KindWindowsDesktop, types.KindKubernetesCluster: specResource = resource case types.KindKubeService: diff --git a/lib/services/matchers_test.go b/lib/services/matchers_test.go index 8ec430a38b2c5..1e6edf23f43d9 100644 --- a/lib/services/matchers_test.go +++ b/lib/services/matchers_test.go @@ -451,6 +451,20 @@ func TestMatchResourceByFilters(t *testing.T) { PredicateExpression: filterExpression, }, }, + { + name: "kube cluster", + resource: func() types.ResourceWithLabels { + cluster, err := types.NewKubernetesClusterV3FromLegacyCluster("_", &types.KubernetesCluster{ + Name: "foo", + }) + require.NoError(t, err) + return cluster + }, + filters: MatchResourceFilter{ + ResourceKind: types.KindKubernetesCluster, + PredicateExpression: filterExpression, + }, + }, { name: "node", resource: func() types.ResourceWithLabels {