diff --git a/assets/swagger.json b/assets/swagger.json index 8eb01ef642551a..6b6ba2589f7423 100644 --- a/assets/swagger.json +++ b/assets/swagger.json @@ -8032,6 +8032,10 @@ "type": "string", "title": "GithubAppPrivateKey specifies the private key PEM data for authentication via GitHub app" }, + "noProxy": { + "type": "string", + "title": "NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied" + }, "password": { "type": "string", "title": "Password for authenticating at the repo server" @@ -8138,6 +8142,10 @@ "type": "string", "title": "Name specifies a name to be used for this repo. Only used with Helm repos" }, + "noProxy": { + "type": "string", + "title": "NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied" + }, "password": { "type": "string", "title": "Password contains the password or PAT used for authenticating at the remote repository" diff --git a/pkg/apis/application/v1alpha1/generated.pb.go b/pkg/apis/application/v1alpha1/generated.pb.go index 24d8e7c920ed26..681726132bc386 100644 --- a/pkg/apis/application/v1alpha1/generated.pb.go +++ b/pkg/apis/application/v1alpha1/generated.pb.go @@ -4506,699 +4506,700 @@ func init() { } var fileDescriptor_030104ce3b95bcac = []byte{ - // 11073 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x24, 0xc7, - 0x75, 0x98, 0x66, 0x17, 0x0b, 0xec, 0x3e, 0x7c, 0xdc, 0x5d, 0xdf, 0x1d, 0x09, 0x9e, 0x48, 0xe2, - 0x3c, 0xb4, 0x29, 0x2a, 0x22, 0x01, 0xf3, 0x44, 0xca, 0x8c, 0x68, 0x4b, 0xc6, 0x02, 0x77, 0x38, - 0xdc, 0x01, 0x07, 0xb0, 0x81, 0xbb, 0x93, 0x28, 0x53, 0xd4, 0x60, 0xb7, 0xb1, 0x98, 0xc3, 0xec, - 0xcc, 0x70, 0x66, 0x16, 0x07, 0xd0, 0x92, 0x2c, 0x59, 0x92, 0xad, 0x44, 0x1f, 0x54, 0xa4, 0xa4, - 0x4c, 0x27, 0x96, 0x22, 0x5b, 0x4e, 0x2a, 0xae, 0x44, 0x15, 0x27, 0xf9, 0x11, 0x27, 0x4e, 0xca, - 0x65, 0x3b, 0x95, 0x52, 0xe2, 0xa4, 0xec, 0x72, 0xb9, 0x2c, 0x27, 0xb1, 0x11, 0xe9, 0x52, 0xa9, - 0xa4, 0x52, 0x15, 0x57, 0x39, 0xf1, 0x8f, 0xe4, 0x92, 0x1f, 0xa9, 0xfe, 0xee, 0x99, 0x9d, 0x05, - 0x16, 0xc0, 0xe0, 0xee, 0xa4, 0xf0, 0xdf, 0x6e, 0xbf, 0x37, 0xef, 0xf5, 0xf4, 0x74, 0xbf, 0xf7, - 0xfa, 0xf5, 0x7b, 0xaf, 0x61, 0xa1, 0xe5, 0x26, 0x1b, 0x9d, 0xb5, 0xc9, 0x46, 0xd0, 0x9e, 0x72, - 0xa2, 0x56, 0x10, 0x46, 0xc1, 0x2d, 0xf6, 0xe3, 0x99, 0x46, 0x73, 0x6a, 0xeb, 0xc2, 0x54, 0xb8, - 0xd9, 0x9a, 0x72, 0x42, 0x37, 0x9e, 0x72, 0xc2, 0xd0, 0x73, 0x1b, 0x4e, 0xe2, 0x06, 0xfe, 0xd4, - 0xd6, 0xb3, 0x8e, 0x17, 0x6e, 0x38, 0xcf, 0x4e, 0xb5, 0x88, 0x4f, 0x22, 0x27, 0x21, 0xcd, 0xc9, - 0x30, 0x0a, 0x92, 0x00, 0xfd, 0xa8, 0xa6, 0x36, 0x29, 0xa9, 0xb1, 0x1f, 0xaf, 0x36, 0x9a, 0x93, - 0x5b, 0x17, 0x26, 0xc3, 0xcd, 0xd6, 0x24, 0xa5, 0x36, 0x69, 0x50, 0x9b, 0x94, 0xd4, 0xce, 0x3d, - 0x63, 0xf4, 0xa5, 0x15, 0xb4, 0x82, 0x29, 0x46, 0x74, 0xad, 0xb3, 0xce, 0xfe, 0xb1, 0x3f, 0xec, - 0x17, 0x67, 0x76, 0xce, 0xde, 0x7c, 0x21, 0x9e, 0x74, 0x03, 0xda, 0xbd, 0xa9, 0x46, 0x10, 0x91, - 0xa9, 0xad, 0xae, 0x0e, 0x9d, 0xbb, 0xac, 0x71, 0xc8, 0x76, 0x42, 0xfc, 0xd8, 0x0d, 0xfc, 0xf8, - 0x19, 0xda, 0x05, 0x12, 0x6d, 0x91, 0xc8, 0x7c, 0x3d, 0x03, 0x21, 0x8f, 0xd2, 0x73, 0x9a, 0x52, - 0xdb, 0x69, 0x6c, 0xb8, 0x3e, 0x89, 0x76, 0xf4, 0xe3, 0x6d, 0x92, 0x38, 0x79, 0x4f, 0x4d, 0xf5, - 0x7a, 0x2a, 0xea, 0xf8, 0x89, 0xdb, 0x26, 0x5d, 0x0f, 0xbc, 0x67, 0xbf, 0x07, 0xe2, 0xc6, 0x06, - 0x69, 0x3b, 0x5d, 0xcf, 0xbd, 0xbb, 0xd7, 0x73, 0x9d, 0xc4, 0xf5, 0xa6, 0x5c, 0x3f, 0x89, 0x93, - 0x28, 0xfb, 0x90, 0xfd, 0x0b, 0x16, 0x8c, 0x4e, 0xdf, 0x5c, 0x99, 0xee, 0x24, 0x1b, 0x33, 0x81, - 0xbf, 0xee, 0xb6, 0xd0, 0xf3, 0x30, 0xdc, 0xf0, 0x3a, 0x71, 0x42, 0xa2, 0x6b, 0x4e, 0x9b, 0x8c, - 0x5b, 0xe7, 0xad, 0xa7, 0x6a, 0xf5, 0xd3, 0xdf, 0xda, 0x9d, 0x78, 0xdb, 0x9d, 0xdd, 0x89, 0xe1, - 0x19, 0x0d, 0xc2, 0x26, 0x1e, 0x7a, 0x27, 0x0c, 0x45, 0x81, 0x47, 0xa6, 0xf1, 0xb5, 0xf1, 0x12, - 0x7b, 0xe4, 0x84, 0x78, 0x64, 0x08, 0xf3, 0x66, 0x2c, 0xe1, 0x14, 0x35, 0x8c, 0x82, 0x75, 0xd7, - 0x23, 0xe3, 0xe5, 0x34, 0xea, 0x32, 0x6f, 0xc6, 0x12, 0x6e, 0xff, 0x61, 0x09, 0x60, 0x3a, 0x0c, - 0x97, 0xa3, 0xe0, 0x16, 0x69, 0x24, 0xe8, 0x23, 0x50, 0xa5, 0xc3, 0xdc, 0x74, 0x12, 0x87, 0x75, - 0x6c, 0xf8, 0xc2, 0x0f, 0x4f, 0xf2, 0xb7, 0x9e, 0x34, 0xdf, 0x5a, 0x4f, 0x32, 0x8a, 0x3d, 0xb9, - 0xf5, 0xec, 0xe4, 0xd2, 0x1a, 0x7d, 0x7e, 0x91, 0x24, 0x4e, 0x1d, 0x09, 0x66, 0xa0, 0xdb, 0xb0, - 0xa2, 0x8a, 0x7c, 0x18, 0x88, 0x43, 0xd2, 0x60, 0xef, 0x30, 0x7c, 0x61, 0x61, 0xf2, 0x28, 0xb3, - 0x79, 0x52, 0xf7, 0x7c, 0x25, 0x24, 0x8d, 0xfa, 0x88, 0xe0, 0x3c, 0x40, 0xff, 0x61, 0xc6, 0x07, - 0x6d, 0xc1, 0x60, 0x9c, 0x38, 0x49, 0x27, 0x66, 0x43, 0x31, 0x7c, 0xe1, 0x5a, 0x61, 0x1c, 0x19, - 0xd5, 0xfa, 0x98, 0xe0, 0x39, 0xc8, 0xff, 0x63, 0xc1, 0xcd, 0xfe, 0x13, 0x0b, 0xc6, 0x34, 0xf2, - 0x82, 0x1b, 0x27, 0xe8, 0x27, 0xba, 0x06, 0x77, 0xb2, 0xbf, 0xc1, 0xa5, 0x4f, 0xb3, 0xa1, 0x3d, - 0x29, 0x98, 0x55, 0x65, 0x8b, 0x31, 0xb0, 0x6d, 0xa8, 0xb8, 0x09, 0x69, 0xc7, 0xe3, 0xa5, 0xf3, - 0xe5, 0xa7, 0x86, 0x2f, 0x5c, 0x2e, 0xea, 0x3d, 0xeb, 0xa3, 0x82, 0x69, 0x65, 0x9e, 0x92, 0xc7, - 0x9c, 0x8b, 0xfd, 0x2b, 0x23, 0xe6, 0xfb, 0xd1, 0x01, 0x47, 0xcf, 0xc2, 0x70, 0x1c, 0x74, 0xa2, - 0x06, 0xc1, 0x24, 0x0c, 0xe2, 0x71, 0xeb, 0x7c, 0x99, 0x4e, 0x3d, 0x3a, 0xa9, 0x57, 0x74, 0x33, - 0x36, 0x71, 0xd0, 0x17, 0x2d, 0x18, 0x69, 0x92, 0x38, 0x71, 0x7d, 0xc6, 0x5f, 0x76, 0x7e, 0xf5, - 0xc8, 0x9d, 0x97, 0x8d, 0xb3, 0x9a, 0x78, 0xfd, 0x8c, 0x78, 0x91, 0x11, 0xa3, 0x31, 0xc6, 0x29, - 0xfe, 0x74, 0x71, 0x36, 0x49, 0xdc, 0x88, 0xdc, 0x90, 0xfe, 0x17, 0xcb, 0x47, 0x2d, 0xce, 0x59, - 0x0d, 0xc2, 0x26, 0x1e, 0xf2, 0xa1, 0x42, 0x17, 0x5f, 0x3c, 0x3e, 0xc0, 0xfa, 0x3f, 0x7f, 0xb4, - 0xfe, 0x8b, 0x41, 0xa5, 0xeb, 0x5a, 0x8f, 0x3e, 0xfd, 0x17, 0x63, 0xce, 0x06, 0x7d, 0xc1, 0x82, - 0x71, 0x21, 0x1c, 0x30, 0xe1, 0x03, 0x7a, 0x73, 0xc3, 0x4d, 0x88, 0xe7, 0xc6, 0xc9, 0x78, 0x85, - 0xf5, 0x61, 0xaa, 0xbf, 0xb9, 0x35, 0x17, 0x05, 0x9d, 0xf0, 0xaa, 0xeb, 0x37, 0xeb, 0xe7, 0x05, - 0xa7, 0xf1, 0x99, 0x1e, 0x84, 0x71, 0x4f, 0x96, 0xe8, 0x2b, 0x16, 0x9c, 0xf3, 0x9d, 0x36, 0x89, - 0x43, 0x87, 0x7e, 0x5a, 0x0e, 0xae, 0x7b, 0x4e, 0x63, 0x93, 0xf5, 0x68, 0xf0, 0x70, 0x3d, 0xb2, - 0x45, 0x8f, 0xce, 0x5d, 0xeb, 0x49, 0x1a, 0xef, 0xc1, 0x16, 0x7d, 0xc3, 0x82, 0x53, 0x41, 0x14, - 0x6e, 0x38, 0x3e, 0x69, 0x4a, 0x68, 0x3c, 0x3e, 0xc4, 0x96, 0xde, 0x87, 0x8f, 0xf6, 0x89, 0x96, - 0xb2, 0x64, 0x17, 0x03, 0xdf, 0x4d, 0x82, 0x68, 0x85, 0x24, 0x89, 0xeb, 0xb7, 0xe2, 0xfa, 0xd9, - 0x3b, 0xbb, 0x13, 0xa7, 0xba, 0xb0, 0x70, 0x77, 0x7f, 0xd0, 0x4f, 0xc2, 0x70, 0xbc, 0xe3, 0x37, - 0x6e, 0xba, 0x7e, 0x33, 0xb8, 0x1d, 0x8f, 0x57, 0x8b, 0x58, 0xbe, 0x2b, 0x8a, 0xa0, 0x58, 0x80, - 0x9a, 0x01, 0x36, 0xb9, 0xe5, 0x7f, 0x38, 0x3d, 0x95, 0x6a, 0x45, 0x7f, 0x38, 0x3d, 0x99, 0xf6, - 0x60, 0x8b, 0x7e, 0xd6, 0x82, 0xd1, 0xd8, 0x6d, 0xf9, 0x4e, 0xd2, 0x89, 0xc8, 0x55, 0xb2, 0x13, - 0x8f, 0x03, 0xeb, 0xc8, 0x95, 0x23, 0x8e, 0x8a, 0x41, 0xb2, 0x7e, 0x56, 0xf4, 0x71, 0xd4, 0x6c, - 0x8d, 0x71, 0x9a, 0x6f, 0xde, 0x42, 0xd3, 0xd3, 0x7a, 0xb8, 0xd8, 0x85, 0xa6, 0x27, 0x75, 0x4f, - 0x96, 0xe8, 0xc7, 0xe1, 0x24, 0x6f, 0x52, 0x23, 0x1b, 0x8f, 0x8f, 0x30, 0x41, 0x7b, 0xe6, 0xce, - 0xee, 0xc4, 0xc9, 0x95, 0x0c, 0x0c, 0x77, 0x61, 0xa3, 0xd7, 0x60, 0x22, 0x24, 0x51, 0xdb, 0x4d, - 0x96, 0x7c, 0x6f, 0x47, 0x8a, 0xef, 0x46, 0x10, 0x92, 0xa6, 0xe8, 0x4e, 0x3c, 0x3e, 0x7a, 0xde, - 0x7a, 0xaa, 0x5a, 0x7f, 0x87, 0xe8, 0xe6, 0xc4, 0xf2, 0xde, 0xe8, 0x78, 0x3f, 0x7a, 0xf6, 0xbf, - 0x2a, 0xc1, 0xc9, 0xac, 0xe2, 0x44, 0x7f, 0xdb, 0x82, 0x13, 0xb7, 0x6e, 0x27, 0xab, 0xc1, 0x26, - 0xf1, 0xe3, 0xfa, 0x0e, 0x15, 0x6f, 0x4c, 0x65, 0x0c, 0x5f, 0x68, 0x14, 0xab, 0xa2, 0x27, 0xaf, - 0xa4, 0xb9, 0x5c, 0xf4, 0x93, 0x68, 0xa7, 0xfe, 0xb0, 0x78, 0xbb, 0x13, 0x57, 0x6e, 0xae, 0x9a, - 0x50, 0x9c, 0xed, 0xd4, 0xb9, 0xcf, 0x59, 0x70, 0x26, 0x8f, 0x04, 0x3a, 0x09, 0xe5, 0x4d, 0xb2, - 0xc3, 0x0d, 0x38, 0x4c, 0x7f, 0xa2, 0x57, 0xa0, 0xb2, 0xe5, 0x78, 0x1d, 0x22, 0xac, 0x9b, 0xb9, - 0xa3, 0xbd, 0x88, 0xea, 0x19, 0xe6, 0x54, 0xdf, 0x5b, 0x7a, 0xc1, 0xb2, 0x7f, 0xb7, 0x0c, 0xc3, - 0x86, 0x7e, 0xbb, 0x07, 0x16, 0x5b, 0x90, 0xb2, 0xd8, 0x16, 0x0b, 0x53, 0xcd, 0x3d, 0x4d, 0xb6, - 0xdb, 0x19, 0x93, 0x6d, 0xa9, 0x38, 0x96, 0x7b, 0xda, 0x6c, 0x28, 0x81, 0x5a, 0x10, 0x52, 0xeb, - 0x9d, 0xaa, 0xfe, 0x81, 0x22, 0x3e, 0xe1, 0x92, 0x24, 0x57, 0x1f, 0xbd, 0xb3, 0x3b, 0x51, 0x53, - 0x7f, 0xb1, 0x66, 0x64, 0x7f, 0xdb, 0x82, 0x33, 0x46, 0x1f, 0x67, 0x02, 0xbf, 0xe9, 0xb2, 0x4f, - 0x7b, 0x1e, 0x06, 0x92, 0x9d, 0x50, 0xee, 0x10, 0xd4, 0x48, 0xad, 0xee, 0x84, 0x04, 0x33, 0x08, - 0x35, 0xf4, 0xdb, 0x24, 0x8e, 0x9d, 0x16, 0xc9, 0xee, 0x09, 0x16, 0x79, 0x33, 0x96, 0x70, 0x14, - 0x01, 0xf2, 0x9c, 0x38, 0x59, 0x8d, 0x1c, 0x3f, 0x66, 0xe4, 0x57, 0xdd, 0x36, 0x11, 0x03, 0xfc, - 0x17, 0xfa, 0x9b, 0x31, 0xf4, 0x89, 0xfa, 0x43, 0x77, 0x76, 0x27, 0xd0, 0x42, 0x17, 0x25, 0x9c, - 0x43, 0xdd, 0xfe, 0x8a, 0x05, 0x0f, 0xe5, 0xdb, 0x62, 0xe8, 0x49, 0x18, 0xe4, 0xdb, 0x43, 0xf1, - 0x76, 0xfa, 0x93, 0xb0, 0x56, 0x2c, 0xa0, 0x68, 0x0a, 0x6a, 0x4a, 0x4f, 0x88, 0x77, 0x3c, 0x25, - 0x50, 0x6b, 0x5a, 0xb9, 0x68, 0x1c, 0x3a, 0x68, 0xf4, 0x8f, 0xb0, 0xdc, 0xd4, 0xa0, 0xb1, 0xfd, - 0x14, 0x83, 0xd8, 0xff, 0xd1, 0x82, 0x13, 0x46, 0xaf, 0xee, 0x81, 0x69, 0xee, 0xa7, 0x4d, 0xf3, - 0xf9, 0xc2, 0xe6, 0x73, 0x0f, 0xdb, 0xfc, 0x0b, 0x16, 0x9c, 0x33, 0xb0, 0x16, 0x9d, 0xa4, 0xb1, - 0x71, 0x71, 0x3b, 0x8c, 0x48, 0x4c, 0xb7, 0xde, 0xe8, 0x31, 0x43, 0x6e, 0xd5, 0x87, 0x05, 0x85, - 0xf2, 0x55, 0xb2, 0xc3, 0x85, 0xd8, 0xd3, 0x50, 0xe5, 0x93, 0x33, 0x88, 0xc4, 0x88, 0xab, 0x77, - 0x5b, 0x12, 0xed, 0x58, 0x61, 0x20, 0x1b, 0x06, 0x99, 0x70, 0xa2, 0x8b, 0x95, 0xaa, 0x21, 0xa0, - 0x1f, 0xf1, 0x06, 0x6b, 0xc1, 0x02, 0x62, 0xc7, 0xa9, 0xee, 0x2c, 0x47, 0x84, 0x7d, 0xdc, 0xe6, - 0x25, 0x97, 0x78, 0xcd, 0x98, 0x6e, 0x1b, 0x1c, 0xdf, 0x0f, 0x12, 0xb1, 0x03, 0x30, 0xb6, 0x0d, - 0xd3, 0xba, 0x19, 0x9b, 0x38, 0x94, 0xa9, 0xe7, 0xac, 0x11, 0x8f, 0x8f, 0xa8, 0x60, 0xba, 0xc0, - 0x5a, 0xb0, 0x80, 0xd8, 0x77, 0x4a, 0x6c, 0x83, 0xa2, 0x96, 0x3e, 0xb9, 0x17, 0xbb, 0xdb, 0x28, - 0x25, 0x2b, 0x97, 0x8b, 0x13, 0x5c, 0xa4, 0xf7, 0x0e, 0xf7, 0xf5, 0x8c, 0xb8, 0xc4, 0x85, 0x72, - 0xdd, 0x7b, 0x97, 0xfb, 0x9b, 0x25, 0x98, 0x48, 0x3f, 0xd0, 0x25, 0x6d, 0xe9, 0x96, 0xca, 0x60, - 0x94, 0xf5, 0x77, 0x18, 0xf8, 0xd8, 0xc4, 0xeb, 0x21, 0xb0, 0x4a, 0xc7, 0x29, 0xb0, 0x4c, 0x79, - 0x5a, 0xde, 0x47, 0x9e, 0x3e, 0xa9, 0x46, 0x7d, 0x20, 0x23, 0xc0, 0xd2, 0x3a, 0xe5, 0x3c, 0x0c, - 0xc4, 0x09, 0x09, 0xc7, 0x2b, 0x69, 0x79, 0xb4, 0x92, 0x90, 0x10, 0x33, 0x88, 0xfd, 0xdf, 0x4a, - 0xf0, 0x70, 0x7a, 0x0c, 0xb5, 0x0a, 0x78, 0x7f, 0x4a, 0x05, 0xbc, 0xcb, 0x54, 0x01, 0x77, 0x77, - 0x27, 0xde, 0xde, 0xe3, 0xb1, 0xef, 0x19, 0x0d, 0x81, 0xe6, 0x32, 0xa3, 0x38, 0x95, 0x1e, 0xc5, - 0xbb, 0xbb, 0x13, 0x8f, 0xf5, 0x78, 0xc7, 0xcc, 0x30, 0x3f, 0x09, 0x83, 0x11, 0x71, 0xe2, 0xc0, - 0x17, 0x03, 0xad, 0x3e, 0x07, 0x66, 0xad, 0x58, 0x40, 0xed, 0xdf, 0xaf, 0x65, 0x07, 0x7b, 0x8e, - 0x3b, 0xec, 0x82, 0x08, 0xb9, 0x30, 0xc0, 0xcc, 0x7a, 0x2e, 0x1a, 0xae, 0x1e, 0x6d, 0x19, 0x51, - 0x35, 0xa0, 0x48, 0xd7, 0xab, 0xf4, 0xab, 0xd1, 0x26, 0xcc, 0x58, 0xa0, 0x6d, 0xa8, 0x36, 0xa4, - 0xb5, 0x5d, 0x2a, 0xc2, 0x2f, 0x25, 0x6c, 0x6d, 0xcd, 0x71, 0x84, 0xca, 0x6b, 0x65, 0xa2, 0x2b, - 0x6e, 0x88, 0x40, 0xb9, 0xe5, 0x26, 0xe2, 0xb3, 0x1e, 0x71, 0x3f, 0x35, 0xe7, 0x1a, 0xaf, 0x38, - 0x44, 0x95, 0xc8, 0x9c, 0x9b, 0x60, 0x4a, 0x1f, 0x7d, 0xc6, 0x82, 0xe1, 0xb8, 0xd1, 0x5e, 0x8e, - 0x82, 0x2d, 0xb7, 0x49, 0x22, 0x61, 0x4d, 0x1d, 0x51, 0x34, 0xad, 0xcc, 0x2c, 0x4a, 0x82, 0x9a, - 0x2f, 0xdf, 0xdf, 0x6a, 0x08, 0x36, 0xf9, 0xd2, 0x5d, 0xc6, 0xc3, 0xe2, 0xdd, 0x67, 0x49, 0xc3, - 0xa5, 0xfa, 0x4f, 0x6e, 0xaa, 0xd8, 0x4c, 0x39, 0xb2, 0x75, 0x39, 0xdb, 0x69, 0x6c, 0xd2, 0xf5, - 0xa6, 0x3b, 0xf4, 0xf6, 0x3b, 0xbb, 0x13, 0x0f, 0xcf, 0xe4, 0xf3, 0xc4, 0xbd, 0x3a, 0xc3, 0x06, - 0x2c, 0xec, 0x78, 0x1e, 0x26, 0xaf, 0x75, 0x08, 0x73, 0x99, 0x14, 0x30, 0x60, 0xcb, 0x9a, 0x60, - 0x66, 0xc0, 0x0c, 0x08, 0x36, 0xf9, 0xa2, 0xd7, 0x60, 0xb0, 0xed, 0x24, 0x91, 0xbb, 0x2d, 0xfc, - 0x24, 0x47, 0xb4, 0xf7, 0x17, 0x19, 0x2d, 0xcd, 0x9c, 0x69, 0x6a, 0xde, 0x88, 0x05, 0x23, 0xd4, - 0x86, 0x4a, 0x9b, 0x44, 0x2d, 0x32, 0x5e, 0x2d, 0xc2, 0x27, 0xbc, 0x48, 0x49, 0x69, 0x86, 0x35, - 0x6a, 0x1d, 0xb1, 0x36, 0xcc, 0xb9, 0xa0, 0x57, 0xa0, 0x1a, 0x13, 0x8f, 0x34, 0xa8, 0x7d, 0x53, - 0x63, 0x1c, 0xdf, 0xdd, 0xa7, 0xad, 0x47, 0x0d, 0x8b, 0x15, 0xf1, 0x28, 0x5f, 0x60, 0xf2, 0x1f, - 0x56, 0x24, 0xe9, 0x00, 0x86, 0x5e, 0xa7, 0xe5, 0xfa, 0xe3, 0x50, 0xc4, 0x00, 0x2e, 0x33, 0x5a, - 0x99, 0x01, 0xe4, 0x8d, 0x58, 0x30, 0xb2, 0xff, 0xb3, 0x05, 0x28, 0x2d, 0xd4, 0xee, 0x81, 0x51, - 0xfb, 0x5a, 0xda, 0xa8, 0x5d, 0x28, 0xd2, 0xea, 0xe8, 0x61, 0xd7, 0xfe, 0x7a, 0x0d, 0x32, 0xea, - 0xe0, 0x1a, 0x89, 0x13, 0xd2, 0x7c, 0x4b, 0x84, 0xbf, 0x25, 0xc2, 0xdf, 0x12, 0xe1, 0x4a, 0x84, - 0xaf, 0x65, 0x44, 0xf8, 0xfb, 0x8c, 0x55, 0xaf, 0x0f, 0x60, 0x5f, 0x55, 0x27, 0xb4, 0x66, 0x0f, - 0x0c, 0x04, 0x2a, 0x09, 0xae, 0xac, 0x2c, 0x5d, 0xcb, 0x95, 0xd9, 0xaf, 0xa6, 0x65, 0xf6, 0x51, - 0x59, 0xfc, 0xff, 0x20, 0xa5, 0xff, 0xa5, 0x05, 0xef, 0x48, 0x4b, 0x2f, 0x39, 0x73, 0xe6, 0x5b, - 0x7e, 0x10, 0x91, 0x59, 0x77, 0x7d, 0x9d, 0x44, 0xc4, 0x6f, 0x90, 0x58, 0x79, 0x31, 0xac, 0x5e, - 0x5e, 0x0c, 0xf4, 0x1c, 0x8c, 0xdc, 0x8a, 0x03, 0x7f, 0x39, 0x70, 0x7d, 0x21, 0x82, 0xe8, 0x46, - 0xf8, 0xe4, 0x9d, 0xdd, 0x89, 0x11, 0x3a, 0xa2, 0xb2, 0x1d, 0xa7, 0xb0, 0xd0, 0x0c, 0x9c, 0xba, - 0xf5, 0xda, 0xb2, 0x93, 0x18, 0xee, 0x00, 0xb9, 0x71, 0x67, 0x07, 0x16, 0x57, 0x5e, 0xca, 0x00, - 0x71, 0x37, 0xbe, 0xfd, 0x37, 0x4a, 0xf0, 0x48, 0xe6, 0x45, 0x02, 0xcf, 0x0b, 0x3a, 0x09, 0xdd, - 0xd4, 0xa0, 0xaf, 0x59, 0x70, 0xb2, 0x9d, 0xf6, 0x38, 0xc4, 0xc2, 0xb1, 0xfb, 0x81, 0xc2, 0x74, - 0x44, 0xc6, 0xa5, 0x51, 0x1f, 0x17, 0x23, 0x74, 0x32, 0x03, 0x88, 0x71, 0x57, 0x5f, 0xd0, 0x2b, - 0x50, 0x6b, 0x3b, 0xdb, 0xd7, 0xc3, 0xa6, 0x93, 0xc8, 0xfd, 0x64, 0x6f, 0x37, 0x40, 0x27, 0x71, - 0xbd, 0x49, 0x7e, 0xb4, 0x3f, 0x39, 0xef, 0x27, 0x4b, 0xd1, 0x4a, 0x12, 0xb9, 0x7e, 0x8b, 0xbb, - 0xf3, 0x16, 0x25, 0x19, 0xac, 0x29, 0xda, 0x5f, 0xb5, 0xb2, 0x4a, 0x4a, 0x8d, 0x4e, 0xe4, 0x24, - 0xa4, 0xb5, 0x83, 0x3e, 0x0a, 0x15, 0xba, 0xf1, 0x93, 0xa3, 0x72, 0xb3, 0x48, 0xcd, 0x69, 0x7c, - 0x09, 0xad, 0x44, 0xe9, 0xbf, 0x18, 0x73, 0xa6, 0xf6, 0xd7, 0x6a, 0x59, 0x63, 0x81, 0x1d, 0xde, - 0x5e, 0x00, 0x68, 0x05, 0xab, 0xa4, 0x1d, 0x7a, 0x74, 0x58, 0x2c, 0x76, 0x02, 0xa0, 0x7c, 0x1d, - 0x73, 0x0a, 0x82, 0x0d, 0x2c, 0xf4, 0x97, 0x2c, 0x80, 0x96, 0x9c, 0xf3, 0xd2, 0x10, 0xb8, 0x5e, - 0xe4, 0xeb, 0xe8, 0x15, 0xa5, 0xfb, 0xa2, 0x18, 0x62, 0x83, 0x39, 0xfa, 0x69, 0x0b, 0xaa, 0x89, - 0xec, 0x3e, 0x57, 0x8d, 0xab, 0x45, 0xf6, 0x44, 0xbe, 0xb4, 0xb6, 0x89, 0xd4, 0x90, 0x28, 0xbe, - 0xe8, 0x67, 0x2c, 0x80, 0x78, 0xc7, 0x6f, 0x2c, 0x07, 0x9e, 0xdb, 0xd8, 0x11, 0x1a, 0xf3, 0x46, - 0xa1, 0xfe, 0x18, 0x45, 0xbd, 0x3e, 0x46, 0x47, 0x43, 0xff, 0xc7, 0x06, 0x67, 0xf4, 0x71, 0xa8, - 0xc6, 0x62, 0xba, 0x09, 0x1d, 0xb9, 0x5a, 0xac, 0x57, 0x88, 0xd3, 0x16, 0xe2, 0x55, 0xfc, 0xc3, - 0x8a, 0x27, 0xfa, 0x39, 0x0b, 0x4e, 0x84, 0x69, 0x3f, 0x9f, 0x50, 0x87, 0xc5, 0xc9, 0x80, 0x8c, - 0x1f, 0xb1, 0x7e, 0xfa, 0xce, 0xee, 0xc4, 0x89, 0x4c, 0x23, 0xce, 0xf6, 0x82, 0x4a, 0x40, 0x3d, - 0x83, 0x97, 0x42, 0xee, 0x73, 0x1c, 0xd2, 0x12, 0x70, 0x2e, 0x0b, 0xc4, 0xdd, 0xf8, 0x68, 0x19, - 0xce, 0xd0, 0xde, 0xed, 0x70, 0xf3, 0x53, 0xaa, 0x97, 0x98, 0x29, 0xc3, 0x6a, 0xfd, 0x51, 0x31, - 0x43, 0x98, 0x57, 0x3f, 0x8b, 0x83, 0x73, 0x9f, 0x44, 0xbf, 0x6b, 0xc1, 0xa3, 0x2e, 0x53, 0x03, - 0xa6, 0xc3, 0x5c, 0x6b, 0x04, 0x71, 0x12, 0x4b, 0x0a, 0x95, 0x15, 0xbd, 0xd4, 0x4f, 0xfd, 0x07, - 0xc5, 0x1b, 0x3c, 0x3a, 0xbf, 0x47, 0x97, 0xf0, 0x9e, 0x1d, 0x46, 0x3f, 0x02, 0xa3, 0x72, 0x5d, - 0x2c, 0x53, 0x11, 0xcc, 0x14, 0x6d, 0xad, 0x7e, 0xea, 0xce, 0xee, 0xc4, 0xe8, 0xaa, 0x09, 0xc0, - 0x69, 0x3c, 0xfb, 0x5f, 0x97, 0x53, 0xe7, 0x21, 0xca, 0x09, 0xc9, 0xc4, 0x4d, 0x43, 0xfa, 0x7f, - 0xa4, 0xf4, 0x2c, 0x54, 0xdc, 0x28, 0xef, 0x92, 0x16, 0x37, 0xaa, 0x29, 0xc6, 0x06, 0x73, 0x6a, - 0x94, 0x9e, 0x72, 0xb2, 0xae, 0x4e, 0x21, 0x01, 0x5f, 0x29, 0xb2, 0x4b, 0xdd, 0xa7, 0x57, 0x8f, - 0x88, 0xae, 0x9d, 0xea, 0x02, 0xe1, 0xee, 0x2e, 0xa1, 0x8f, 0x41, 0x2d, 0x52, 0xa1, 0x0f, 0xe5, - 0x22, 0xb6, 0x6a, 0x72, 0xda, 0x88, 0xee, 0xa8, 0xe3, 0x18, 0x1d, 0xe4, 0xa0, 0x39, 0xda, 0xbf, - 0x93, 0x3e, 0x02, 0x32, 0x64, 0x47, 0x1f, 0xc7, 0x5b, 0x5f, 0xb4, 0x60, 0x38, 0x0a, 0x3c, 0xcf, - 0xf5, 0x5b, 0x54, 0xce, 0x09, 0x65, 0xfd, 0xa1, 0x63, 0xd1, 0x97, 0x42, 0xa0, 0x31, 0xcb, 0x1a, - 0x6b, 0x9e, 0xd8, 0xec, 0x80, 0xfd, 0x27, 0x16, 0x8c, 0xf7, 0x92, 0xc7, 0x88, 0xc0, 0xdb, 0xa5, - 0xb0, 0x51, 0x43, 0xb1, 0xe4, 0xcf, 0x12, 0x8f, 0x28, 0xbf, 0x77, 0xb5, 0xfe, 0x84, 0x78, 0xcd, - 0xb7, 0x2f, 0xf7, 0x46, 0xc5, 0x7b, 0xd1, 0x41, 0x2f, 0xc3, 0x49, 0xe3, 0xbd, 0x62, 0x35, 0x30, - 0xb5, 0xfa, 0x24, 0x35, 0x80, 0xa6, 0x33, 0xb0, 0xbb, 0xbb, 0x13, 0x0f, 0x65, 0xdb, 0x84, 0xc2, - 0xe8, 0xa2, 0x63, 0xff, 0x72, 0x29, 0xfb, 0xb5, 0x94, 0xae, 0x7f, 0xd3, 0xea, 0xf2, 0x26, 0x7c, - 0xe0, 0x38, 0xf4, 0x2b, 0xf3, 0x3b, 0xa8, 0xf8, 0x91, 0xde, 0x38, 0xf7, 0xf1, 0x80, 0xda, 0xfe, - 0x37, 0x03, 0xb0, 0x47, 0xcf, 0xfa, 0x30, 0xde, 0x0f, 0x7c, 0xaa, 0xf9, 0x79, 0x4b, 0x9d, 0x78, - 0xf1, 0x35, 0xdc, 0x3c, 0xae, 0xb1, 0xe7, 0xfb, 0xa7, 0x98, 0x07, 0x49, 0x28, 0x2f, 0x7a, 0xfa, - 0x6c, 0x0d, 0x7d, 0xdd, 0x4a, 0x9f, 0xd9, 0xf1, 0xa8, 0x37, 0xf7, 0xd8, 0xfa, 0x64, 0x1c, 0x04, - 0xf2, 0x8e, 0xe9, 0xe3, 0xa3, 0x5e, 0x47, 0x84, 0x93, 0x00, 0xeb, 0xae, 0xef, 0x78, 0xee, 0xeb, - 0x74, 0x77, 0x54, 0x61, 0x0a, 0x9e, 0x59, 0x4c, 0x97, 0x54, 0x2b, 0x36, 0x30, 0xce, 0xfd, 0x45, - 0x18, 0x36, 0xde, 0x3c, 0x27, 0xb6, 0xe3, 0x8c, 0x19, 0xdb, 0x51, 0x33, 0x42, 0x32, 0xce, 0xbd, - 0x0f, 0x4e, 0x66, 0x3b, 0x78, 0x90, 0xe7, 0xed, 0xff, 0x35, 0x94, 0x3d, 0x44, 0x5b, 0x25, 0x51, - 0x9b, 0x76, 0xed, 0x2d, 0xc7, 0xd6, 0x5b, 0x8e, 0xad, 0xb7, 0x1c, 0x5b, 0xe6, 0xd9, 0x84, 0x70, - 0xda, 0x0c, 0xdd, 0x23, 0xa7, 0x4d, 0xca, 0x0d, 0x55, 0x2d, 0xdc, 0x0d, 0x65, 0x7f, 0xa6, 0xcb, - 0x73, 0xbf, 0x1a, 0x11, 0x82, 0x02, 0xa8, 0xf8, 0x41, 0x93, 0x48, 0x1b, 0xf7, 0x4a, 0x31, 0x06, - 0xdb, 0xb5, 0xa0, 0x69, 0xc4, 0x13, 0xd3, 0x7f, 0x31, 0xe6, 0x7c, 0xec, 0x3b, 0x15, 0x48, 0x99, - 0x93, 0xfc, 0xbb, 0xbf, 0x13, 0x86, 0x22, 0x12, 0x06, 0xd7, 0xf1, 0x82, 0xd0, 0x65, 0x3a, 0xe5, - 0x80, 0x37, 0x63, 0x09, 0xa7, 0x3a, 0x2f, 0x74, 0x92, 0x0d, 0xa1, 0xcc, 0x94, 0xce, 0x5b, 0x76, - 0x92, 0x0d, 0xcc, 0x20, 0xe8, 0x7d, 0x30, 0x96, 0x38, 0x51, 0x8b, 0x6e, 0x3b, 0xb6, 0xd8, 0xf4, - 0x12, 0x47, 0xbe, 0x0f, 0x09, 0xdc, 0xb1, 0xd5, 0x14, 0x14, 0x67, 0xb0, 0xd1, 0x6b, 0x30, 0xb0, - 0x41, 0xbc, 0xb6, 0xf8, 0xf4, 0x2b, 0xc5, 0xe9, 0x1a, 0xf6, 0xae, 0x97, 0x89, 0xd7, 0xe6, 0x92, - 0x90, 0xfe, 0xc2, 0x8c, 0x15, 0x9d, 0xf7, 0xb5, 0xcd, 0x4e, 0x9c, 0x04, 0x6d, 0xf7, 0x75, 0xe9, - 0xe9, 0xfc, 0x40, 0xc1, 0x8c, 0xaf, 0x4a, 0xfa, 0xdc, 0xa5, 0xa4, 0xfe, 0x62, 0xcd, 0x99, 0xf5, - 0xa3, 0xe9, 0x46, 0x6c, 0xca, 0xec, 0x08, 0x87, 0x65, 0xd1, 0xfd, 0x98, 0x95, 0xf4, 0x79, 0x3f, - 0xd4, 0x5f, 0xac, 0x39, 0xa3, 0x1d, 0xb5, 0xfe, 0x86, 0x59, 0x1f, 0xae, 0x17, 0xdc, 0x07, 0xbe, - 0xf6, 0x72, 0xd7, 0xe1, 0x13, 0x50, 0x69, 0x6c, 0x38, 0x51, 0x32, 0x3e, 0xc2, 0x26, 0x8d, 0x9a, - 0xc5, 0x33, 0xb4, 0x11, 0x73, 0x18, 0x7a, 0x0c, 0xca, 0x11, 0x59, 0x67, 0xe1, 0xab, 0x46, 0x60, - 0x13, 0x26, 0xeb, 0x98, 0xb6, 0xdb, 0xbf, 0x58, 0x4a, 0x9b, 0x6d, 0xe9, 0xf7, 0xe6, 0xb3, 0xbd, - 0xd1, 0x89, 0x62, 0xe9, 0xfe, 0x32, 0x66, 0x3b, 0x6b, 0xc6, 0x12, 0x8e, 0x3e, 0x69, 0xc1, 0xd0, - 0xad, 0x38, 0xf0, 0x7d, 0x92, 0x08, 0x15, 0x79, 0xa3, 0xe0, 0xa1, 0xb8, 0xc2, 0xa9, 0xeb, 0x3e, - 0x88, 0x06, 0x2c, 0xf9, 0xd2, 0xee, 0x92, 0xed, 0x86, 0xd7, 0x69, 0x76, 0xc5, 0xaa, 0x5c, 0xe4, - 0xcd, 0x58, 0xc2, 0x29, 0xaa, 0xeb, 0x73, 0xd4, 0x81, 0x34, 0xea, 0xbc, 0x2f, 0x50, 0x05, 0xdc, - 0xfe, 0x6b, 0x83, 0x70, 0x36, 0x77, 0x71, 0x50, 0x83, 0x8a, 0x99, 0x2c, 0x97, 0x5c, 0x8f, 0xc8, - 0x28, 0x2d, 0x66, 0x50, 0xdd, 0x50, 0xad, 0xd8, 0xc0, 0x40, 0x3f, 0x05, 0x10, 0x3a, 0x91, 0xd3, - 0x26, 0xca, 0x3d, 0x7d, 0x64, 0xbb, 0x85, 0xf6, 0x63, 0x59, 0xd2, 0xd4, 0x5b, 0x74, 0xd5, 0x14, - 0x63, 0x83, 0x25, 0x7a, 0x1e, 0x86, 0x23, 0xe2, 0x11, 0x27, 0x66, 0xd1, 0xcf, 0xd9, 0x54, 0x0e, - 0xac, 0x41, 0xd8, 0xc4, 0x43, 0x4f, 0xaa, 0x80, 0xb6, 0x4c, 0x60, 0x4f, 0x3a, 0xa8, 0x0d, 0xbd, - 0x61, 0xc1, 0xd8, 0xba, 0xeb, 0x11, 0xcd, 0x5d, 0x24, 0x5e, 0x2c, 0x1d, 0xfd, 0x25, 0x2f, 0x99, - 0x74, 0xb5, 0x84, 0x4c, 0x35, 0xc7, 0x38, 0xc3, 0x9e, 0x7e, 0xe6, 0x2d, 0x12, 0x31, 0xd1, 0x3a, - 0x98, 0xfe, 0xcc, 0x37, 0x78, 0x33, 0x96, 0x70, 0x34, 0x0d, 0x27, 0x42, 0x27, 0x8e, 0x67, 0x22, - 0xd2, 0x24, 0x7e, 0xe2, 0x3a, 0x1e, 0x4f, 0x8b, 0xa8, 0xea, 0xb0, 0xe8, 0xe5, 0x34, 0x18, 0x67, - 0xf1, 0xd1, 0x07, 0xe1, 0x61, 0xee, 0xff, 0x59, 0x74, 0xe3, 0xd8, 0xf5, 0x5b, 0x7a, 0x1a, 0x08, - 0x37, 0xd8, 0x84, 0x20, 0xf5, 0xf0, 0x7c, 0x3e, 0x1a, 0xee, 0xf5, 0x3c, 0x7a, 0x1a, 0xaa, 0xf1, - 0xa6, 0x1b, 0xce, 0x44, 0xcd, 0x98, 0x9d, 0xfd, 0x54, 0xb5, 0xd3, 0x75, 0x45, 0xb4, 0x63, 0x85, - 0x81, 0x1a, 0x30, 0xc2, 0x3f, 0x09, 0x8f, 0xc8, 0x13, 0xf2, 0xf1, 0x99, 0x9e, 0x6a, 0x5a, 0x64, - 0xf9, 0x4d, 0x62, 0xe7, 0xf6, 0x45, 0x79, 0x12, 0xc5, 0x0f, 0x4e, 0x6e, 0x18, 0x64, 0x70, 0x8a, - 0xa8, 0xfd, 0xf3, 0xa5, 0xf4, 0xce, 0xdf, 0x5c, 0xa4, 0x28, 0xa6, 0x4b, 0x31, 0xb9, 0xe1, 0x44, - 0x52, 0x61, 0x1f, 0x31, 0x7b, 0x43, 0xd0, 0xbd, 0xe1, 0x44, 0xe6, 0xa2, 0x66, 0x0c, 0xb0, 0xe4, - 0x84, 0x6e, 0xc1, 0x40, 0xe2, 0x39, 0x05, 0xa5, 0x7b, 0x19, 0x1c, 0xb5, 0x23, 0x66, 0x61, 0x3a, - 0xc6, 0x8c, 0x07, 0x7a, 0x94, 0xee, 0x3e, 0xd6, 0xe4, 0x49, 0x91, 0xd8, 0x30, 0xac, 0xc5, 0x98, - 0xb5, 0xda, 0x77, 0x21, 0x47, 0xae, 0x2a, 0x45, 0x86, 0x2e, 0x00, 0xd0, 0x8d, 0xec, 0x72, 0x44, - 0xd6, 0xdd, 0x6d, 0x61, 0x48, 0xa8, 0xb5, 0x7b, 0x4d, 0x41, 0xb0, 0x81, 0x25, 0x9f, 0x59, 0xe9, - 0xac, 0xd3, 0x67, 0x4a, 0xdd, 0xcf, 0x70, 0x08, 0x36, 0xb0, 0xd0, 0x73, 0x30, 0xe8, 0xb6, 0x9d, - 0x96, 0x8a, 0x44, 0x7d, 0x94, 0x2e, 0xda, 0x79, 0xd6, 0x72, 0x77, 0x77, 0x62, 0x4c, 0x75, 0x88, - 0x35, 0x61, 0x81, 0x8b, 0x7e, 0xd9, 0x82, 0x91, 0x46, 0xd0, 0x6e, 0x07, 0x3e, 0xdf, 0xfe, 0x89, - 0xbd, 0xec, 0xad, 0xe3, 0x52, 0xf3, 0x93, 0x33, 0x06, 0x33, 0xbe, 0x99, 0x55, 0x79, 0x69, 0x26, - 0x08, 0xa7, 0x7a, 0x65, 0xae, 0xed, 0xca, 0x3e, 0x6b, 0xfb, 0xd7, 0x2c, 0x38, 0xc5, 0x9f, 0x35, - 0x76, 0xa5, 0x22, 0x05, 0x2b, 0x38, 0xe6, 0xd7, 0xea, 0xda, 0xa8, 0x2b, 0x67, 0x65, 0x17, 0x1c, - 0x77, 0x77, 0x12, 0xcd, 0xc1, 0xa9, 0xf5, 0x20, 0x6a, 0x10, 0x73, 0x20, 0x84, 0x60, 0x52, 0x84, - 0x2e, 0x65, 0x11, 0x70, 0xf7, 0x33, 0xe8, 0x06, 0x3c, 0x64, 0x34, 0x9a, 0xe3, 0xc0, 0x65, 0xd3, - 0xe3, 0x82, 0xda, 0x43, 0x97, 0x72, 0xb1, 0x70, 0x8f, 0xa7, 0xd3, 0x8e, 0x9b, 0x5a, 0x1f, 0x8e, - 0x9b, 0x57, 0xe1, 0x91, 0x46, 0xf7, 0xc8, 0x6c, 0xc5, 0x9d, 0xb5, 0x98, 0x4b, 0xaa, 0x6a, 0xfd, - 0x07, 0x04, 0x81, 0x47, 0x66, 0x7a, 0x21, 0xe2, 0xde, 0x34, 0xd0, 0x47, 0xa1, 0x1a, 0x11, 0xf6, - 0x55, 0x62, 0x91, 0x8f, 0x74, 0xc4, 0xdd, 0xba, 0xb6, 0x40, 0x39, 0x59, 0x2d, 0x7b, 0x45, 0x43, - 0x8c, 0x15, 0x47, 0x74, 0x1b, 0x86, 0x42, 0x27, 0x69, 0x6c, 0x88, 0x2c, 0xa4, 0x23, 0xfb, 0x96, - 0x15, 0x73, 0x76, 0x14, 0x60, 0xe4, 0x2d, 0x73, 0x26, 0x58, 0x72, 0xa3, 0xd6, 0x48, 0x23, 0x68, - 0x87, 0x81, 0x4f, 0xfc, 0x24, 0x1e, 0x1f, 0xd5, 0xd6, 0xc8, 0x8c, 0x6a, 0xc5, 0x06, 0x06, 0x5a, - 0x86, 0x33, 0xcc, 0x77, 0x75, 0xd3, 0x4d, 0x36, 0x82, 0x4e, 0x22, 0xb7, 0x62, 0xe3, 0x63, 0xe9, - 0x13, 0x9b, 0x85, 0x1c, 0x1c, 0x9c, 0xfb, 0xe4, 0xb9, 0xf7, 0xc3, 0xa9, 0xae, 0xa5, 0x7c, 0x20, - 0xb7, 0xd1, 0x2c, 0x3c, 0x94, 0xbf, 0x68, 0x0e, 0xe4, 0x3c, 0xfa, 0x47, 0x99, 0xe8, 0x61, 0xc3, - 0x90, 0xee, 0xc3, 0x11, 0xe9, 0x40, 0x99, 0xf8, 0x5b, 0x42, 0x87, 0x5c, 0x3a, 0xda, 0xb7, 0xbb, - 0xe8, 0x6f, 0xf1, 0x35, 0xcf, 0xbc, 0x2d, 0x17, 0xfd, 0x2d, 0x4c, 0x69, 0xa3, 0x2f, 0x5b, 0x29, - 0x43, 0x90, 0xbb, 0x2f, 0x3f, 0x7c, 0x2c, 0x3b, 0x87, 0xbe, 0x6d, 0x43, 0xfb, 0xdf, 0x96, 0xe0, - 0xfc, 0x7e, 0x44, 0xfa, 0x18, 0xbe, 0x27, 0x60, 0x30, 0x66, 0xf1, 0x00, 0x42, 0x28, 0x0f, 0xd3, - 0xb9, 0xca, 0x23, 0x04, 0x5e, 0xc5, 0x02, 0x84, 0x3c, 0x28, 0xb7, 0x9d, 0x50, 0x78, 0xb5, 0xe6, - 0x8f, 0x9a, 0x4f, 0x44, 0xff, 0x3b, 0xde, 0xa2, 0x13, 0x72, 0x5f, 0x89, 0xd1, 0x80, 0x29, 0x1b, - 0x94, 0x40, 0xc5, 0x89, 0x22, 0x47, 0x1e, 0x3e, 0x5f, 0x2d, 0x86, 0xdf, 0x34, 0x25, 0xc9, 0xcf, - 0xee, 0x52, 0x4d, 0x98, 0x33, 0xb3, 0x3f, 0x3f, 0x94, 0xca, 0xa9, 0x61, 0x11, 0x05, 0x31, 0x0c, - 0x0a, 0x67, 0x96, 0x55, 0x74, 0x1a, 0x17, 0x4f, 0x8a, 0x64, 0xfb, 0x44, 0x91, 0x5a, 0x2e, 0x58, - 0xa1, 0xcf, 0x59, 0x2c, 0x81, 0x5b, 0xe6, 0x19, 0x89, 0xdd, 0xd9, 0xf1, 0xe4, 0x93, 0x9b, 0x69, - 0xe1, 0xb2, 0x11, 0x9b, 0xdc, 0x45, 0x21, 0x06, 0x66, 0x95, 0x76, 0x17, 0x62, 0x60, 0x56, 0xa6, - 0x84, 0xa3, 0xed, 0x9c, 0xc8, 0x81, 0x02, 0x92, 0x80, 0xfb, 0x88, 0x15, 0xf8, 0xba, 0x05, 0xa7, - 0xdc, 0xec, 0x11, 0xb0, 0xd8, 0xcb, 0xdc, 0x2c, 0xc6, 0xf3, 0xd4, 0x7d, 0xc2, 0xac, 0xd4, 0x79, - 0x17, 0x08, 0x77, 0x77, 0x06, 0x35, 0x61, 0xc0, 0xf5, 0xd7, 0x03, 0x61, 0xc4, 0xd4, 0x8f, 0xd6, - 0xa9, 0x79, 0x7f, 0x3d, 0xd0, 0xab, 0x99, 0xfe, 0xc3, 0x8c, 0x3a, 0x5a, 0x80, 0x33, 0x91, 0xf0, - 0x36, 0x5d, 0x76, 0xe3, 0x24, 0x88, 0x76, 0x16, 0xdc, 0xb6, 0x9b, 0x30, 0x03, 0xa4, 0x5c, 0x1f, - 0xa7, 0xfa, 0x01, 0xe7, 0xc0, 0x71, 0xee, 0x53, 0xe8, 0x75, 0x18, 0x92, 0xc7, 0xae, 0xd5, 0x22, - 0xf6, 0x85, 0xdd, 0xf3, 0x5f, 0x4d, 0xa6, 0x15, 0x71, 0xee, 0x2a, 0x19, 0xda, 0x6f, 0x0c, 0x43, - 0xf7, 0xe9, 0x70, 0xfa, 0x28, 0xd8, 0xba, 0xd7, 0x47, 0xc1, 0x74, 0xc3, 0x12, 0xeb, 0x53, 0xdc, - 0x02, 0xe6, 0xb6, 0xe0, 0xaa, 0x4f, 0xe8, 0x76, 0xfc, 0x06, 0x66, 0x3c, 0x50, 0x04, 0x83, 0x1b, - 0xc4, 0xf1, 0x92, 0x8d, 0x62, 0x0e, 0x13, 0x2e, 0x33, 0x5a, 0xd9, 0x5c, 0x28, 0xde, 0x8a, 0x05, - 0x27, 0xb4, 0x0d, 0x43, 0x1b, 0x7c, 0x02, 0x88, 0x3d, 0xc4, 0xe2, 0x51, 0x07, 0x37, 0x35, 0xab, - 0xf4, 0xe7, 0x16, 0x0d, 0x58, 0xb2, 0x63, 0x61, 0x47, 0x46, 0x60, 0x04, 0x5f, 0xba, 0xc5, 0xa5, - 0x81, 0xf5, 0x1f, 0x15, 0xf1, 0x11, 0x18, 0x89, 0x48, 0x23, 0xf0, 0x1b, 0xae, 0x47, 0x9a, 0xd3, - 0xf2, 0xa0, 0xe0, 0x20, 0xc9, 0x43, 0x6c, 0x1f, 0x8e, 0x0d, 0x1a, 0x38, 0x45, 0x11, 0x7d, 0xd6, - 0x82, 0x31, 0x95, 0x3a, 0x4b, 0x3f, 0x08, 0x11, 0x0e, 0xe1, 0x85, 0x82, 0x12, 0x75, 0x19, 0xcd, - 0x3a, 0xba, 0xb3, 0x3b, 0x31, 0x96, 0x6e, 0xc3, 0x19, 0xbe, 0xe8, 0x65, 0x80, 0x60, 0x8d, 0xc7, - 0x16, 0x4d, 0x27, 0xc2, 0x3b, 0x7c, 0x90, 0x57, 0x1d, 0xe3, 0x59, 0x84, 0x92, 0x02, 0x36, 0xa8, - 0xa1, 0xab, 0x00, 0x7c, 0xd9, 0xac, 0xee, 0x84, 0x72, 0xa3, 0x21, 0xb3, 0xbf, 0x60, 0x45, 0x41, - 0xee, 0xee, 0x4e, 0x74, 0x7b, 0xeb, 0x58, 0x00, 0x85, 0xf1, 0x38, 0xfa, 0x49, 0x18, 0x8a, 0x3b, - 0xed, 0xb6, 0xa3, 0x7c, 0xc7, 0x05, 0xe6, 0x25, 0x72, 0xba, 0x86, 0x28, 0xe2, 0x0d, 0x58, 0x72, - 0x44, 0xb7, 0xa8, 0x50, 0x8d, 0x85, 0x1b, 0x91, 0xad, 0x22, 0x6e, 0x13, 0x0c, 0xb3, 0x77, 0x7a, - 0x8f, 0x34, 0xbc, 0x71, 0x0e, 0xce, 0xdd, 0xdd, 0x89, 0x87, 0xd2, 0xed, 0x0b, 0x81, 0xc8, 0x14, - 0xcc, 0xa5, 0x89, 0xae, 0xc8, 0x02, 0x34, 0xf4, 0xb5, 0x65, 0x5d, 0x84, 0xa7, 0x74, 0x01, 0x1a, - 0xd6, 0xdc, 0x7b, 0xcc, 0xcc, 0x87, 0xd1, 0x22, 0x9c, 0x6e, 0x04, 0x7e, 0x12, 0x05, 0x9e, 0xc7, - 0x0b, 0x30, 0xf1, 0x3d, 0x1f, 0xf7, 0x2d, 0xbf, 0x5d, 0x74, 0xfb, 0xf4, 0x4c, 0x37, 0x0a, 0xce, - 0x7b, 0xce, 0xf6, 0xd3, 0xe7, 0x3c, 0x62, 0x70, 0x9e, 0x83, 0x11, 0xb2, 0x9d, 0x90, 0xc8, 0x77, - 0xbc, 0xeb, 0x78, 0x41, 0x7a, 0x55, 0xd9, 0x1a, 0xb8, 0x68, 0xb4, 0xe3, 0x14, 0x16, 0xb2, 0x95, - 0xa3, 0xc3, 0xc8, 0x7e, 0xe5, 0x8e, 0x0e, 0xe9, 0xd6, 0xb0, 0xff, 0x77, 0x29, 0x65, 0x90, 0xdd, - 0x97, 0x53, 0x25, 0x56, 0xc6, 0x43, 0xd6, 0x3b, 0x61, 0x00, 0xb1, 0xd1, 0x28, 0x92, 0xb3, 0x2a, - 0xe3, 0xb1, 0x64, 0x32, 0xc2, 0x69, 0xbe, 0x68, 0x13, 0x2a, 0x1b, 0x41, 0x9c, 0xc8, 0xed, 0xc7, - 0x11, 0x77, 0x3a, 0x97, 0x83, 0x38, 0x61, 0x56, 0x84, 0x7a, 0x6d, 0xda, 0x12, 0x63, 0xce, 0xc3, - 0xfe, 0x2f, 0x56, 0xca, 0x87, 0x7e, 0x93, 0x05, 0x20, 0x6f, 0x11, 0x9f, 0x2e, 0x6b, 0x33, 0xe4, - 0xe9, 0x47, 0x32, 0xe9, 0x9c, 0xef, 0xe8, 0x55, 0x5f, 0xec, 0x36, 0xa5, 0x30, 0xc9, 0x48, 0x18, - 0xd1, 0x51, 0x9f, 0xb0, 0xd2, 0x89, 0xb5, 0xa5, 0x22, 0x36, 0x18, 0x66, 0x72, 0xf9, 0xbe, 0x39, - 0xba, 0xf6, 0x97, 0x2d, 0x18, 0xaa, 0x3b, 0x8d, 0xcd, 0x60, 0x7d, 0x1d, 0x3d, 0x0d, 0xd5, 0x66, - 0x27, 0x32, 0x73, 0x7c, 0x95, 0xe3, 0x60, 0x56, 0xb4, 0x63, 0x85, 0x41, 0xe7, 0xf0, 0xba, 0xd3, - 0x90, 0x29, 0xe6, 0x65, 0x3e, 0x87, 0x2f, 0xb1, 0x16, 0x2c, 0x20, 0xe8, 0x79, 0x18, 0x6e, 0x3b, - 0xdb, 0xf2, 0xe1, 0xac, 0x03, 0x7f, 0x51, 0x83, 0xb0, 0x89, 0x67, 0xff, 0x0b, 0x0b, 0xc6, 0xeb, - 0x4e, 0xec, 0x36, 0xa6, 0x3b, 0xc9, 0x46, 0xdd, 0x4d, 0xd6, 0x3a, 0x8d, 0x4d, 0x92, 0xf0, 0xba, - 0x02, 0xb4, 0x97, 0x9d, 0x98, 0x2e, 0x25, 0xb5, 0xaf, 0x53, 0xbd, 0xbc, 0x2e, 0xda, 0xb1, 0xc2, - 0x40, 0xaf, 0xc3, 0x70, 0xe8, 0xc4, 0xf1, 0xed, 0x20, 0x6a, 0x62, 0xb2, 0x5e, 0x4c, 0x55, 0x8f, - 0x15, 0xd2, 0x88, 0x48, 0x82, 0xc9, 0xba, 0x38, 0xec, 0xd6, 0xf4, 0xb1, 0xc9, 0xcc, 0xfe, 0xa2, - 0x05, 0x8f, 0xd4, 0x89, 0x13, 0x91, 0x88, 0x15, 0x01, 0x51, 0x2f, 0x32, 0xe3, 0x05, 0x9d, 0x26, - 0x7a, 0x0d, 0xaa, 0x09, 0x6d, 0xa6, 0xdd, 0xb2, 0x8a, 0xed, 0x16, 0x3b, 0xab, 0x5e, 0x15, 0xc4, - 0xb1, 0x62, 0x63, 0xff, 0x75, 0x0b, 0x46, 0xd8, 0x71, 0xdb, 0x2c, 0x49, 0x1c, 0xd7, 0xeb, 0xaa, - 0x95, 0x65, 0xf5, 0x59, 0x2b, 0xeb, 0x3c, 0x0c, 0x6c, 0x04, 0x6d, 0x92, 0x3d, 0x2a, 0xbe, 0x1c, - 0xd0, 0x6d, 0x35, 0x85, 0xa0, 0x67, 0xe9, 0x87, 0x77, 0xfd, 0xc4, 0xa1, 0x4b, 0x40, 0xba, 0x73, - 0x4f, 0xf0, 0x8f, 0xae, 0x9a, 0xb1, 0x89, 0x63, 0xff, 0x66, 0x0d, 0x86, 0x44, 0x5c, 0x43, 0xdf, - 0xb5, 0x25, 0xe4, 0xfe, 0xbe, 0xd4, 0x73, 0x7f, 0x1f, 0xc3, 0x60, 0x83, 0x15, 0xed, 0x13, 0x66, - 0xe4, 0xd5, 0x42, 0x02, 0x61, 0x78, 0x1d, 0x40, 0xdd, 0x2d, 0xfe, 0x1f, 0x0b, 0x56, 0xe8, 0x4b, - 0x16, 0x9c, 0x68, 0x04, 0xbe, 0x4f, 0x1a, 0xda, 0xc6, 0x19, 0x28, 0x22, 0xde, 0x61, 0x26, 0x4d, - 0x54, 0x9f, 0xf5, 0x64, 0x00, 0x38, 0xcb, 0x1e, 0xbd, 0x08, 0xa3, 0x7c, 0xcc, 0x6e, 0xa4, 0x7c, - 0xd0, 0xba, 0x84, 0x92, 0x09, 0xc4, 0x69, 0x5c, 0x34, 0xc9, 0x7d, 0xf9, 0xa2, 0x58, 0xd1, 0xa0, - 0x76, 0xd5, 0x19, 0x65, 0x8a, 0x0c, 0x0c, 0x14, 0x01, 0x8a, 0xc8, 0x7a, 0x44, 0xe2, 0x0d, 0x11, - 0xf7, 0xc1, 0xec, 0xab, 0xa1, 0xc3, 0xe5, 0xa1, 0xe3, 0x2e, 0x4a, 0x38, 0x87, 0x3a, 0xda, 0x14, - 0x1b, 0xcc, 0x6a, 0x11, 0x32, 0x54, 0x7c, 0xe6, 0x9e, 0xfb, 0xcc, 0x09, 0xa8, 0xc4, 0x1b, 0x4e, - 0xd4, 0x64, 0x76, 0x5d, 0x99, 0xe7, 0x3e, 0xad, 0xd0, 0x06, 0xcc, 0xdb, 0xd1, 0x2c, 0x9c, 0xcc, - 0x14, 0x80, 0x8a, 0x85, 0xaf, 0x58, 0xe5, 0xb9, 0x64, 0x4a, 0x47, 0xc5, 0xb8, 0xeb, 0x09, 0xd3, - 0xf9, 0x30, 0xbc, 0x8f, 0xf3, 0x61, 0x47, 0x45, 0x17, 0x72, 0x2f, 0xee, 0x4b, 0x85, 0x0c, 0x40, - 0x5f, 0xa1, 0x84, 0x5f, 0xc8, 0x84, 0x12, 0x8e, 0xb2, 0x0e, 0xdc, 0x28, 0xa6, 0x03, 0x07, 0x8f, - 0x1b, 0xbc, 0x9f, 0x71, 0x80, 0x7f, 0x6e, 0x81, 0xfc, 0xae, 0x33, 0x4e, 0x63, 0x83, 0xd0, 0x29, - 0x83, 0xde, 0x07, 0x63, 0x6a, 0x0b, 0x3d, 0x13, 0x74, 0x7c, 0x1e, 0x02, 0x58, 0xd6, 0x87, 0xc2, - 0x38, 0x05, 0xc5, 0x19, 0x6c, 0x34, 0x05, 0x35, 0x3a, 0x4e, 0xfc, 0x51, 0xae, 0x6b, 0xd5, 0x36, - 0x7d, 0x7a, 0x79, 0x5e, 0x3c, 0xa5, 0x71, 0x50, 0x00, 0xa7, 0x3c, 0x27, 0x4e, 0x58, 0x0f, 0xe8, - 0x8e, 0xfa, 0x90, 0x55, 0x20, 0x58, 0x32, 0xc5, 0x42, 0x96, 0x10, 0xee, 0xa6, 0x6d, 0x7f, 0x7b, - 0x00, 0x46, 0x53, 0x92, 0xf1, 0x80, 0x4a, 0xfa, 0x69, 0xa8, 0x4a, 0xbd, 0x99, 0xad, 0x57, 0xa3, - 0x94, 0xab, 0xc2, 0xa0, 0x4a, 0x6b, 0x4d, 0x6b, 0xd5, 0xac, 0x51, 0x61, 0x28, 0x5c, 0x6c, 0xe2, - 0x31, 0xa1, 0x9c, 0x78, 0xf1, 0x8c, 0xe7, 0x12, 0x3f, 0xe1, 0xdd, 0x2c, 0x46, 0x28, 0xaf, 0x2e, - 0xac, 0x98, 0x44, 0xb5, 0x50, 0xce, 0x00, 0x70, 0x96, 0x3d, 0xfa, 0xb4, 0x05, 0xa3, 0xce, 0xed, - 0x58, 0x57, 0x96, 0x15, 0x41, 0x83, 0x47, 0x54, 0x52, 0xa9, 0x62, 0xb5, 0xdc, 0xe5, 0x9b, 0x6a, - 0xc2, 0x69, 0xa6, 0xe8, 0x4d, 0x0b, 0x10, 0xd9, 0x26, 0x0d, 0x19, 0xd6, 0x28, 0xfa, 0x32, 0x58, - 0xc4, 0x4e, 0xf3, 0x62, 0x17, 0x5d, 0x2e, 0xd5, 0xbb, 0xdb, 0x71, 0x4e, 0x1f, 0xec, 0x7f, 0x5a, - 0x56, 0x0b, 0x4a, 0x47, 0xd2, 0x3a, 0x46, 0x44, 0x9f, 0x75, 0xf8, 0x88, 0x3e, 0x1d, 0x91, 0xd0, - 0x9d, 0x5c, 0x9a, 0xca, 0x45, 0x2b, 0xdd, 0xa7, 0x5c, 0xb4, 0x9f, 0xb6, 0x52, 0x95, 0x99, 0x86, - 0x2f, 0xbc, 0x5c, 0x6c, 0x14, 0xef, 0x24, 0x8f, 0x96, 0xc8, 0x48, 0xf7, 0x74, 0x90, 0x0c, 0x95, - 0xa6, 0x06, 0xda, 0x81, 0xa4, 0xe1, 0xbf, 0x2f, 0xc3, 0xb0, 0xa1, 0x49, 0x73, 0xcd, 0x22, 0xeb, - 0x01, 0x33, 0x8b, 0x4a, 0x07, 0x30, 0x8b, 0x7e, 0x0a, 0x6a, 0x0d, 0x29, 0xe5, 0x8b, 0xa9, 0x4d, - 0x9c, 0xd5, 0x1d, 0x5a, 0xd0, 0xab, 0x26, 0xac, 0x79, 0xa2, 0xb9, 0x54, 0x06, 0x93, 0xd0, 0x10, - 0x03, 0x4c, 0x43, 0xe4, 0xa5, 0x18, 0x09, 0x4d, 0xd1, 0xfd, 0x0c, 0x2b, 0xe0, 0x15, 0xba, 0xe2, - 0xbd, 0x64, 0xac, 0x3d, 0x2f, 0xe0, 0xb5, 0x3c, 0x2f, 0x9b, 0xb1, 0x89, 0x63, 0x7f, 0xdb, 0x52, - 0x1f, 0xf7, 0x1e, 0x94, 0xaa, 0xb8, 0x95, 0x2e, 0x55, 0x71, 0xb1, 0x90, 0x61, 0xee, 0x51, 0xa3, - 0xe2, 0x1a, 0x0c, 0xcd, 0x04, 0xed, 0xb6, 0xe3, 0x37, 0xd1, 0x0f, 0xc1, 0x50, 0x83, 0xff, 0x14, - 0x8e, 0x1d, 0x76, 0x3c, 0x28, 0xa0, 0x58, 0xc2, 0xd0, 0xa3, 0x30, 0xe0, 0x44, 0x2d, 0xe9, 0xcc, - 0x61, 0xc1, 0x35, 0xd3, 0x51, 0x2b, 0xc6, 0xac, 0xd5, 0xfe, 0x87, 0x03, 0xc0, 0xce, 0xb4, 0x9d, - 0x88, 0x34, 0x57, 0x03, 0x56, 0x1b, 0xf1, 0x58, 0x0f, 0xd5, 0xf4, 0x66, 0xe9, 0x41, 0x3e, 0x58, - 0x33, 0x0e, 0x57, 0xca, 0xf7, 0xf8, 0x70, 0xa5, 0xc7, 0x79, 0xd9, 0xc0, 0x03, 0x74, 0x5e, 0x66, - 0x7f, 0xde, 0x02, 0xa4, 0x02, 0x21, 0xf4, 0x81, 0xf6, 0x14, 0xd4, 0x54, 0x48, 0x84, 0x30, 0xac, - 0xb4, 0x88, 0x90, 0x00, 0xac, 0x71, 0xfa, 0xd8, 0x21, 0x3f, 0x21, 0xe5, 0x77, 0x39, 0x1d, 0x97, - 0xcb, 0xa4, 0xbe, 0x10, 0xe7, 0xf6, 0x6f, 0x95, 0xe0, 0x21, 0xae, 0x92, 0x17, 0x1d, 0xdf, 0x69, - 0x91, 0x36, 0xed, 0x55, 0xbf, 0x21, 0x0a, 0x0d, 0xba, 0x35, 0x73, 0x65, 0x9c, 0xed, 0x51, 0xd7, - 0x2e, 0x5f, 0x73, 0x7c, 0x95, 0xcd, 0xfb, 0x6e, 0x82, 0x19, 0x71, 0x14, 0x43, 0x55, 0x16, 0xee, - 0x17, 0xb2, 0xb8, 0x20, 0x46, 0x4a, 0x2c, 0x09, 0xbd, 0x49, 0xb0, 0x62, 0x44, 0x0d, 0x57, 0x2f, - 0x68, 0x6c, 0x62, 0x12, 0x06, 0x4c, 0xee, 0x1a, 0x61, 0x8e, 0x0b, 0xa2, 0x1d, 0x2b, 0x0c, 0xfb, - 0xb7, 0x2c, 0xc8, 0x6a, 0x24, 0xa3, 0x08, 0x9d, 0xb5, 0x67, 0x11, 0xba, 0x03, 0x54, 0x81, 0xfb, - 0x09, 0x18, 0x76, 0x12, 0x6a, 0x44, 0xf0, 0x6d, 0x77, 0xf9, 0x70, 0xc7, 0x1a, 0x8b, 0x41, 0xd3, - 0x5d, 0x77, 0xd9, 0x76, 0xdb, 0x24, 0x67, 0xff, 0x8f, 0x01, 0x38, 0xd5, 0x95, 0x95, 0x82, 0x5e, - 0x80, 0x91, 0x86, 0x98, 0x1e, 0xa1, 0x74, 0x68, 0xd5, 0xcc, 0xb0, 0x38, 0x0d, 0xc3, 0x29, 0xcc, - 0x3e, 0x26, 0xe8, 0x3c, 0x9c, 0x8e, 0xe8, 0x46, 0xbf, 0x43, 0xa6, 0xd7, 0x13, 0x12, 0xad, 0x90, - 0x46, 0xe0, 0x37, 0x79, 0xa9, 0xc4, 0x72, 0xfd, 0xe1, 0x3b, 0xbb, 0x13, 0xa7, 0x71, 0x37, 0x18, - 0xe7, 0x3d, 0x83, 0x42, 0x18, 0xf5, 0x4c, 0x1b, 0x50, 0x6c, 0x00, 0x0e, 0x65, 0x3e, 0x2a, 0x1b, - 0x21, 0xd5, 0x8c, 0xd3, 0x0c, 0xd2, 0x86, 0x64, 0xe5, 0x3e, 0x19, 0x92, 0x9f, 0xd2, 0x86, 0x24, - 0x3f, 0x7f, 0xff, 0x50, 0xc1, 0x59, 0x49, 0xc7, 0x6d, 0x49, 0xbe, 0x04, 0x55, 0x19, 0x9b, 0xd4, - 0x57, 0x4c, 0x8f, 0x49, 0xa7, 0x87, 0x44, 0x7b, 0x12, 0x7e, 0xf0, 0x62, 0x14, 0x19, 0x83, 0x79, - 0x2d, 0x48, 0xa6, 0x3d, 0x2f, 0xb8, 0x4d, 0x95, 0xf4, 0xf5, 0x98, 0x08, 0x0f, 0x8b, 0x7d, 0xb7, - 0x04, 0x39, 0x9b, 0x15, 0xba, 0x1e, 0xb5, 0x65, 0x90, 0x5a, 0x8f, 0x07, 0xb3, 0x0e, 0xd0, 0x36, - 0x8f, 0xdf, 0xe2, 0x3a, 0xf0, 0x83, 0x45, 0x6f, 0xb6, 0x74, 0x48, 0x97, 0x4a, 0xa6, 0x50, 0x61, - 0x5d, 0x17, 0x00, 0xb4, 0x41, 0x27, 0x42, 0xe5, 0xd5, 0xf1, 0xb0, 0xb6, 0xfb, 0xb0, 0x81, 0x45, - 0xf7, 0xde, 0xae, 0x1f, 0x27, 0x8e, 0xe7, 0x5d, 0x76, 0xfd, 0x44, 0x38, 0x11, 0x95, 0xb2, 0x9f, - 0xd7, 0x20, 0x6c, 0xe2, 0x9d, 0x7b, 0x8f, 0xf1, 0xfd, 0x0e, 0xf2, 0xdd, 0x37, 0xe0, 0x91, 0x39, - 0x37, 0x51, 0x09, 0x1e, 0x6a, 0xbe, 0x51, 0x7b, 0x4d, 0x25, 0x2c, 0x59, 0x3d, 0x13, 0x96, 0x8c, - 0x04, 0x8b, 0x52, 0x3a, 0x1f, 0x24, 0x9b, 0x60, 0x61, 0xbf, 0x00, 0x67, 0xe6, 0xdc, 0xe4, 0x92, - 0xeb, 0x91, 0x03, 0x32, 0xb1, 0x7f, 0x63, 0x10, 0x46, 0xcc, 0x54, 0xc5, 0x83, 0xe4, 0x5c, 0x7d, - 0x91, 0x9a, 0x64, 0xe2, 0xed, 0x5c, 0x75, 0xb8, 0x76, 0xf3, 0xc8, 0x79, 0x93, 0xf9, 0x23, 0x66, - 0x58, 0x65, 0x9a, 0x27, 0x36, 0x3b, 0x80, 0x6e, 0x43, 0x65, 0x9d, 0x25, 0x00, 0x94, 0x8b, 0x88, - 0x40, 0xc8, 0x1b, 0x51, 0xbd, 0x1c, 0x79, 0x0a, 0x01, 0xe7, 0x47, 0x35, 0x69, 0x94, 0xce, 0x2a, - 0x33, 0x82, 0x56, 0x45, 0x3e, 0x99, 0xc2, 0xe8, 0xa5, 0x12, 0x2a, 0x87, 0x50, 0x09, 0x29, 0x01, - 0x3d, 0x78, 0x9f, 0x04, 0x34, 0x4b, 0xe6, 0x48, 0x36, 0x98, 0x9d, 0x27, 0xa2, 0xec, 0x87, 0xd8, - 0x20, 0x18, 0xc9, 0x1c, 0x29, 0x30, 0xce, 0xe2, 0xa3, 0x8f, 0x2b, 0x11, 0x5f, 0x2d, 0xc2, 0xff, - 0x6a, 0xce, 0xe8, 0xe3, 0x96, 0xee, 0x9f, 0x2f, 0xc1, 0xd8, 0x9c, 0xdf, 0x59, 0x9e, 0x5b, 0xee, - 0xac, 0x79, 0x6e, 0xe3, 0x2a, 0xd9, 0xa1, 0x22, 0x7c, 0x93, 0xec, 0xcc, 0xcf, 0x8a, 0x15, 0xa4, - 0xe6, 0xcc, 0x55, 0xda, 0x88, 0x39, 0x8c, 0x0a, 0xa3, 0x75, 0xd7, 0x6f, 0x91, 0x28, 0x8c, 0x5c, - 0xe1, 0x1a, 0x35, 0x84, 0xd1, 0x25, 0x0d, 0xc2, 0x26, 0x1e, 0xa5, 0x1d, 0xdc, 0xf6, 0x49, 0x94, - 0x35, 0x78, 0x97, 0x68, 0x23, 0xe6, 0x30, 0x8a, 0x94, 0x44, 0x9d, 0x38, 0x11, 0x93, 0x51, 0x21, - 0xad, 0xd2, 0x46, 0xcc, 0x61, 0x74, 0xa5, 0xc7, 0x9d, 0x35, 0x16, 0xe0, 0x91, 0x09, 0xe9, 0x5f, - 0xe1, 0xcd, 0x58, 0xc2, 0x29, 0xea, 0x26, 0xd9, 0x99, 0xa5, 0xbb, 0xe3, 0x4c, 0x66, 0xcf, 0x55, - 0xde, 0x8c, 0x25, 0x9c, 0xd5, 0x82, 0x4c, 0x0f, 0xc7, 0xf7, 0x5c, 0x2d, 0xc8, 0x74, 0xf7, 0x7b, - 0xec, 0xb3, 0x7f, 0xc9, 0x82, 0x11, 0x33, 0x2c, 0x0b, 0xb5, 0x32, 0xb6, 0xf0, 0x52, 0x57, 0x29, - 0xe1, 0x1f, 0xcb, 0xbb, 0x87, 0xad, 0xe5, 0x26, 0x41, 0x18, 0x3f, 0x43, 0xfc, 0x96, 0xeb, 0x13, - 0x76, 0xda, 0xce, 0xc3, 0xb9, 0x52, 0x31, 0x5f, 0x33, 0x41, 0x93, 0x1c, 0xc2, 0x98, 0xb6, 0x6f, - 0xc2, 0xa9, 0xae, 0x74, 0xae, 0x3e, 0x4c, 0x90, 0x7d, 0x93, 0x69, 0x6d, 0x0c, 0xc3, 0x94, 0xb0, - 0xac, 0x47, 0x34, 0x03, 0xa7, 0xf8, 0x42, 0xa2, 0x9c, 0x56, 0x1a, 0x1b, 0xa4, 0xad, 0x52, 0xf4, - 0x98, 0x1f, 0xfe, 0x46, 0x16, 0x88, 0xbb, 0xf1, 0xed, 0x2f, 0x58, 0x30, 0x9a, 0xca, 0xb0, 0x2b, - 0xc8, 0x58, 0x62, 0x2b, 0x2d, 0x60, 0x51, 0x82, 0x2c, 0x54, 0xba, 0xcc, 0x94, 0xa9, 0x5e, 0x69, - 0x1a, 0x84, 0x4d, 0x3c, 0xfb, 0xcb, 0x25, 0xa8, 0xca, 0x48, 0x8b, 0x3e, 0xba, 0xf2, 0x39, 0x0b, - 0x46, 0xd5, 0xd9, 0x07, 0x73, 0xaa, 0x95, 0x8a, 0x48, 0x87, 0xa0, 0x3d, 0x50, 0xdb, 0x72, 0x7f, - 0x3d, 0xd0, 0x96, 0x3b, 0x36, 0x99, 0xe1, 0x34, 0x6f, 0x74, 0x03, 0x20, 0xde, 0x89, 0x13, 0xd2, - 0x36, 0xdc, 0x7b, 0xb6, 0xb1, 0xe2, 0x26, 0x1b, 0x41, 0x44, 0xe8, 0xfa, 0xba, 0x16, 0x34, 0xc9, - 0x8a, 0xc2, 0xd4, 0x26, 0x94, 0x6e, 0xc3, 0x06, 0x25, 0xfb, 0xef, 0x97, 0xe0, 0x64, 0xb6, 0x4b, - 0xe8, 0x43, 0x30, 0x22, 0xb9, 0x1b, 0x57, 0xca, 0xc9, 0xf0, 0x92, 0x11, 0x6c, 0xc0, 0xee, 0xee, - 0x4e, 0x4c, 0x74, 0xdf, 0xe9, 0x37, 0x69, 0xa2, 0xe0, 0x14, 0x31, 0x7e, 0x00, 0x25, 0x4e, 0x4a, - 0xeb, 0x3b, 0xd3, 0x61, 0x28, 0x4e, 0x91, 0x8c, 0x03, 0x28, 0x13, 0x8a, 0x33, 0xd8, 0x68, 0x19, - 0xce, 0x18, 0x2d, 0xd7, 0x88, 0xdb, 0xda, 0x58, 0x0b, 0x22, 0xb9, 0x03, 0x7b, 0x54, 0x07, 0x80, - 0x75, 0xe3, 0xe0, 0xdc, 0x27, 0xa9, 0xb6, 0x6f, 0x38, 0xa1, 0xd3, 0x70, 0x93, 0x1d, 0xe1, 0xaf, - 0x54, 0xb2, 0x69, 0x46, 0xb4, 0x63, 0x85, 0x61, 0x2f, 0xc2, 0x40, 0x9f, 0x33, 0xa8, 0x2f, 0xcb, - 0xff, 0x25, 0xa8, 0x52, 0x72, 0xd2, 0xbc, 0x2b, 0x82, 0x64, 0x00, 0x55, 0x79, 0xd5, 0x0b, 0xb2, - 0xa1, 0xec, 0x3a, 0xf2, 0x8c, 0x4f, 0xbd, 0xd6, 0x7c, 0x1c, 0x77, 0xd8, 0x66, 0x9a, 0x02, 0xd1, - 0x13, 0x50, 0x26, 0xdb, 0x61, 0xf6, 0x30, 0xef, 0xe2, 0x76, 0xe8, 0x46, 0x24, 0xa6, 0x48, 0x64, - 0x3b, 0x44, 0xe7, 0xa0, 0xe4, 0x36, 0x85, 0x92, 0x02, 0x81, 0x53, 0x9a, 0x9f, 0xc5, 0x25, 0xb7, - 0x69, 0x6f, 0x43, 0x4d, 0xdd, 0x2d, 0x83, 0x36, 0xa5, 0xec, 0xb6, 0x8a, 0x08, 0x8d, 0x92, 0x74, - 0x7b, 0x48, 0xed, 0x0e, 0x80, 0x4e, 0x35, 0x2c, 0x4a, 0xbe, 0x9c, 0x87, 0x81, 0x46, 0x20, 0xd2, - 0xa0, 0xab, 0x9a, 0x0c, 0x13, 0xda, 0x0c, 0x62, 0xdf, 0x84, 0xb1, 0xab, 0x7e, 0x70, 0x9b, 0x15, - 0xc6, 0x67, 0x75, 0xe0, 0x28, 0xe1, 0x75, 0xfa, 0x23, 0x6b, 0x22, 0x30, 0x28, 0xe6, 0x30, 0x55, - 0xa1, 0xaa, 0xd4, 0xab, 0x42, 0x95, 0xfd, 0x09, 0x0b, 0x46, 0x54, 0xce, 0xd2, 0xdc, 0xd6, 0x26, - 0xa5, 0xdb, 0x8a, 0x82, 0x4e, 0x98, 0xa5, 0xcb, 0x6e, 0x7f, 0xc2, 0x1c, 0x66, 0x26, 0xf3, 0x95, - 0xf6, 0x49, 0xe6, 0x3b, 0x0f, 0x03, 0x9b, 0xae, 0xdf, 0xcc, 0x5e, 0x67, 0x72, 0xd5, 0xf5, 0x9b, - 0x98, 0x41, 0x68, 0x17, 0x4e, 0xaa, 0x2e, 0x48, 0x85, 0xf0, 0x02, 0x8c, 0xac, 0x75, 0x5c, 0xaf, - 0x29, 0x0b, 0xdc, 0x65, 0x3c, 0x2a, 0x75, 0x03, 0x86, 0x53, 0x98, 0x74, 0x5f, 0xb7, 0xe6, 0xfa, - 0x4e, 0xb4, 0xb3, 0xac, 0x35, 0x90, 0x12, 0x4a, 0x75, 0x05, 0xc1, 0x06, 0x96, 0xfd, 0x46, 0x19, - 0xc6, 0xd2, 0x99, 0x5b, 0x7d, 0x6c, 0xaf, 0x9e, 0x80, 0x0a, 0x4b, 0xe6, 0xca, 0x7e, 0x5a, 0x5e, - 0x13, 0x8e, 0xc3, 0x50, 0x0c, 0x83, 0xbc, 0x0c, 0x44, 0x31, 0x57, 0x01, 0xa9, 0x4e, 0x2a, 0x3f, - 0x0c, 0x8b, 0x3b, 0x13, 0x95, 0x27, 0x04, 0x2b, 0xf4, 0x69, 0x0b, 0x86, 0x82, 0xd0, 0xac, 0x6c, - 0xf4, 0xc1, 0x22, 0xb3, 0xda, 0x44, 0x52, 0x8d, 0xb0, 0x88, 0xd5, 0xa7, 0x97, 0x9f, 0x43, 0xb2, - 0x3e, 0xf7, 0x5e, 0x18, 0x31, 0x31, 0xf7, 0x33, 0x8a, 0xab, 0xa6, 0x51, 0xfc, 0x39, 0x73, 0x52, - 0x88, 0xbc, 0xbd, 0x3e, 0x96, 0xdb, 0x75, 0xa8, 0x34, 0x54, 0xa0, 0xc0, 0xa1, 0xca, 0xa2, 0xaa, - 0xba, 0x0c, 0xec, 0xb0, 0x88, 0x53, 0xb3, 0xbf, 0x6d, 0x19, 0xf3, 0x03, 0x93, 0x78, 0xbe, 0x89, - 0x22, 0x28, 0xb7, 0xb6, 0x36, 0x85, 0x29, 0x7a, 0xa5, 0xa0, 0xe1, 0x9d, 0xdb, 0xda, 0xd4, 0x73, - 0xdc, 0x6c, 0xc5, 0x94, 0x59, 0x1f, 0xce, 0xc2, 0x54, 0x7a, 0x67, 0x79, 0xff, 0xf4, 0x4e, 0xfb, - 0xcd, 0x12, 0x9c, 0xea, 0x9a, 0x54, 0xe8, 0x75, 0xa8, 0x44, 0xf4, 0x2d, 0xc5, 0xeb, 0x2d, 0x14, - 0x96, 0x90, 0x19, 0xcf, 0x37, 0xb5, 0xde, 0x4d, 0xb7, 0x63, 0xce, 0x12, 0x5d, 0x01, 0xa4, 0xc3, - 0x59, 0x94, 0xa7, 0x92, 0xbf, 0xf2, 0x39, 0xf1, 0x28, 0x9a, 0xee, 0xc2, 0xc0, 0x39, 0x4f, 0xa1, - 0x17, 0xb3, 0x0e, 0xcf, 0x72, 0xfa, 0x7c, 0x73, 0x2f, 0xdf, 0xa5, 0xfd, 0xcf, 0x4a, 0x30, 0x9a, - 0x2a, 0x34, 0x85, 0x3c, 0xa8, 0x12, 0x8f, 0x39, 0xff, 0xa5, 0xb2, 0x39, 0x6a, 0xd9, 0x68, 0xa5, - 0x20, 0x2f, 0x0a, 0xba, 0x58, 0x71, 0x78, 0x30, 0x0e, 0xe1, 0x5f, 0x80, 0x11, 0xd9, 0xa1, 0x0f, - 0x3a, 0x6d, 0x4f, 0x0c, 0xa0, 0x9a, 0xa3, 0x17, 0x0d, 0x18, 0x4e, 0x61, 0xda, 0xbf, 0x5d, 0x86, - 0x71, 0x7e, 0x5a, 0xd2, 0x54, 0x33, 0x6f, 0x51, 0xee, 0xb7, 0xfe, 0xb2, 0x2e, 0x07, 0xc7, 0x07, - 0x72, 0xed, 0xa8, 0xb7, 0x34, 0xe4, 0x33, 0xea, 0x2b, 0x82, 0xeb, 0x6b, 0x99, 0x08, 0x2e, 0x6e, - 0x76, 0xb7, 0x8e, 0xa9, 0x47, 0xdf, 0x5b, 0x21, 0x5d, 0x7f, 0xa7, 0x04, 0x27, 0x32, 0x57, 0x60, - 0xa0, 0x37, 0xd2, 0x55, 0x93, 0xad, 0x22, 0x7c, 0xea, 0x7b, 0xde, 0x8a, 0x70, 0xb0, 0xda, 0xc9, - 0xf7, 0x69, 0xa9, 0xd8, 0x7f, 0x50, 0x82, 0xb1, 0xf4, 0xdd, 0x1d, 0x0f, 0xe0, 0x48, 0xbd, 0x0b, - 0x6a, 0xac, 0x3c, 0x3d, 0xbb, 0x93, 0x94, 0xbb, 0xe4, 0x79, 0x25, 0x70, 0xd9, 0x88, 0x35, 0xfc, - 0x81, 0x28, 0x49, 0x6d, 0xff, 0x5d, 0x0b, 0xce, 0xf2, 0xb7, 0xcc, 0xce, 0xc3, 0xbf, 0x92, 0x37, - 0xba, 0xaf, 0x14, 0xdb, 0xc1, 0x4c, 0x19, 0xc3, 0xfd, 0xc6, 0x97, 0xdd, 0x85, 0x28, 0x7a, 0x9b, - 0x9e, 0x0a, 0x0f, 0x60, 0x67, 0x0f, 0x34, 0x19, 0xec, 0x3f, 0x28, 0x83, 0xbe, 0xfe, 0x11, 0xb9, - 0x22, 0x17, 0xb2, 0x90, 0x72, 0x8e, 0x2b, 0x3b, 0x7e, 0x43, 0x5f, 0x34, 0x59, 0xcd, 0xa4, 0x42, - 0xfe, 0xac, 0x05, 0xc3, 0xae, 0xef, 0x26, 0xae, 0xc3, 0xb6, 0xd1, 0xc5, 0x5c, 0x4d, 0xa7, 0xd8, - 0xcd, 0x73, 0xca, 0x41, 0x64, 0x9e, 0xe3, 0x28, 0x66, 0xd8, 0xe4, 0x8c, 0x3e, 0x22, 0x82, 0xac, - 0xcb, 0x85, 0x65, 0xf1, 0x56, 0x33, 0x91, 0xd5, 0x21, 0x35, 0xbc, 0x92, 0xa8, 0xa0, 0xe4, 0x77, - 0x4c, 0x49, 0xa9, 0xca, 0xc0, 0xfa, 0x22, 0x6e, 0xda, 0x8c, 0x39, 0x23, 0x3b, 0x06, 0xd4, 0x3d, - 0x16, 0x07, 0x0c, 0x60, 0x9d, 0x82, 0x9a, 0xd3, 0x49, 0x82, 0x36, 0x1d, 0x26, 0x71, 0xd4, 0xa4, - 0x43, 0x74, 0x25, 0x00, 0x6b, 0x1c, 0xfb, 0x8d, 0x0a, 0x64, 0x92, 0x13, 0xd1, 0xb6, 0x79, 0x75, - 0xa9, 0x55, 0xec, 0xd5, 0xa5, 0xaa, 0x33, 0x79, 0xd7, 0x97, 0xa2, 0x16, 0x54, 0xc2, 0x0d, 0x27, - 0x96, 0x66, 0xf5, 0x4b, 0x6a, 0x1f, 0x47, 0x1b, 0xef, 0xee, 0x4e, 0xfc, 0x78, 0x7f, 0x5e, 0x57, - 0x3a, 0x57, 0xa7, 0x78, 0x99, 0x13, 0xcd, 0x9a, 0xd1, 0xc0, 0x9c, 0xfe, 0x41, 0x2e, 0xe7, 0xfb, - 0xa4, 0xa8, 0xc3, 0x8f, 0x49, 0xdc, 0xf1, 0x12, 0x31, 0x1b, 0x5e, 0x2a, 0x70, 0x95, 0x71, 0xc2, - 0x3a, 0xad, 0x9e, 0xff, 0xc7, 0x06, 0x53, 0xf4, 0x21, 0xa8, 0xc5, 0x89, 0x13, 0x25, 0x87, 0x4c, - 0x84, 0x55, 0x83, 0xbe, 0x22, 0x89, 0x60, 0x4d, 0x0f, 0xbd, 0xcc, 0xaa, 0xdb, 0xba, 0xf1, 0xc6, - 0x21, 0x73, 0x23, 0x64, 0x25, 0x5c, 0x41, 0x01, 0x1b, 0xd4, 0xd0, 0x05, 0x00, 0x36, 0xb7, 0x79, - 0x40, 0x60, 0x95, 0x79, 0x99, 0x94, 0x28, 0xc4, 0x0a, 0x82, 0x0d, 0x2c, 0xfb, 0x87, 0x21, 0x5d, - 0x17, 0x02, 0x4d, 0xc8, 0x32, 0x14, 0xdc, 0x0b, 0xcd, 0x72, 0x1c, 0x52, 0x15, 0x23, 0x7e, 0xcd, - 0x02, 0xb3, 0x78, 0x05, 0x7a, 0x8d, 0x57, 0xc9, 0xb0, 0x8a, 0x38, 0x39, 0x34, 0xe8, 0x4e, 0x2e, - 0x3a, 0x61, 0xe6, 0x08, 0x5b, 0x96, 0xca, 0x38, 0xf7, 0x1e, 0xa8, 0x4a, 0xe8, 0x81, 0x8c, 0xba, - 0x8f, 0xc3, 0xe9, 0xec, 0xc5, 0xee, 0xe2, 0xd4, 0x69, 0x7f, 0xd7, 0x8f, 0xf4, 0xe7, 0x94, 0x7a, - 0xf9, 0x73, 0xfa, 0xb8, 0xc0, 0xf6, 0xd7, 0x2d, 0x38, 0xbf, 0xdf, 0xfd, 0xf3, 0xe8, 0x51, 0x18, - 0xb8, 0xed, 0x44, 0xb2, 0xec, 0x38, 0x13, 0x94, 0x37, 0x9d, 0xc8, 0xc7, 0xac, 0x15, 0xed, 0xc0, - 0x20, 0x8f, 0x1a, 0x13, 0xd6, 0xfa, 0x4b, 0xc5, 0xde, 0x86, 0x7f, 0x95, 0x18, 0xdb, 0x05, 0x1e, - 0xb1, 0x86, 0x05, 0x43, 0xfb, 0x3b, 0x16, 0xa0, 0xa5, 0x2d, 0x12, 0x45, 0x6e, 0xd3, 0x88, 0x73, - 0x63, 0xf7, 0xd9, 0x18, 0xf7, 0xd6, 0x98, 0xa9, 0xb0, 0x99, 0xfb, 0x6c, 0x8c, 0x7f, 0xf9, 0xf7, - 0xd9, 0x94, 0x0e, 0x76, 0x9f, 0x0d, 0x5a, 0x82, 0xb3, 0x6d, 0xbe, 0xdd, 0xe0, 0x77, 0x44, 0xf0, - 0xbd, 0x87, 0x4a, 0x3c, 0x7b, 0xe4, 0xce, 0xee, 0xc4, 0xd9, 0xc5, 0x3c, 0x04, 0x9c, 0xff, 0x9c, - 0xfd, 0x1e, 0x40, 0x3c, 0xbc, 0x6d, 0x26, 0x2f, 0x56, 0xa9, 0xa7, 0xfb, 0xc5, 0xfe, 0x6a, 0x05, - 0x4e, 0x64, 0x8a, 0xd2, 0xd2, 0xad, 0x5e, 0x77, 0x70, 0xd4, 0x91, 0xf5, 0x77, 0x77, 0xf7, 0xfa, - 0x0a, 0xb7, 0xf2, 0xa1, 0xe2, 0xfa, 0x61, 0x27, 0x29, 0x26, 0xd7, 0x94, 0x77, 0x62, 0x9e, 0x12, - 0x34, 0xdc, 0xc5, 0xf4, 0x2f, 0xe6, 0x6c, 0x8a, 0x0c, 0xde, 0x4a, 0x19, 0xe3, 0x03, 0xf7, 0xc9, - 0x1d, 0xf0, 0x49, 0x1d, 0x4a, 0x55, 0x29, 0xc2, 0xb1, 0x98, 0x99, 0x2c, 0xc7, 0x7d, 0xd4, 0xfe, - 0xab, 0x25, 0x18, 0x36, 0x3e, 0x1a, 0xfa, 0xc5, 0x74, 0x69, 0x27, 0xab, 0xb8, 0x57, 0x62, 0xf4, - 0x27, 0x75, 0xf1, 0x26, 0xfe, 0x4a, 0x4f, 0x76, 0x57, 0x75, 0xba, 0xbb, 0x3b, 0x71, 0x32, 0x53, - 0xb7, 0x29, 0x55, 0xe9, 0xe9, 0xdc, 0xc7, 0xe0, 0x44, 0x86, 0x4c, 0xce, 0x2b, 0xaf, 0xa6, 0xef, - 0xed, 0x3f, 0xa2, 0x5b, 0xca, 0x1c, 0xb2, 0x6f, 0xd2, 0x21, 0x13, 0xe9, 0x76, 0x81, 0x47, 0xfa, - 0xf0, 0xc1, 0x66, 0xb2, 0x6a, 0x4b, 0x7d, 0x66, 0xd5, 0x3e, 0x05, 0xd5, 0x30, 0xf0, 0xdc, 0x86, - 0xab, 0xea, 0x1f, 0xb2, 0x3c, 0xde, 0x65, 0xd1, 0x86, 0x15, 0x14, 0xdd, 0x86, 0xda, 0xad, 0xdb, - 0x09, 0x3f, 0xfd, 0x11, 0xfe, 0xed, 0xa2, 0x0e, 0x7d, 0x94, 0xd1, 0xa2, 0x8e, 0x97, 0xb0, 0xe6, - 0x85, 0x6c, 0x18, 0x64, 0x4a, 0x50, 0xa6, 0x08, 0x30, 0xdf, 0x3b, 0xd3, 0x8e, 0x31, 0x16, 0x10, - 0xfb, 0x1b, 0x35, 0x38, 0x93, 0x57, 0x19, 0x1c, 0x7d, 0x14, 0x06, 0x79, 0x1f, 0x8b, 0xb9, 0x7c, - 0x22, 0x8f, 0xc7, 0x1c, 0x23, 0x28, 0xba, 0xc5, 0x7e, 0x63, 0xc1, 0x53, 0x70, 0xf7, 0x9c, 0x35, - 0x31, 0x43, 0x8e, 0x87, 0xfb, 0x82, 0xa3, 0xb9, 0x2f, 0x38, 0x9c, 0xbb, 0xe7, 0xac, 0xa1, 0x6d, - 0xa8, 0xb4, 0xdc, 0x84, 0x38, 0xc2, 0x89, 0x70, 0xf3, 0x58, 0x98, 0x13, 0x87, 0x5b, 0x69, 0xec, - 0x27, 0xe6, 0x0c, 0xd1, 0xd7, 0x2d, 0x38, 0xb1, 0x96, 0x4e, 0xa1, 0x17, 0xc2, 0xd3, 0x39, 0x86, - 0xea, 0xef, 0x69, 0x46, 0xfc, 0x42, 0xa7, 0x4c, 0x23, 0xce, 0x76, 0x07, 0x7d, 0xca, 0x82, 0xa1, - 0x75, 0xd7, 0x33, 0x0a, 0xf0, 0x1e, 0xc3, 0xc7, 0xb9, 0xc4, 0x18, 0xe8, 0x1d, 0x07, 0xff, 0x1f, - 0x63, 0xc9, 0xb9, 0x97, 0xa6, 0x1a, 0x3c, 0xaa, 0xa6, 0x1a, 0xba, 0x4f, 0x9a, 0xea, 0xb3, 0x16, - 0xd4, 0xd4, 0x48, 0x8b, 0xb4, 0xe8, 0x0f, 0x1d, 0xe3, 0x27, 0xe7, 0x9e, 0x13, 0xf5, 0x17, 0x6b, - 0xe6, 0xe8, 0x4b, 0x16, 0x0c, 0x3b, 0xaf, 0x77, 0x22, 0xd2, 0x24, 0x5b, 0x41, 0x18, 0x8b, 0xdb, - 0x20, 0x5f, 0x29, 0xbe, 0x33, 0xd3, 0x94, 0xc9, 0x2c, 0xd9, 0x5a, 0x0a, 0x63, 0x91, 0xbe, 0xa4, - 0x1b, 0xb0, 0xd9, 0x05, 0x7b, 0xb7, 0x04, 0x13, 0xfb, 0x50, 0x40, 0x2f, 0xc0, 0x48, 0x10, 0xb5, - 0x1c, 0xdf, 0x7d, 0xdd, 0xac, 0x89, 0xa1, 0xac, 0xac, 0x25, 0x03, 0x86, 0x53, 0x98, 0x66, 0xe2, - 0x76, 0x69, 0x9f, 0xc4, 0xed, 0xf3, 0x30, 0x10, 0x91, 0x30, 0xc8, 0x6e, 0x16, 0x58, 0xea, 0x00, - 0x83, 0xa0, 0xc7, 0xa0, 0xec, 0x84, 0xae, 0x08, 0x44, 0x53, 0x7b, 0xa0, 0xe9, 0xe5, 0x79, 0x4c, - 0xdb, 0x53, 0x75, 0x24, 0x2a, 0xf7, 0xa4, 0x8e, 0x04, 0x55, 0x03, 0xe2, 0xec, 0x62, 0x50, 0xab, - 0x81, 0xf4, 0x99, 0x82, 0xfd, 0x66, 0x19, 0x1e, 0xdb, 0x73, 0xbe, 0xe8, 0x38, 0x3c, 0x6b, 0x8f, - 0x38, 0x3c, 0x39, 0x3c, 0xa5, 0xfd, 0x86, 0xa7, 0xdc, 0x63, 0x78, 0x3e, 0x45, 0x97, 0x81, 0xac, - 0x25, 0x52, 0xcc, 0x7d, 0x7e, 0xbd, 0x4a, 0x93, 0x88, 0x15, 0x20, 0xa1, 0x58, 0xf3, 0xa5, 0x7b, - 0x80, 0x54, 0xd2, 0x72, 0xa5, 0x08, 0x35, 0xd0, 0xb3, 0xb6, 0x08, 0x9f, 0xfb, 0xbd, 0x32, 0xa1, - 0xed, 0x9f, 0x2b, 0xc1, 0x13, 0x7d, 0x48, 0x6f, 0x73, 0x16, 0x5b, 0x7d, 0xce, 0xe2, 0xef, 0xed, - 0xcf, 0x64, 0xff, 0x55, 0x0b, 0xce, 0xf5, 0x56, 0x1e, 0xe8, 0x59, 0x18, 0x5e, 0x8b, 0x1c, 0xbf, - 0xb1, 0xc1, 0xee, 0x28, 0x95, 0x83, 0xc2, 0xc6, 0x5a, 0x37, 0x63, 0x13, 0x87, 0x6e, 0x6f, 0x79, - 0x4c, 0x82, 0x81, 0x21, 0x93, 0x4c, 0xe9, 0xf6, 0x76, 0x35, 0x0b, 0xc4, 0xdd, 0xf8, 0xf6, 0x9f, - 0x95, 0xf2, 0xbb, 0xc5, 0x8d, 0x8c, 0x83, 0x7c, 0x27, 0xf1, 0x15, 0x4a, 0x7d, 0xc8, 0x92, 0xf2, - 0xbd, 0x96, 0x25, 0x03, 0xbd, 0x64, 0x09, 0x9a, 0x85, 0x93, 0xc6, 0x25, 0x32, 0x3c, 0x71, 0x98, - 0x07, 0xdc, 0xaa, 0x6a, 0x1a, 0xcb, 0x19, 0x38, 0xee, 0x7a, 0x02, 0x3d, 0x0d, 0x55, 0xd7, 0x8f, - 0x49, 0xa3, 0x13, 0xf1, 0x40, 0x6f, 0x23, 0x59, 0x6b, 0x5e, 0xb4, 0x63, 0x85, 0x61, 0xff, 0x52, - 0x09, 0x1e, 0xe9, 0x69, 0x67, 0xdd, 0x23, 0xd9, 0x65, 0x7e, 0x8e, 0x81, 0x7b, 0xf3, 0x39, 0xcc, - 0x41, 0xaa, 0xec, 0x3b, 0x48, 0x7f, 0xd8, 0x7b, 0x62, 0x52, 0x9b, 0xfb, 0xfb, 0x76, 0x94, 0x5e, - 0x84, 0x51, 0x27, 0x0c, 0x39, 0x1e, 0x8b, 0xd7, 0xcc, 0x54, 0xd3, 0x99, 0x36, 0x81, 0x38, 0x8d, - 0xdb, 0x97, 0xf6, 0xfc, 0x63, 0x0b, 0x6a, 0x98, 0xac, 0x73, 0xe9, 0x80, 0x6e, 0x89, 0x21, 0xb2, - 0x8a, 0xa8, 0xbb, 0x49, 0x07, 0x36, 0x76, 0x59, 0x3d, 0xca, 0xbc, 0xc1, 0xee, 0xbe, 0xe4, 0xa7, - 0x74, 0xa0, 0x4b, 0x7e, 0xd4, 0x35, 0x2f, 0xe5, 0xde, 0xd7, 0xbc, 0xd8, 0xdf, 0x1c, 0xa2, 0xaf, - 0x17, 0x06, 0x33, 0x11, 0x69, 0xc6, 0xf4, 0xfb, 0x76, 0x22, 0x4f, 0x4c, 0x12, 0xf5, 0x7d, 0xaf, - 0xe3, 0x05, 0x4c, 0xdb, 0x53, 0x47, 0x31, 0xa5, 0x03, 0xd5, 0x12, 0x29, 0xef, 0x5b, 0x4b, 0xe4, - 0x45, 0x18, 0x8d, 0xe3, 0x8d, 0xe5, 0xc8, 0xdd, 0x72, 0x12, 0x72, 0x95, 0xec, 0x08, 0x2b, 0x4b, - 0xe7, 0xff, 0xaf, 0x5c, 0xd6, 0x40, 0x9c, 0xc6, 0x45, 0x73, 0x70, 0x4a, 0x57, 0xf4, 0x20, 0x51, - 0xc2, 0xa2, 0xfb, 0xf9, 0x4c, 0x50, 0xc9, 0xbe, 0xba, 0x06, 0x88, 0x40, 0xc0, 0xdd, 0xcf, 0x50, - 0xf9, 0x96, 0x6a, 0xa4, 0x1d, 0x19, 0x4c, 0xcb, 0xb7, 0x14, 0x1d, 0xda, 0x97, 0xae, 0x27, 0xd0, - 0x22, 0x9c, 0xe6, 0x13, 0x63, 0x3a, 0x0c, 0x8d, 0x37, 0x1a, 0x4a, 0xd7, 0x3b, 0x9c, 0xeb, 0x46, - 0xc1, 0x79, 0xcf, 0xa1, 0xe7, 0x61, 0x58, 0x35, 0xcf, 0xcf, 0x8a, 0x53, 0x04, 0xe5, 0xc5, 0x50, - 0x64, 0xe6, 0x9b, 0xd8, 0xc4, 0x43, 0x1f, 0x84, 0x87, 0xf5, 0x5f, 0x9e, 0x02, 0xc6, 0x8f, 0xd6, - 0x66, 0x45, 0xb1, 0x24, 0x75, 0xa9, 0xc8, 0x5c, 0x2e, 0x5a, 0x13, 0xf7, 0x7a, 0x1e, 0xad, 0xc1, - 0x39, 0x05, 0xba, 0xe8, 0x27, 0x2c, 0x9f, 0x23, 0x26, 0x75, 0x27, 0x26, 0xd7, 0x23, 0x4f, 0x5c, - 0x4e, 0xab, 0xee, 0x9d, 0x9c, 0x73, 0x93, 0xcb, 0x79, 0x98, 0x78, 0x01, 0xef, 0x41, 0x05, 0x4d, - 0x41, 0x8d, 0xf8, 0xce, 0x9a, 0x47, 0x96, 0x66, 0xe6, 0x59, 0xd1, 0x25, 0xe3, 0x24, 0xef, 0xa2, - 0x04, 0x60, 0x8d, 0xa3, 0x22, 0x4c, 0x47, 0x7a, 0xde, 0x81, 0xba, 0x0c, 0x67, 0x5a, 0x8d, 0x90, - 0xda, 0x1e, 0x6e, 0x83, 0x4c, 0x37, 0x58, 0x40, 0x1d, 0xfd, 0x30, 0xbc, 0x10, 0xa5, 0x0a, 0x9f, - 0x9e, 0x9b, 0x59, 0xee, 0xc2, 0xc1, 0xb9, 0x4f, 0xb2, 0xc0, 0xcb, 0x28, 0xd8, 0xde, 0x19, 0x3f, - 0x9d, 0x09, 0xbc, 0xa4, 0x8d, 0x98, 0xc3, 0xd0, 0x15, 0x40, 0x2c, 0x16, 0xff, 0x72, 0x92, 0x84, - 0xca, 0xd8, 0x19, 0x3f, 0xc3, 0x5e, 0x49, 0x85, 0x91, 0x5d, 0xea, 0xc2, 0xc0, 0x39, 0x4f, 0xd9, - 0xff, 0xc1, 0x82, 0x51, 0xb5, 0x5e, 0xef, 0x41, 0x36, 0x8a, 0x97, 0xce, 0x46, 0x99, 0x3b, 0xba, - 0xc4, 0x63, 0x3d, 0xef, 0x11, 0xd2, 0xfc, 0x99, 0x61, 0x00, 0x2d, 0x15, 0x95, 0x42, 0xb2, 0x7a, - 0x2a, 0xa4, 0x07, 0x56, 0x22, 0xe5, 0x55, 0x58, 0xa9, 0xdc, 0xdf, 0x0a, 0x2b, 0x2b, 0x70, 0x56, - 0x9a, 0x0b, 0xfc, 0xac, 0xe8, 0x72, 0x10, 0x2b, 0x01, 0x57, 0xad, 0x3f, 0x26, 0x08, 0x9d, 0x9d, - 0xcf, 0x43, 0xc2, 0xf9, 0xcf, 0xa6, 0xac, 0x94, 0xa1, 0xfd, 0xac, 0x14, 0xbd, 0xa6, 0x17, 0xd6, - 0xe5, 0xed, 0x21, 0x99, 0x35, 0xbd, 0x70, 0x69, 0x05, 0x6b, 0x9c, 0x7c, 0xc1, 0x5e, 0x2b, 0x48, - 0xb0, 0xc3, 0x81, 0x05, 0xbb, 0x14, 0x31, 0xc3, 0x3d, 0x45, 0x8c, 0xf4, 0x49, 0x8f, 0xf4, 0xf4, - 0x49, 0xbf, 0x0f, 0xc6, 0x5c, 0x7f, 0x83, 0x44, 0x6e, 0x42, 0x9a, 0x6c, 0x2d, 0x30, 0xf1, 0x53, - 0xd5, 0x6a, 0x7d, 0x3e, 0x05, 0xc5, 0x19, 0xec, 0xb4, 0x5c, 0x1c, 0xeb, 0x43, 0x2e, 0xf6, 0xd0, - 0x46, 0x27, 0x8a, 0xd1, 0x46, 0x27, 0x8f, 0xae, 0x8d, 0x4e, 0x1d, 0xab, 0x36, 0x42, 0x85, 0x68, - 0xa3, 0xbe, 0x04, 0xbd, 0xb1, 0xfd, 0x3b, 0xb3, 0xcf, 0xf6, 0xaf, 0x97, 0x2a, 0x3a, 0x7b, 0x68, - 0x55, 0x94, 0xaf, 0x65, 0x1e, 0x3a, 0x94, 0x96, 0xf9, 0x6c, 0x09, 0xce, 0x6a, 0x39, 0x4c, 0x67, - 0xbf, 0xbb, 0x4e, 0x25, 0x11, 0xbb, 0x80, 0x8a, 0x9f, 0xdb, 0x18, 0xc9, 0x51, 0x3a, 0xcf, 0x4a, - 0x41, 0xb0, 0x81, 0xc5, 0x72, 0x8c, 0x48, 0xc4, 0xca, 0xed, 0x66, 0x85, 0xf4, 0x8c, 0x68, 0xc7, - 0x0a, 0x83, 0xce, 0x2f, 0xfa, 0x5b, 0xe4, 0x6d, 0x66, 0x8b, 0xca, 0xcd, 0x68, 0x10, 0x36, 0xf1, - 0xd0, 0x53, 0x9c, 0x09, 0x13, 0x10, 0x54, 0x50, 0x8f, 0x88, 0x9b, 0x71, 0xa5, 0x4c, 0x50, 0x50, - 0xd9, 0x1d, 0x96, 0x4c, 0x56, 0xe9, 0xee, 0x0e, 0x0b, 0x81, 0x52, 0x18, 0xf6, 0xff, 0xb4, 0xe0, - 0x91, 0xdc, 0xa1, 0xb8, 0x07, 0xca, 0x77, 0x3b, 0xad, 0x7c, 0x57, 0x8a, 0xda, 0x6e, 0x18, 0x6f, - 0xd1, 0x43, 0x11, 0xff, 0x3b, 0x0b, 0xc6, 0x34, 0xfe, 0x3d, 0x78, 0x55, 0x37, 0xfd, 0xaa, 0xc5, - 0xed, 0xac, 0x6a, 0x5d, 0xef, 0xf6, 0xdb, 0x25, 0x50, 0x85, 0x1e, 0xa7, 0x1b, 0xb2, 0x8c, 0xee, - 0x3e, 0x27, 0x89, 0x3b, 0x30, 0xc8, 0x0e, 0x42, 0xe3, 0x62, 0x82, 0x3c, 0xd2, 0xfc, 0xd9, 0xa1, - 0xaa, 0x3e, 0x64, 0x66, 0x7f, 0x63, 0x2c, 0x18, 0xb2, 0x62, 0xd0, 0x6e, 0x4c, 0xa5, 0x79, 0x53, - 0xa4, 0x65, 0xe9, 0x62, 0xd0, 0xa2, 0x1d, 0x2b, 0x0c, 0xaa, 0x1e, 0xdc, 0x46, 0xe0, 0xcf, 0x78, - 0x4e, 0x2c, 0x6f, 0x5d, 0x54, 0xea, 0x61, 0x5e, 0x02, 0xb0, 0xc6, 0x61, 0x67, 0xa4, 0x6e, 0x1c, - 0x7a, 0xce, 0x8e, 0xb1, 0x7f, 0x36, 0xea, 0x13, 0x28, 0x10, 0x36, 0xf1, 0xec, 0x36, 0x8c, 0xa7, - 0x5f, 0x62, 0x96, 0xac, 0xb3, 0x00, 0xc5, 0xbe, 0x86, 0x73, 0x0a, 0x6a, 0x0e, 0x7b, 0x6a, 0xa1, - 0xe3, 0x64, 0x2f, 0x6d, 0x9f, 0x96, 0x00, 0xac, 0x71, 0xec, 0x5f, 0xb1, 0xe0, 0x74, 0xce, 0xa0, - 0x15, 0x98, 0xf6, 0x96, 0x68, 0x69, 0x93, 0xa7, 0xd8, 0xdf, 0x09, 0x43, 0x4d, 0xb2, 0xee, 0xc8, - 0x10, 0x38, 0x43, 0xb6, 0xcf, 0xf2, 0x66, 0x2c, 0xe1, 0xf6, 0x7f, 0xb7, 0xe0, 0x44, 0xba, 0xaf, - 0x31, 0x4b, 0x25, 0xe1, 0xc3, 0xe4, 0xc6, 0x8d, 0x60, 0x8b, 0x44, 0x3b, 0xf4, 0xcd, 0xad, 0x4c, - 0x2a, 0x49, 0x17, 0x06, 0xce, 0x79, 0x8a, 0x95, 0x79, 0x6d, 0xaa, 0xd1, 0x96, 0x33, 0xf2, 0x46, - 0x91, 0x33, 0x52, 0x7f, 0x4c, 0xf3, 0xb8, 0x5c, 0xb1, 0xc4, 0x26, 0x7f, 0xfb, 0x3b, 0x03, 0xa0, - 0xf2, 0x62, 0x59, 0xfc, 0x51, 0x41, 0xd1, 0x5b, 0x07, 0xcd, 0x20, 0x52, 0x93, 0x61, 0x60, 0xaf, - 0x80, 0x00, 0xee, 0x25, 0x31, 0x5d, 0x97, 0xea, 0x0d, 0x57, 0x35, 0x08, 0x9b, 0x78, 0xb4, 0x27, - 0x9e, 0xbb, 0x45, 0xf8, 0x43, 0x83, 0xe9, 0x9e, 0x2c, 0x48, 0x00, 0xd6, 0x38, 0xb4, 0x27, 0x4d, - 0x77, 0x7d, 0x5d, 0x6c, 0xf9, 0x55, 0x4f, 0xe8, 0xe8, 0x60, 0x06, 0xe1, 0x95, 0xbb, 0x83, 0x4d, - 0x61, 0x05, 0x1b, 0x95, 0xbb, 0x83, 0x4d, 0xcc, 0x20, 0xd4, 0x6e, 0xf3, 0x83, 0xa8, 0xcd, 0x2e, - 0xd5, 0x6f, 0x2a, 0x2e, 0xc2, 0xfa, 0x55, 0x76, 0xdb, 0xb5, 0x6e, 0x14, 0x9c, 0xf7, 0x1c, 0x9d, - 0x81, 0x61, 0x44, 0x9a, 0x6e, 0x23, 0x31, 0xa9, 0x41, 0x7a, 0x06, 0x2e, 0x77, 0x61, 0xe0, 0x9c, - 0xa7, 0xd0, 0x34, 0x9c, 0x90, 0x79, 0xcd, 0xb2, 0x6a, 0xcd, 0x70, 0xba, 0x4a, 0x06, 0x4e, 0x83, - 0x71, 0x16, 0x9f, 0x4a, 0xb5, 0xb6, 0x28, 0x6c, 0xc5, 0x8c, 0x65, 0x43, 0xaa, 0xc9, 0x82, 0x57, - 0x58, 0x61, 0xd8, 0x9f, 0x2c, 0x53, 0x2d, 0xdc, 0xa3, 0xa0, 0xdb, 0x3d, 0x8b, 0x16, 0x4c, 0xcf, - 0xc8, 0x81, 0x3e, 0x66, 0xe4, 0x73, 0x30, 0x72, 0x2b, 0x0e, 0x7c, 0x15, 0x89, 0x57, 0xe9, 0x19, - 0x89, 0x67, 0x60, 0xe5, 0x47, 0xe2, 0x0d, 0x16, 0x15, 0x89, 0x37, 0x74, 0xc8, 0x48, 0xbc, 0xdf, - 0xa9, 0x80, 0xba, 0x42, 0xe4, 0x1a, 0x49, 0x6e, 0x07, 0xd1, 0xa6, 0xeb, 0xb7, 0x58, 0x3e, 0xf8, - 0xd7, 0x2d, 0x18, 0xe1, 0xeb, 0x65, 0xc1, 0xcc, 0xa4, 0x5a, 0x2f, 0xe8, 0x6e, 0x8a, 0x14, 0xb3, - 0xc9, 0x55, 0x83, 0x51, 0xe6, 0xd2, 0x4f, 0x13, 0x84, 0x53, 0x3d, 0x42, 0x1f, 0x03, 0x90, 0xfe, - 0xd1, 0x75, 0x29, 0x32, 0xe7, 0x8b, 0xe9, 0x1f, 0x26, 0xeb, 0xda, 0x06, 0x5e, 0x55, 0x4c, 0xb0, - 0xc1, 0x10, 0x7d, 0x56, 0x67, 0x99, 0xf1, 0x90, 0xfd, 0x8f, 0x1c, 0xcb, 0xd8, 0xf4, 0x93, 0x63, - 0x86, 0x61, 0xc8, 0xf5, 0x5b, 0x74, 0x9e, 0x88, 0x88, 0xa5, 0x77, 0xe4, 0xd5, 0x52, 0x58, 0x08, - 0x9c, 0x66, 0xdd, 0xf1, 0x1c, 0xbf, 0x41, 0xa2, 0x79, 0x8e, 0x6e, 0x5e, 0x75, 0xcd, 0x1a, 0xb0, - 0x24, 0xd4, 0x75, 0xf9, 0x4a, 0xa5, 0x9f, 0xcb, 0x57, 0xce, 0xbd, 0x1f, 0x4e, 0x75, 0x7d, 0xcc, - 0x03, 0xa5, 0x94, 0x1d, 0x3e, 0x1b, 0xcd, 0xfe, 0xe7, 0x83, 0x5a, 0x69, 0x5d, 0x0b, 0x9a, 0xfc, - 0x0a, 0x90, 0x48, 0x7f, 0x51, 0x61, 0xe3, 0x16, 0x38, 0x45, 0x8c, 0xeb, 0xb2, 0x55, 0x23, 0x36, - 0x59, 0xd2, 0x39, 0x1a, 0x3a, 0x11, 0xf1, 0x8f, 0x7b, 0x8e, 0x2e, 0x2b, 0x26, 0xd8, 0x60, 0x88, - 0x36, 0x52, 0x39, 0x25, 0x97, 0x8e, 0x9e, 0x53, 0xc2, 0xaa, 0x4c, 0xe5, 0x55, 0xed, 0xff, 0x92, - 0x05, 0x63, 0x7e, 0x6a, 0xe6, 0x16, 0x13, 0x46, 0x9a, 0xbf, 0x2a, 0xf8, 0x0d, 0x54, 0xe9, 0x36, - 0x9c, 0xe1, 0x9f, 0xa7, 0xd2, 0x2a, 0x07, 0x54, 0x69, 0xfa, 0x2e, 0xa1, 0xc1, 0x5e, 0x77, 0x09, - 0x21, 0x5f, 0x5d, 0xa6, 0x36, 0x54, 0xf8, 0x65, 0x6a, 0x90, 0x73, 0x91, 0xda, 0x4d, 0xa8, 0x35, - 0x22, 0xe2, 0x24, 0x87, 0xbc, 0x57, 0x8b, 0x1d, 0xd0, 0xcf, 0x48, 0x02, 0x58, 0xd3, 0xb2, 0xff, - 0xcf, 0x00, 0x9c, 0x94, 0x23, 0x22, 0x43, 0xd0, 0xa9, 0x7e, 0xe4, 0x7c, 0xb5, 0x71, 0xab, 0xf4, - 0xe3, 0x65, 0x09, 0xc0, 0x1a, 0x87, 0xda, 0x63, 0x9d, 0x98, 0x2c, 0x85, 0xc4, 0x5f, 0x70, 0xd7, - 0x62, 0x71, 0xce, 0xa9, 0x16, 0xca, 0x75, 0x0d, 0xc2, 0x26, 0x1e, 0x35, 0xc6, 0xb9, 0x5d, 0x1c, - 0x67, 0xd3, 0x57, 0x84, 0xbd, 0x8d, 0x25, 0x1c, 0xfd, 0x7c, 0x6e, 0x85, 0xd9, 0x62, 0x12, 0xb7, - 0xba, 0x22, 0xef, 0x0f, 0x78, 0x15, 0xe3, 0xdf, 0xb2, 0xe0, 0x2c, 0x6f, 0x95, 0x23, 0x79, 0x3d, - 0x6c, 0x3a, 0x09, 0x89, 0x8b, 0xa9, 0xf8, 0x9e, 0xd3, 0x3f, 0xed, 0xe4, 0xcd, 0x63, 0x8b, 0xf3, - 0x7b, 0x83, 0xde, 0xb0, 0xe0, 0xc4, 0x66, 0xaa, 0xe6, 0x87, 0x54, 0x1d, 0x47, 0x4d, 0xc7, 0x4f, - 0x11, 0xd5, 0x4b, 0x2d, 0xdd, 0x1e, 0xe3, 0x2c, 0x77, 0xfb, 0xcf, 0x2c, 0x30, 0xc5, 0xe8, 0xbd, - 0x2f, 0x15, 0x72, 0x70, 0x53, 0x50, 0x5a, 0x97, 0x95, 0x9e, 0xd6, 0xe5, 0x63, 0x50, 0xee, 0xb8, - 0x4d, 0xb1, 0xbf, 0xd0, 0xa7, 0xaf, 0xf3, 0xb3, 0x98, 0xb6, 0xdb, 0xff, 0xa4, 0xa2, 0xfd, 0x16, - 0x22, 0x2f, 0xea, 0xfb, 0xe2, 0xb5, 0xd7, 0x55, 0xb1, 0x31, 0xfe, 0xe6, 0xd7, 0xba, 0x8a, 0x8d, - 0xfd, 0xe8, 0xc1, 0xd3, 0xde, 0xf8, 0x00, 0xf5, 0xaa, 0x35, 0x36, 0xb4, 0x4f, 0xce, 0xdb, 0x2d, - 0xa8, 0xd2, 0x2d, 0x18, 0x73, 0x40, 0x56, 0x53, 0x9d, 0xaa, 0x5e, 0x16, 0xed, 0x77, 0x77, 0x27, - 0xde, 0x7b, 0xf0, 0x6e, 0xc9, 0xa7, 0xb1, 0xa2, 0x8f, 0x62, 0xa8, 0xd1, 0xdf, 0x2c, 0x3d, 0x4f, - 0x6c, 0xee, 0xae, 0x2b, 0x99, 0x29, 0x01, 0x85, 0xe4, 0xfe, 0x69, 0x3e, 0xc8, 0x87, 0x1a, 0xbb, - 0xb5, 0x96, 0x31, 0xe5, 0x7b, 0xc0, 0x65, 0x95, 0x24, 0x27, 0x01, 0x77, 0x77, 0x27, 0x5e, 0x3c, - 0x38, 0x53, 0xf5, 0x38, 0xd6, 0x2c, 0xec, 0x2f, 0x0f, 0xe8, 0xb9, 0x2b, 0x6a, 0xcc, 0x7d, 0x5f, - 0xcc, 0xdd, 0x17, 0x32, 0x73, 0xf7, 0x7c, 0xd7, 0xdc, 0x1d, 0xd3, 0xb7, 0xab, 0xa6, 0x66, 0xe3, - 0xbd, 0x36, 0x04, 0xf6, 0xf7, 0x37, 0x30, 0x0b, 0xe8, 0xb5, 0x8e, 0x1b, 0x91, 0x78, 0x39, 0xea, - 0xf8, 0xae, 0xdf, 0x62, 0xd3, 0xb1, 0x6a, 0x5a, 0x40, 0x29, 0x30, 0xce, 0xe2, 0xd3, 0x4d, 0x3d, - 0xfd, 0xe6, 0x37, 0x9d, 0x2d, 0x3e, 0xab, 0x8c, 0xb2, 0x5b, 0x2b, 0xa2, 0x1d, 0x2b, 0x0c, 0xfb, - 0x9b, 0xec, 0x2c, 0xdb, 0xc8, 0x0b, 0xa6, 0x73, 0xc2, 0x63, 0xd7, 0x04, 0xf3, 0x9a, 0x5d, 0x6a, - 0x4e, 0xf0, 0xbb, 0x81, 0x39, 0x0c, 0xdd, 0x86, 0xa1, 0x35, 0x7e, 0x4f, 0x5e, 0x31, 0x75, 0xcc, - 0xc5, 0xa5, 0x7b, 0xec, 0x36, 0x14, 0x79, 0x03, 0xdf, 0x5d, 0xfd, 0x13, 0x4b, 0x6e, 0xf6, 0xef, - 0x57, 0xe0, 0x44, 0xe6, 0x22, 0xd9, 0x54, 0xb5, 0xd4, 0xd2, 0xbe, 0xd5, 0x52, 0x3f, 0x0c, 0xd0, - 0x24, 0xa1, 0x17, 0xec, 0x30, 0x73, 0x6c, 0xe0, 0xc0, 0xe6, 0x98, 0xb2, 0xe0, 0x67, 0x15, 0x15, - 0x6c, 0x50, 0x14, 0x85, 0xca, 0x78, 0xf1, 0xd5, 0x4c, 0xa1, 0x32, 0xe3, 0xb6, 0x83, 0xc1, 0x7b, - 0x7b, 0xdb, 0x81, 0x0b, 0x27, 0x78, 0x17, 0x55, 0xf6, 0xed, 0x21, 0x92, 0x6c, 0x59, 0xfe, 0xc2, - 0x6c, 0x9a, 0x0c, 0xce, 0xd2, 0xbd, 0x9f, 0xf7, 0x44, 0xa3, 0x77, 0x41, 0x4d, 0x7e, 0xe7, 0x78, - 0xbc, 0xa6, 0x2b, 0x18, 0xc8, 0x69, 0xc0, 0xee, 0x6f, 0x16, 0x3f, 0xbb, 0x0a, 0x09, 0xc0, 0xfd, - 0x2a, 0x24, 0x60, 0x7f, 0xb1, 0x44, 0xed, 0x78, 0xde, 0x2f, 0x55, 0x13, 0xe7, 0x49, 0x18, 0x74, - 0x3a, 0xc9, 0x46, 0xd0, 0x75, 0xeb, 0xdf, 0x34, 0x6b, 0xc5, 0x02, 0x8a, 0x16, 0x60, 0xa0, 0xa9, - 0xeb, 0x9c, 0x1c, 0xe4, 0x7b, 0x6a, 0x97, 0xa8, 0x93, 0x10, 0xcc, 0xa8, 0xa0, 0x47, 0x61, 0x20, - 0x71, 0x5a, 0x32, 0xe5, 0x8a, 0xa5, 0xd9, 0xae, 0x3a, 0xad, 0x18, 0xb3, 0x56, 0x53, 0x7d, 0x0f, - 0xec, 0xa3, 0xbe, 0x5f, 0x84, 0xd1, 0xd8, 0x6d, 0xf9, 0x4e, 0xd2, 0x89, 0x88, 0x71, 0xcc, 0xa7, - 0x23, 0x37, 0x4c, 0x20, 0x4e, 0xe3, 0xda, 0xbf, 0x31, 0x02, 0x67, 0x56, 0x66, 0x16, 0x65, 0xf5, - 0xee, 0x63, 0xcb, 0x9a, 0xca, 0xe3, 0x71, 0xef, 0xb2, 0xa6, 0x7a, 0x70, 0xf7, 0x8c, 0xac, 0x29, - 0xcf, 0xc8, 0x9a, 0x4a, 0xa7, 0xb0, 0x94, 0x8b, 0x48, 0x61, 0xc9, 0xeb, 0x41, 0x3f, 0x29, 0x2c, - 0xc7, 0x96, 0x46, 0xb5, 0x67, 0x87, 0x0e, 0x94, 0x46, 0xa5, 0x72, 0xcc, 0x0a, 0x49, 0x2e, 0xe8, - 0xf1, 0xa9, 0x72, 0x73, 0xcc, 0x54, 0x7e, 0x0f, 0x4f, 0x9c, 0x11, 0xa2, 0xfe, 0x95, 0xe2, 0x3b, - 0xd0, 0x47, 0x7e, 0x8f, 0xc8, 0xdd, 0x31, 0x73, 0xca, 0x86, 0x8a, 0xc8, 0x29, 0xcb, 0xeb, 0xce, - 0xbe, 0x39, 0x65, 0x2f, 0xc2, 0x68, 0xc3, 0x0b, 0x7c, 0xb2, 0x1c, 0x05, 0x49, 0xd0, 0x08, 0x3c, - 0x61, 0xd6, 0x2b, 0x91, 0x30, 0x63, 0x02, 0x71, 0x1a, 0xb7, 0x57, 0x42, 0x5a, 0xed, 0xa8, 0x09, - 0x69, 0x70, 0x9f, 0x12, 0xd2, 0x7e, 0x46, 0xa7, 0x4e, 0x0f, 0xb3, 0x2f, 0xf2, 0xe1, 0xe2, 0xbf, - 0x48, 0x3f, 0xf9, 0xd3, 0xe8, 0x4d, 0x7e, 0xed, 0x1e, 0x35, 0x8c, 0x67, 0x82, 0x36, 0x35, 0xfc, - 0x46, 0xd8, 0x90, 0xbc, 0x7a, 0x0c, 0x13, 0xf6, 0xe6, 0x8a, 0x66, 0xa3, 0xae, 0xe2, 0xd3, 0x4d, - 0x38, 0xdd, 0x91, 0xa3, 0xa4, 0x76, 0x7f, 0xb5, 0x04, 0x3f, 0xb0, 0x6f, 0x17, 0xd0, 0x6d, 0x80, - 0xc4, 0x69, 0x89, 0x89, 0x2a, 0x0e, 0x4c, 0x8e, 0x18, 0x5e, 0xb9, 0x2a, 0xe9, 0xf1, 0x9a, 0x24, - 0xea, 0x2f, 0x3b, 0x8a, 0x90, 0xbf, 0x59, 0x54, 0x65, 0xe0, 0x75, 0x95, 0x6e, 0xc4, 0x81, 0x47, - 0x30, 0x83, 0x50, 0xf5, 0x1f, 0x91, 0x96, 0xbe, 0x27, 0x5a, 0x7d, 0x3e, 0xcc, 0x5a, 0xb1, 0x80, - 0xa2, 0xe7, 0x61, 0xd8, 0xf1, 0x3c, 0x9e, 0x1f, 0x43, 0x62, 0x71, 0xef, 0x8e, 0xae, 0x21, 0xa7, - 0x41, 0xd8, 0xc4, 0xb3, 0xff, 0xb4, 0x04, 0x13, 0xfb, 0xc8, 0x94, 0xae, 0x8c, 0xbf, 0x4a, 0xdf, - 0x19, 0x7f, 0x22, 0x47, 0x61, 0xb0, 0x47, 0x8e, 0xc2, 0xf3, 0x30, 0x9c, 0x10, 0xa7, 0x2d, 0x02, - 0xb2, 0x84, 0x27, 0x40, 0x9f, 0x00, 0x6b, 0x10, 0x36, 0xf1, 0xa8, 0x14, 0x1b, 0x73, 0x1a, 0x0d, - 0x12, 0xc7, 0x32, 0x09, 0x41, 0x78, 0x53, 0x0b, 0xcb, 0x70, 0x60, 0x4e, 0xea, 0xe9, 0x14, 0x0b, - 0x9c, 0x61, 0x99, 0x1d, 0xf0, 0x5a, 0x9f, 0x03, 0xfe, 0x8d, 0x12, 0x3c, 0xb6, 0xa7, 0x76, 0xeb, - 0x3b, 0x3f, 0xa4, 0x13, 0x93, 0x28, 0x3b, 0x71, 0xae, 0xc7, 0x24, 0xc2, 0x0c, 0xc2, 0x47, 0x29, - 0x0c, 0x8d, 0x7b, 0xb8, 0x8b, 0x4e, 0x5e, 0xe2, 0xa3, 0x94, 0x62, 0x81, 0x33, 0x2c, 0x0f, 0x3b, - 0x2d, 0xff, 0x5e, 0x09, 0x9e, 0xe8, 0xc3, 0x06, 0x28, 0x30, 0xc9, 0x2b, 0x9d, 0x6a, 0x57, 0xbe, - 0x4f, 0x19, 0x91, 0x87, 0x1c, 0xae, 0x6f, 0x96, 0xe0, 0x5c, 0x6f, 0x55, 0x8c, 0x7e, 0x0c, 0x4e, - 0x44, 0x2a, 0x0a, 0xcb, 0xcc, 0xd2, 0x3b, 0xcd, 0x3d, 0x09, 0x29, 0x10, 0xce, 0xe2, 0xa2, 0x49, - 0x80, 0xd0, 0x49, 0x36, 0xe2, 0x8b, 0xdb, 0x6e, 0x9c, 0x88, 0x2a, 0x34, 0x63, 0xfc, 0xec, 0x4a, - 0xb6, 0x62, 0x03, 0x83, 0xb2, 0x63, 0xff, 0x66, 0x83, 0x6b, 0x41, 0xc2, 0x1f, 0xe2, 0xdb, 0x88, - 0xd3, 0xf2, 0xce, 0x0e, 0x03, 0x84, 0xb3, 0xb8, 0x94, 0x1d, 0x3b, 0x1d, 0xe5, 0x1d, 0xe5, 0xfb, - 0x0b, 0xc6, 0x6e, 0x41, 0xb5, 0x62, 0x03, 0x23, 0x9b, 0x7f, 0x58, 0xd9, 0x3f, 0xff, 0xd0, 0xfe, - 0xc7, 0x25, 0x78, 0xa4, 0xa7, 0x29, 0xd7, 0xdf, 0x02, 0x7c, 0xf0, 0x72, 0x06, 0x0f, 0x37, 0x77, - 0x0e, 0x98, 0xdb, 0xf6, 0xc7, 0x3d, 0x66, 0x9a, 0xc8, 0x6d, 0x3b, 0x7c, 0x72, 0xf8, 0x83, 0x37, - 0x9e, 0x5d, 0xe9, 0x6c, 0x03, 0x07, 0x48, 0x67, 0xcb, 0x7c, 0x8c, 0x4a, 0x9f, 0x0b, 0xf9, 0xcf, - 0xcb, 0x3d, 0x87, 0x97, 0x6e, 0xfd, 0xfa, 0xf2, 0xd3, 0xce, 0xc2, 0x49, 0xd7, 0x67, 0xf7, 0x37, - 0xad, 0x74, 0xd6, 0x44, 0x61, 0x92, 0x52, 0xfa, 0x96, 0xf5, 0xf9, 0x0c, 0x1c, 0x77, 0x3d, 0xf1, - 0x00, 0xa6, 0x17, 0x1e, 0x6e, 0x48, 0x0f, 0x96, 0xe0, 0x8a, 0x96, 0xe0, 0xac, 0x1c, 0x8a, 0x0d, - 0x27, 0x22, 0x4d, 0xa1, 0x46, 0x62, 0x91, 0x50, 0xf1, 0x08, 0x4f, 0xca, 0xc8, 0x41, 0xc0, 0xf9, - 0xcf, 0xb1, 0x2b, 0x73, 0x82, 0xd0, 0x6d, 0x88, 0x4d, 0x8e, 0xbe, 0x32, 0x87, 0x36, 0x62, 0x0e, - 0xb3, 0x3f, 0x0c, 0x35, 0xf5, 0xfe, 0x3c, 0xac, 0x5b, 0x4d, 0xba, 0xae, 0xb0, 0x6e, 0x35, 0xe3, - 0x0c, 0x2c, 0xfa, 0xb5, 0xa8, 0x49, 0x9c, 0x59, 0x3d, 0x57, 0xc9, 0x0e, 0xb3, 0x8f, 0xed, 0x77, - 0xc3, 0x88, 0xf2, 0xb3, 0xf4, 0x7b, 0x91, 0x90, 0xfd, 0xe5, 0x41, 0x18, 0x4d, 0x15, 0x07, 0x4c, - 0x39, 0x58, 0xad, 0x7d, 0x1d, 0xac, 0x2c, 0x4c, 0xbf, 0xe3, 0xcb, 0x5b, 0xc6, 0x8c, 0x30, 0xfd, - 0x8e, 0x4f, 0x30, 0x87, 0x51, 0xf3, 0xb6, 0x19, 0xed, 0xe0, 0x8e, 0x2f, 0xc2, 0x69, 0x95, 0x79, - 0x3b, 0xcb, 0x5a, 0xb1, 0x80, 0xa2, 0x4f, 0x58, 0x30, 0x12, 0x33, 0xef, 0x3d, 0x77, 0x4f, 0x8b, - 0x49, 0x77, 0xe5, 0xe8, 0xb5, 0x0f, 0x55, 0x21, 0x4c, 0x16, 0x21, 0x63, 0xb6, 0xe0, 0x14, 0x47, - 0xf4, 0x69, 0x0b, 0x6a, 0xea, 0x32, 0x14, 0x71, 0x65, 0xe0, 0x4a, 0xb1, 0xb5, 0x17, 0xb9, 0x5f, - 0x53, 0x1d, 0x84, 0xa8, 0x22, 0x78, 0x58, 0x33, 0x46, 0xb1, 0xf2, 0x1d, 0x0f, 0x1d, 0x8f, 0xef, - 0x18, 0x72, 0xfc, 0xc6, 0xef, 0x82, 0x5a, 0xdb, 0xf1, 0xdd, 0x75, 0x12, 0x27, 0xdc, 0x9d, 0x2b, - 0x4b, 0xc2, 0xca, 0x46, 0xac, 0xe1, 0x54, 0x21, 0xc7, 0xec, 0xc5, 0x12, 0xc3, 0xff, 0xca, 0x14, - 0xf2, 0x8a, 0x6e, 0xc6, 0x26, 0x8e, 0xe9, 0x2c, 0x86, 0xfb, 0xea, 0x2c, 0x1e, 0xde, 0xdb, 0x59, - 0x6c, 0xff, 0x03, 0x0b, 0xce, 0xe6, 0x7e, 0xb5, 0x07, 0x37, 0xf0, 0xd1, 0xfe, 0x4a, 0x05, 0x4e, - 0xe7, 0x54, 0xf9, 0x44, 0x3b, 0xe6, 0x7c, 0xb6, 0x8a, 0x88, 0x21, 0x48, 0x1f, 0x89, 0xcb, 0x61, - 0xcc, 0x99, 0xc4, 0x07, 0x3b, 0xaa, 0xd1, 0xc7, 0x25, 0xe5, 0x7b, 0x7b, 0x5c, 0x62, 0x4c, 0xcb, - 0x81, 0xfb, 0x3a, 0x2d, 0x2b, 0xfb, 0x9c, 0x61, 0xfc, 0xaa, 0x05, 0xe3, 0xed, 0x1e, 0xa5, 0xe5, - 0x85, 0xe3, 0xf1, 0xc6, 0xf1, 0x14, 0xae, 0xaf, 0x3f, 0x7a, 0x67, 0x77, 0xa2, 0x67, 0x45, 0x7f, - 0xdc, 0xb3, 0x57, 0xf6, 0x77, 0xca, 0xc0, 0x4a, 0xcc, 0xb2, 0x4a, 0x6e, 0x3b, 0xe8, 0xe3, 0x66, - 0xb1, 0x60, 0xab, 0xa8, 0xc2, 0xb6, 0x9c, 0xb8, 0x2a, 0x36, 0xcc, 0x47, 0x30, 0xaf, 0xf6, 0x70, - 0x56, 0x68, 0x95, 0xfa, 0x10, 0x5a, 0x9e, 0xac, 0xca, 0x5c, 0x2e, 0xbe, 0x2a, 0x73, 0x2d, 0x5b, - 0x91, 0x79, 0xef, 0x4f, 0x3c, 0xf0, 0x40, 0x7e, 0xe2, 0x5f, 0xb0, 0xb8, 0xe0, 0xc9, 0x7c, 0x05, - 0x6d, 0x19, 0x58, 0x7b, 0x58, 0x06, 0x4f, 0x43, 0x35, 0x26, 0xde, 0xfa, 0x65, 0xe2, 0x78, 0xc2, - 0x82, 0xd0, 0xe7, 0xd7, 0xa2, 0x1d, 0x2b, 0x0c, 0x76, 0x6d, 0xab, 0xe7, 0x05, 0xb7, 0x2f, 0xb6, - 0xc3, 0x64, 0x47, 0xd8, 0x12, 0xfa, 0xda, 0x56, 0x05, 0xc1, 0x06, 0x96, 0xfd, 0x37, 0x4b, 0x7c, - 0x06, 0x8a, 0x20, 0x88, 0x17, 0x32, 0x17, 0xed, 0xf5, 0x1f, 0x3f, 0xf0, 0x51, 0x80, 0x86, 0xba, - 0xca, 0x5e, 0x9c, 0x09, 0x5d, 0x3e, 0xf2, 0x3d, 0xdb, 0x82, 0x9e, 0x7e, 0x0d, 0xdd, 0x86, 0x0d, - 0x7e, 0x29, 0x59, 0x5a, 0xde, 0x57, 0x96, 0xa6, 0xc4, 0xca, 0xc0, 0x3e, 0xda, 0xee, 0x4f, 0x2d, - 0x48, 0x59, 0x44, 0x28, 0x84, 0x0a, 0xed, 0xee, 0x4e, 0x31, 0xb7, 0xf4, 0x9b, 0xa4, 0xa9, 0x68, - 0x14, 0xd3, 0x9e, 0xfd, 0xc4, 0x9c, 0x11, 0xf2, 0x44, 0xac, 0x04, 0x1f, 0xd5, 0x6b, 0xc5, 0x31, - 0xbc, 0x1c, 0x04, 0x9b, 0xfc, 0x60, 0x53, 0xc7, 0x5d, 0xd8, 0x2f, 0xc0, 0xa9, 0xae, 0x4e, 0xb1, - 0x3b, 0xb5, 0x02, 0xaa, 0x7d, 0x32, 0xd3, 0x95, 0x25, 0x70, 0x62, 0x0e, 0xb3, 0xbf, 0x69, 0xc1, - 0xc9, 0x2c, 0x79, 0xf4, 0xa6, 0x05, 0xa7, 0xe2, 0x2c, 0xbd, 0xe3, 0x1a, 0x3b, 0x15, 0xef, 0xd8, - 0x05, 0xc2, 0xdd, 0x9d, 0xb0, 0xff, 0xaf, 0x98, 0xfc, 0x37, 0x5d, 0xbf, 0x19, 0xdc, 0x56, 0x86, - 0x89, 0xd5, 0xd3, 0x30, 0xa1, 0xeb, 0xb1, 0xb1, 0x41, 0x9a, 0x1d, 0xaf, 0x2b, 0x73, 0x74, 0x45, - 0xb4, 0x63, 0x85, 0xc1, 0x12, 0xe5, 0x3a, 0xa2, 0x6c, 0x7b, 0x66, 0x52, 0xce, 0x8a, 0x76, 0xac, - 0x30, 0xd0, 0x73, 0x30, 0x62, 0xbc, 0xa4, 0x9c, 0x97, 0xcc, 0x20, 0x37, 0x54, 0x66, 0x8c, 0x53, - 0x58, 0x68, 0x12, 0x40, 0x19, 0x39, 0x52, 0x45, 0x32, 0x47, 0x91, 0x92, 0x44, 0x31, 0x36, 0x30, - 0x58, 0x5a, 0xaa, 0xd7, 0x89, 0x99, 0x8f, 0x7f, 0x50, 0x97, 0x12, 0x9d, 0x11, 0x6d, 0x58, 0x41, - 0xa9, 0x34, 0x69, 0x3b, 0x7e, 0xc7, 0xf1, 0xe8, 0x08, 0x89, 0xad, 0x9f, 0x5a, 0x86, 0x8b, 0x0a, - 0x82, 0x0d, 0x2c, 0xfa, 0xc6, 0x89, 0xdb, 0x26, 0x2f, 0x07, 0xbe, 0x8c, 0x53, 0xd3, 0xc7, 0x3e, - 0xa2, 0x1d, 0x2b, 0x0c, 0xfb, 0xbf, 0x5a, 0x70, 0x42, 0x27, 0xb9, 0xf3, 0xdb, 0xb3, 0xcd, 0x9d, - 0xaa, 0xb5, 0xef, 0x4e, 0x35, 0x9d, 0xfd, 0x5b, 0xea, 0x2b, 0xfb, 0xd7, 0x4c, 0xcc, 0x2d, 0xef, - 0x99, 0x98, 0xfb, 0x43, 0xfa, 0x66, 0x56, 0x9e, 0xc1, 0x3b, 0x9c, 0x77, 0x2b, 0x2b, 0xb2, 0x61, - 0xb0, 0xe1, 0xa8, 0x0a, 0x2f, 0x23, 0x7c, 0xef, 0x30, 0x33, 0xcd, 0x90, 0x04, 0xc4, 0x5e, 0x82, - 0x9a, 0x3a, 0xfd, 0x90, 0x1b, 0x55, 0x2b, 0x7f, 0xa3, 0xda, 0x57, 0x82, 0x60, 0x7d, 0xed, 0x5b, - 0xdf, 0x7d, 0xfc, 0x6d, 0xbf, 0xf7, 0xdd, 0xc7, 0xdf, 0xf6, 0x47, 0xdf, 0x7d, 0xfc, 0x6d, 0x9f, - 0xb8, 0xf3, 0xb8, 0xf5, 0xad, 0x3b, 0x8f, 0x5b, 0xbf, 0x77, 0xe7, 0x71, 0xeb, 0x8f, 0xee, 0x3c, - 0x6e, 0x7d, 0xe7, 0xce, 0xe3, 0xd6, 0x97, 0xfe, 0xd3, 0xe3, 0x6f, 0x7b, 0x39, 0x37, 0x50, 0x91, - 0xfe, 0x78, 0xa6, 0xd1, 0x9c, 0xda, 0xba, 0xc0, 0x62, 0xe5, 0xe8, 0xf2, 0x9a, 0x32, 0xe6, 0xd4, - 0x94, 0x5c, 0x5e, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x13, 0x8b, 0x32, 0x8c, 0xdc, 0xe2, 0x00, + // 11089 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x1c, 0xc9, + 0x75, 0x98, 0x66, 0x17, 0x0b, 0xec, 0x3e, 0x7c, 0x90, 0x6c, 0x92, 0x77, 0x38, 0xea, 0xee, 0x40, + 0xcf, 0xd9, 0xa7, 0x73, 0x74, 0x07, 0xf8, 0xa8, 0x3b, 0xf9, 0xa2, 0xb3, 0x25, 0xe3, 0x83, 0x04, + 0x41, 0x02, 0x24, 0xae, 0x01, 0x92, 0xd2, 0xc9, 0xa7, 0xd3, 0x60, 0xb6, 0xb1, 0x18, 0x62, 0x76, + 0x66, 0x6e, 0x66, 0x16, 0x04, 0xce, 0x92, 0x2c, 0x59, 0xb2, 0xad, 0x44, 0x1f, 0xa7, 0x48, 0x49, + 0xf9, 0x9c, 0x58, 0x8a, 0x6c, 0x39, 0xa9, 0xb8, 0x12, 0x55, 0x94, 0xe4, 0x47, 0x9c, 0x38, 0x29, + 0x97, 0xed, 0x54, 0x4a, 0x89, 0x93, 0xb2, 0xcb, 0xe5, 0xb2, 0x94, 0xc4, 0x46, 0x24, 0xa6, 0x52, + 0x49, 0xa5, 0x2a, 0xae, 0x72, 0xe2, 0x1f, 0x09, 0x93, 0x1f, 0xa9, 0xfe, 0xee, 0x99, 0x9d, 0x05, + 0x16, 0xc4, 0x80, 0xa4, 0x94, 0xfb, 0xb7, 0xdb, 0xef, 0xcd, 0x7b, 0x3d, 0x3d, 0xdd, 0xef, 0xbd, + 0x7e, 0xfd, 0xde, 0x6b, 0x58, 0x6c, 0x79, 0xe9, 0x46, 0x67, 0x6d, 0xd2, 0x0d, 0xdb, 0x53, 0x4e, + 0xdc, 0x0a, 0xa3, 0x38, 0xbc, 0xc9, 0x7e, 0x3c, 0xe3, 0x36, 0xa7, 0xb6, 0xce, 0x4d, 0x45, 0x9b, + 0xad, 0x29, 0x27, 0xf2, 0x92, 0x29, 0x27, 0x8a, 0x7c, 0xcf, 0x75, 0x52, 0x2f, 0x0c, 0xa6, 0xb6, + 0x9e, 0x75, 0xfc, 0x68, 0xc3, 0x79, 0x76, 0xaa, 0x45, 0x02, 0x12, 0x3b, 0x29, 0x69, 0x4e, 0x46, + 0x71, 0x98, 0x86, 0xe8, 0xc7, 0x34, 0xb5, 0x49, 0x49, 0x8d, 0xfd, 0x78, 0xd5, 0x6d, 0x4e, 0x6e, + 0x9d, 0x9b, 0x8c, 0x36, 0x5b, 0x93, 0x94, 0xda, 0xa4, 0x41, 0x6d, 0x52, 0x52, 0x3b, 0xf3, 0x8c, + 0xd1, 0x97, 0x56, 0xd8, 0x0a, 0xa7, 0x18, 0xd1, 0xb5, 0xce, 0x3a, 0xfb, 0xc7, 0xfe, 0xb0, 0x5f, + 0x9c, 0xd9, 0x19, 0x7b, 0xf3, 0x85, 0x64, 0xd2, 0x0b, 0x69, 0xf7, 0xa6, 0xdc, 0x30, 0x26, 0x53, + 0x5b, 0x5d, 0x1d, 0x3a, 0x73, 0x51, 0xe3, 0x90, 0xed, 0x94, 0x04, 0x89, 0x17, 0x06, 0xc9, 0x33, + 0xb4, 0x0b, 0x24, 0xde, 0x22, 0xb1, 0xf9, 0x7a, 0x06, 0x42, 0x11, 0xa5, 0xe7, 0x34, 0xa5, 0xb6, + 0xe3, 0x6e, 0x78, 0x01, 0x89, 0x77, 0xf4, 0xe3, 0x6d, 0x92, 0x3a, 0x45, 0x4f, 0x4d, 0xf5, 0x7a, + 0x2a, 0xee, 0x04, 0xa9, 0xd7, 0x26, 0x5d, 0x0f, 0xbc, 0x7b, 0xbf, 0x07, 0x12, 0x77, 0x83, 0xb4, + 0x9d, 0xae, 0xe7, 0xde, 0xd5, 0xeb, 0xb9, 0x4e, 0xea, 0xf9, 0x53, 0x5e, 0x90, 0x26, 0x69, 0x9c, + 0x7f, 0xc8, 0xfe, 0x25, 0x0b, 0x46, 0xa7, 0x6f, 0xac, 0x4c, 0x77, 0xd2, 0x8d, 0xd9, 0x30, 0x58, + 0xf7, 0x5a, 0xe8, 0x79, 0x18, 0x76, 0xfd, 0x4e, 0x92, 0x92, 0xf8, 0x8a, 0xd3, 0x26, 0xe3, 0xd6, + 0x59, 0xeb, 0xa9, 0xc6, 0xcc, 0xc9, 0x6f, 0xee, 0x4e, 0xbc, 0xed, 0xf6, 0xee, 0xc4, 0xf0, 0xac, + 0x06, 0x61, 0x13, 0x0f, 0xfd, 0x30, 0x0c, 0xc5, 0xa1, 0x4f, 0xa6, 0xf1, 0x95, 0xf1, 0x0a, 0x7b, + 0xe4, 0x98, 0x78, 0x64, 0x08, 0xf3, 0x66, 0x2c, 0xe1, 0x14, 0x35, 0x8a, 0xc3, 0x75, 0xcf, 0x27, + 0xe3, 0xd5, 0x2c, 0xea, 0x32, 0x6f, 0xc6, 0x12, 0x6e, 0xff, 0x51, 0x05, 0x60, 0x3a, 0x8a, 0x96, + 0xe3, 0xf0, 0x26, 0x71, 0x53, 0xf4, 0x61, 0xa8, 0xd3, 0x61, 0x6e, 0x3a, 0xa9, 0xc3, 0x3a, 0x36, + 0x7c, 0xee, 0x47, 0x26, 0xf9, 0x5b, 0x4f, 0x9a, 0x6f, 0xad, 0x27, 0x19, 0xc5, 0x9e, 0xdc, 0x7a, + 0x76, 0xf2, 0xea, 0x1a, 0x7d, 0x7e, 0x89, 0xa4, 0xce, 0x0c, 0x12, 0xcc, 0x40, 0xb7, 0x61, 0x45, + 0x15, 0x05, 0x30, 0x90, 0x44, 0xc4, 0x65, 0xef, 0x30, 0x7c, 0x6e, 0x71, 0xf2, 0x30, 0xb3, 0x79, + 0x52, 0xf7, 0x7c, 0x25, 0x22, 0xee, 0xcc, 0x88, 0xe0, 0x3c, 0x40, 0xff, 0x61, 0xc6, 0x07, 0x6d, + 0xc1, 0x60, 0x92, 0x3a, 0x69, 0x27, 0x61, 0x43, 0x31, 0x7c, 0xee, 0x4a, 0x69, 0x1c, 0x19, 0xd5, + 0x99, 0x31, 0xc1, 0x73, 0x90, 0xff, 0xc7, 0x82, 0x9b, 0xfd, 0x27, 0x16, 0x8c, 0x69, 0xe4, 0x45, + 0x2f, 0x49, 0xd1, 0x4f, 0x76, 0x0d, 0xee, 0x64, 0x7f, 0x83, 0x4b, 0x9f, 0x66, 0x43, 0x7b, 0x5c, + 0x30, 0xab, 0xcb, 0x16, 0x63, 0x60, 0xdb, 0x50, 0xf3, 0x52, 0xd2, 0x4e, 0xc6, 0x2b, 0x67, 0xab, + 0x4f, 0x0d, 0x9f, 0xbb, 0x58, 0xd6, 0x7b, 0xce, 0x8c, 0x0a, 0xa6, 0xb5, 0x05, 0x4a, 0x1e, 0x73, + 0x2e, 0xf6, 0xaf, 0x8d, 0x98, 0xef, 0x47, 0x07, 0x1c, 0x3d, 0x0b, 0xc3, 0x49, 0xd8, 0x89, 0x5d, + 0x82, 0x49, 0x14, 0x26, 0xe3, 0xd6, 0xd9, 0x2a, 0x9d, 0x7a, 0x74, 0x52, 0xaf, 0xe8, 0x66, 0x6c, + 0xe2, 0xa0, 0xcf, 0x5b, 0x30, 0xd2, 0x24, 0x49, 0xea, 0x05, 0x8c, 0xbf, 0xec, 0xfc, 0xea, 0xa1, + 0x3b, 0x2f, 0x1b, 0xe7, 0x34, 0xf1, 0x99, 0x53, 0xe2, 0x45, 0x46, 0x8c, 0xc6, 0x04, 0x67, 0xf8, + 0xd3, 0xc5, 0xd9, 0x24, 0x89, 0x1b, 0x7b, 0x11, 0xfd, 0x2f, 0x96, 0x8f, 0x5a, 0x9c, 0x73, 0x1a, + 0x84, 0x4d, 0x3c, 0x14, 0x40, 0x8d, 0x2e, 0xbe, 0x64, 0x7c, 0x80, 0xf5, 0x7f, 0xe1, 0x70, 0xfd, + 0x17, 0x83, 0x4a, 0xd7, 0xb5, 0x1e, 0x7d, 0xfa, 0x2f, 0xc1, 0x9c, 0x0d, 0xfa, 0x9c, 0x05, 0xe3, + 0x42, 0x38, 0x60, 0xc2, 0x07, 0xf4, 0xc6, 0x86, 0x97, 0x12, 0xdf, 0x4b, 0xd2, 0xf1, 0x1a, 0xeb, + 0xc3, 0x54, 0x7f, 0x73, 0x6b, 0x3e, 0x0e, 0x3b, 0xd1, 0x65, 0x2f, 0x68, 0xce, 0x9c, 0x15, 0x9c, + 0xc6, 0x67, 0x7b, 0x10, 0xc6, 0x3d, 0x59, 0xa2, 0x2f, 0x59, 0x70, 0x26, 0x70, 0xda, 0x24, 0x89, + 0x1c, 0xfa, 0x69, 0x39, 0x78, 0xc6, 0x77, 0xdc, 0x4d, 0xd6, 0xa3, 0xc1, 0xbb, 0xeb, 0x91, 0x2d, + 0x7a, 0x74, 0xe6, 0x4a, 0x4f, 0xd2, 0x78, 0x0f, 0xb6, 0xe8, 0x6b, 0x16, 0x9c, 0x08, 0xe3, 0x68, + 0xc3, 0x09, 0x48, 0x53, 0x42, 0x93, 0xf1, 0x21, 0xb6, 0xf4, 0x3e, 0x74, 0xb8, 0x4f, 0x74, 0x35, + 0x4f, 0x76, 0x29, 0x0c, 0xbc, 0x34, 0x8c, 0x57, 0x48, 0x9a, 0x7a, 0x41, 0x2b, 0x99, 0x39, 0x7d, + 0x7b, 0x77, 0xe2, 0x44, 0x17, 0x16, 0xee, 0xee, 0x0f, 0xfa, 0x29, 0x18, 0x4e, 0x76, 0x02, 0xf7, + 0x86, 0x17, 0x34, 0xc3, 0x5b, 0xc9, 0x78, 0xbd, 0x8c, 0xe5, 0xbb, 0xa2, 0x08, 0x8a, 0x05, 0xa8, + 0x19, 0x60, 0x93, 0x5b, 0xf1, 0x87, 0xd3, 0x53, 0xa9, 0x51, 0xf6, 0x87, 0xd3, 0x93, 0x69, 0x0f, + 0xb6, 0xe8, 0xe7, 0x2d, 0x18, 0x4d, 0xbc, 0x56, 0xe0, 0xa4, 0x9d, 0x98, 0x5c, 0x26, 0x3b, 0xc9, + 0x38, 0xb0, 0x8e, 0x5c, 0x3a, 0xe4, 0xa8, 0x18, 0x24, 0x67, 0x4e, 0x8b, 0x3e, 0x8e, 0x9a, 0xad, + 0x09, 0xce, 0xf2, 0x2d, 0x5a, 0x68, 0x7a, 0x5a, 0x0f, 0x97, 0xbb, 0xd0, 0xf4, 0xa4, 0xee, 0xc9, + 0x12, 0xfd, 0x04, 0x1c, 0xe7, 0x4d, 0x6a, 0x64, 0x93, 0xf1, 0x11, 0x26, 0x68, 0x4f, 0xdd, 0xde, + 0x9d, 0x38, 0xbe, 0x92, 0x83, 0xe1, 0x2e, 0x6c, 0xf4, 0x1a, 0x4c, 0x44, 0x24, 0x6e, 0x7b, 0xe9, + 0xd5, 0xc0, 0xdf, 0x91, 0xe2, 0xdb, 0x0d, 0x23, 0xd2, 0x14, 0xdd, 0x49, 0xc6, 0x47, 0xcf, 0x5a, + 0x4f, 0xd5, 0x67, 0xde, 0x21, 0xba, 0x39, 0xb1, 0xbc, 0x37, 0x3a, 0xde, 0x8f, 0x9e, 0xfd, 0xaf, + 0x2a, 0x70, 0x3c, 0xaf, 0x38, 0xd1, 0xdf, 0xb6, 0xe0, 0xd8, 0xcd, 0x5b, 0xe9, 0x6a, 0xb8, 0x49, + 0x82, 0x64, 0x66, 0x87, 0x8a, 0x37, 0xa6, 0x32, 0x86, 0xcf, 0xb9, 0xe5, 0xaa, 0xe8, 0xc9, 0x4b, + 0x59, 0x2e, 0xe7, 0x83, 0x34, 0xde, 0x99, 0x79, 0x58, 0xbc, 0xdd, 0xb1, 0x4b, 0x37, 0x56, 0x4d, + 0x28, 0xce, 0x77, 0xea, 0xcc, 0x67, 0x2c, 0x38, 0x55, 0x44, 0x02, 0x1d, 0x87, 0xea, 0x26, 0xd9, + 0xe1, 0x06, 0x1c, 0xa6, 0x3f, 0xd1, 0x2b, 0x50, 0xdb, 0x72, 0xfc, 0x0e, 0x11, 0xd6, 0xcd, 0xfc, + 0xe1, 0x5e, 0x44, 0xf5, 0x0c, 0x73, 0xaa, 0xef, 0xa9, 0xbc, 0x60, 0xd9, 0xbf, 0x57, 0x85, 0x61, + 0x43, 0xbf, 0xdd, 0x03, 0x8b, 0x2d, 0xcc, 0x58, 0x6c, 0x4b, 0xa5, 0xa9, 0xe6, 0x9e, 0x26, 0xdb, + 0xad, 0x9c, 0xc9, 0x76, 0xb5, 0x3c, 0x96, 0x7b, 0xda, 0x6c, 0x28, 0x85, 0x46, 0x18, 0x51, 0xeb, + 0x9d, 0xaa, 0xfe, 0x81, 0x32, 0x3e, 0xe1, 0x55, 0x49, 0x6e, 0x66, 0xf4, 0xf6, 0xee, 0x44, 0x43, + 0xfd, 0xc5, 0x9a, 0x91, 0xfd, 0x2d, 0x0b, 0x4e, 0x19, 0x7d, 0x9c, 0x0d, 0x83, 0xa6, 0xc7, 0x3e, + 0xed, 0x59, 0x18, 0x48, 0x77, 0x22, 0xb9, 0x43, 0x50, 0x23, 0xb5, 0xba, 0x13, 0x11, 0xcc, 0x20, + 0xd4, 0xd0, 0x6f, 0x93, 0x24, 0x71, 0x5a, 0x24, 0xbf, 0x27, 0x58, 0xe2, 0xcd, 0x58, 0xc2, 0x51, + 0x0c, 0xc8, 0x77, 0x92, 0x74, 0x35, 0x76, 0x82, 0x84, 0x91, 0x5f, 0xf5, 0xda, 0x44, 0x0c, 0xf0, + 0x5f, 0xe8, 0x6f, 0xc6, 0xd0, 0x27, 0x66, 0x1e, 0xba, 0xbd, 0x3b, 0x81, 0x16, 0xbb, 0x28, 0xe1, + 0x02, 0xea, 0xf6, 0x97, 0x2c, 0x78, 0xa8, 0xd8, 0x16, 0x43, 0x4f, 0xc2, 0x20, 0xdf, 0x1e, 0x8a, + 0xb7, 0xd3, 0x9f, 0x84, 0xb5, 0x62, 0x01, 0x45, 0x53, 0xd0, 0x50, 0x7a, 0x42, 0xbc, 0xe3, 0x09, + 0x81, 0xda, 0xd0, 0xca, 0x45, 0xe3, 0xd0, 0x41, 0xa3, 0x7f, 0x84, 0xe5, 0xa6, 0x06, 0x8d, 0xed, + 0xa7, 0x18, 0xc4, 0xfe, 0x8f, 0x16, 0x1c, 0x33, 0x7a, 0x75, 0x0f, 0x4c, 0xf3, 0x20, 0x6b, 0x9a, + 0x2f, 0x94, 0x36, 0x9f, 0x7b, 0xd8, 0xe6, 0x9f, 0xb3, 0xe0, 0x8c, 0x81, 0xb5, 0xe4, 0xa4, 0xee, + 0xc6, 0xf9, 0xed, 0x28, 0x26, 0x09, 0xdd, 0x7a, 0xa3, 0xc7, 0x0c, 0xb9, 0x35, 0x33, 0x2c, 0x28, + 0x54, 0x2f, 0x93, 0x1d, 0x2e, 0xc4, 0x9e, 0x86, 0x3a, 0x9f, 0x9c, 0x61, 0x2c, 0x46, 0x5c, 0xbd, + 0xdb, 0x55, 0xd1, 0x8e, 0x15, 0x06, 0xb2, 0x61, 0x90, 0x09, 0x27, 0xba, 0x58, 0xa9, 0x1a, 0x02, + 0xfa, 0x11, 0xaf, 0xb3, 0x16, 0x2c, 0x20, 0x76, 0x92, 0xe9, 0xce, 0x72, 0x4c, 0xd8, 0xc7, 0x6d, + 0x5e, 0xf0, 0x88, 0xdf, 0x4c, 0xe8, 0xb6, 0xc1, 0x09, 0x82, 0x30, 0x15, 0x3b, 0x00, 0x63, 0xdb, + 0x30, 0xad, 0x9b, 0xb1, 0x89, 0x43, 0x99, 0xfa, 0xce, 0x1a, 0xf1, 0xf9, 0x88, 0x0a, 0xa6, 0x8b, + 0xac, 0x05, 0x0b, 0x88, 0x7d, 0xbb, 0xc2, 0x36, 0x28, 0x6a, 0xe9, 0x93, 0x7b, 0xb1, 0xbb, 0x8d, + 0x33, 0xb2, 0x72, 0xb9, 0x3c, 0xc1, 0x45, 0x7a, 0xef, 0x70, 0x5f, 0xcf, 0x89, 0x4b, 0x5c, 0x2a, + 0xd7, 0xbd, 0x77, 0xb9, 0xbf, 0x55, 0x81, 0x89, 0xec, 0x03, 0x5d, 0xd2, 0x96, 0x6e, 0xa9, 0x0c, + 0x46, 0x79, 0x7f, 0x87, 0x81, 0x8f, 0x4d, 0xbc, 0x1e, 0x02, 0xab, 0x72, 0x94, 0x02, 0xcb, 0x94, + 0xa7, 0xd5, 0x7d, 0xe4, 0xe9, 0x93, 0x6a, 0xd4, 0x07, 0x72, 0x02, 0x2c, 0xab, 0x53, 0xce, 0xc2, + 0x40, 0x92, 0x92, 0x68, 0xbc, 0x96, 0x95, 0x47, 0x2b, 0x29, 0x89, 0x30, 0x83, 0xd8, 0xff, 0xad, + 0x02, 0x0f, 0x67, 0xc7, 0x50, 0xab, 0x80, 0xf7, 0x65, 0x54, 0xc0, 0x3b, 0x4d, 0x15, 0x70, 0x67, + 0x77, 0xe2, 0xed, 0x3d, 0x1e, 0xfb, 0x9e, 0xd1, 0x10, 0x68, 0x3e, 0x37, 0x8a, 0x53, 0xd9, 0x51, + 0xbc, 0xb3, 0x3b, 0xf1, 0x58, 0x8f, 0x77, 0xcc, 0x0d, 0xf3, 0x93, 0x30, 0x18, 0x13, 0x27, 0x09, + 0x03, 0x31, 0xd0, 0xea, 0x73, 0x60, 0xd6, 0x8a, 0x05, 0xd4, 0xfe, 0x83, 0x46, 0x7e, 0xb0, 0xe7, + 0xb9, 0xc3, 0x2e, 0x8c, 0x91, 0x07, 0x03, 0xcc, 0xac, 0xe7, 0xa2, 0xe1, 0xf2, 0xe1, 0x96, 0x11, + 0x55, 0x03, 0x8a, 0xf4, 0x4c, 0x9d, 0x7e, 0x35, 0xda, 0x84, 0x19, 0x0b, 0xb4, 0x0d, 0x75, 0x57, + 0x5a, 0xdb, 0x95, 0x32, 0xfc, 0x52, 0xc2, 0xd6, 0xd6, 0x1c, 0x47, 0xa8, 0xbc, 0x56, 0x26, 0xba, + 0xe2, 0x86, 0x08, 0x54, 0x5b, 0x5e, 0x2a, 0x3e, 0xeb, 0x21, 0xf7, 0x53, 0xf3, 0x9e, 0xf1, 0x8a, + 0x43, 0x54, 0x89, 0xcc, 0x7b, 0x29, 0xa6, 0xf4, 0xd1, 0xcf, 0x5a, 0x30, 0x9c, 0xb8, 0xed, 0xe5, + 0x38, 0xdc, 0xf2, 0x9a, 0x24, 0x16, 0xd6, 0xd4, 0x21, 0x45, 0xd3, 0xca, 0xec, 0x92, 0x24, 0xa8, + 0xf9, 0xf2, 0xfd, 0xad, 0x86, 0x60, 0x93, 0x2f, 0xdd, 0x65, 0x3c, 0x2c, 0xde, 0x7d, 0x8e, 0xb8, + 0x1e, 0xd5, 0x7f, 0x72, 0x53, 0xc5, 0x66, 0xca, 0xa1, 0xad, 0xcb, 0xb9, 0x8e, 0xbb, 0x49, 0xd7, + 0x9b, 0xee, 0xd0, 0xdb, 0x6f, 0xef, 0x4e, 0x3c, 0x3c, 0x5b, 0xcc, 0x13, 0xf7, 0xea, 0x0c, 0x1b, + 0xb0, 0xa8, 0xe3, 0xfb, 0x98, 0xbc, 0xd6, 0x21, 0xcc, 0x65, 0x52, 0xc2, 0x80, 0x2d, 0x6b, 0x82, + 0xb9, 0x01, 0x33, 0x20, 0xd8, 0xe4, 0x8b, 0x5e, 0x83, 0xc1, 0xb6, 0x93, 0xc6, 0xde, 0xb6, 0xf0, + 0x93, 0x1c, 0xd2, 0xde, 0x5f, 0x62, 0xb4, 0x34, 0x73, 0xa6, 0xa9, 0x79, 0x23, 0x16, 0x8c, 0x50, + 0x1b, 0x6a, 0x6d, 0x12, 0xb7, 0xc8, 0x78, 0xbd, 0x0c, 0x9f, 0xf0, 0x12, 0x25, 0xa5, 0x19, 0x36, + 0xa8, 0x75, 0xc4, 0xda, 0x30, 0xe7, 0x82, 0x5e, 0x81, 0x7a, 0x42, 0x7c, 0xe2, 0x52, 0xfb, 0xa6, + 0xc1, 0x38, 0xbe, 0xab, 0x4f, 0x5b, 0x8f, 0x1a, 0x16, 0x2b, 0xe2, 0x51, 0xbe, 0xc0, 0xe4, 0x3f, + 0xac, 0x48, 0xd2, 0x01, 0x8c, 0xfc, 0x4e, 0xcb, 0x0b, 0xc6, 0xa1, 0x8c, 0x01, 0x5c, 0x66, 0xb4, + 0x72, 0x03, 0xc8, 0x1b, 0xb1, 0x60, 0x64, 0xff, 0x67, 0x0b, 0x50, 0x56, 0xa8, 0xdd, 0x03, 0xa3, + 0xf6, 0xb5, 0xac, 0x51, 0xbb, 0x58, 0xa6, 0xd5, 0xd1, 0xc3, 0xae, 0xfd, 0x8d, 0x06, 0xe4, 0xd4, + 0xc1, 0x15, 0x92, 0xa4, 0xa4, 0xf9, 0x96, 0x08, 0x7f, 0x4b, 0x84, 0xbf, 0x25, 0xc2, 0x95, 0x08, + 0x5f, 0xcb, 0x89, 0xf0, 0xf7, 0x1a, 0xab, 0x5e, 0x1f, 0xc0, 0xbe, 0xaa, 0x4e, 0x68, 0xcd, 0x1e, + 0x18, 0x08, 0x54, 0x12, 0x5c, 0x5a, 0xb9, 0x7a, 0xa5, 0x50, 0x66, 0xbf, 0x9a, 0x95, 0xd9, 0x87, + 0x65, 0xf1, 0xff, 0x83, 0x94, 0xfe, 0x97, 0x16, 0xbc, 0x23, 0x2b, 0xbd, 0xe4, 0xcc, 0x59, 0x68, + 0x05, 0x61, 0x4c, 0xe6, 0xbc, 0xf5, 0x75, 0x12, 0x93, 0xc0, 0x25, 0x89, 0xf2, 0x62, 0x58, 0xbd, + 0xbc, 0x18, 0xe8, 0x39, 0x18, 0xb9, 0x99, 0x84, 0xc1, 0x72, 0xe8, 0x05, 0x42, 0x04, 0xd1, 0x8d, + 0xf0, 0xf1, 0xdb, 0xbb, 0x13, 0x23, 0x74, 0x44, 0x65, 0x3b, 0xce, 0x60, 0xa1, 0x59, 0x38, 0x71, + 0xf3, 0xb5, 0x65, 0x27, 0x35, 0xdc, 0x01, 0x72, 0xe3, 0xce, 0x0e, 0x2c, 0x2e, 0xbd, 0x94, 0x03, + 0xe2, 0x6e, 0x7c, 0xfb, 0x6f, 0x54, 0xe0, 0x91, 0xdc, 0x8b, 0x84, 0xbe, 0x1f, 0x76, 0x52, 0xba, + 0xa9, 0x41, 0x5f, 0xb1, 0xe0, 0x78, 0x3b, 0xeb, 0x71, 0x48, 0x84, 0x63, 0xf7, 0xfd, 0xa5, 0xe9, + 0x88, 0x9c, 0x4b, 0x63, 0x66, 0x5c, 0x8c, 0xd0, 0xf1, 0x1c, 0x20, 0xc1, 0x5d, 0x7d, 0x41, 0xaf, + 0x40, 0xa3, 0xed, 0x6c, 0x5f, 0x8b, 0x9a, 0x4e, 0x2a, 0xf7, 0x93, 0xbd, 0xdd, 0x00, 0x9d, 0xd4, + 0xf3, 0x27, 0xf9, 0xd1, 0xfe, 0xe4, 0x42, 0x90, 0x5e, 0x8d, 0x57, 0xd2, 0xd8, 0x0b, 0x5a, 0xdc, + 0x9d, 0xb7, 0x24, 0xc9, 0x60, 0x4d, 0xd1, 0xfe, 0xb2, 0x95, 0x57, 0x52, 0x6a, 0x74, 0x62, 0x27, + 0x25, 0xad, 0x1d, 0xf4, 0x11, 0xa8, 0xd1, 0x8d, 0x9f, 0x1c, 0x95, 0x1b, 0x65, 0x6a, 0x4e, 0xe3, + 0x4b, 0x68, 0x25, 0x4a, 0xff, 0x25, 0x98, 0x33, 0xb5, 0xbf, 0xd2, 0xc8, 0x1b, 0x0b, 0xec, 0xf0, + 0xf6, 0x1c, 0x40, 0x2b, 0x5c, 0x25, 0xed, 0xc8, 0xa7, 0xc3, 0x62, 0xb1, 0x13, 0x00, 0xe5, 0xeb, + 0x98, 0x57, 0x10, 0x6c, 0x60, 0xa1, 0xbf, 0x64, 0x01, 0xb4, 0xe4, 0x9c, 0x97, 0x86, 0xc0, 0xb5, + 0x32, 0x5f, 0x47, 0xaf, 0x28, 0xdd, 0x17, 0xc5, 0x10, 0x1b, 0xcc, 0xd1, 0xcf, 0x58, 0x50, 0x4f, + 0x65, 0xf7, 0xb9, 0x6a, 0x5c, 0x2d, 0xb3, 0x27, 0xf2, 0xa5, 0xb5, 0x4d, 0xa4, 0x86, 0x44, 0xf1, + 0x45, 0x3f, 0x67, 0x01, 0x24, 0x3b, 0x81, 0xbb, 0x1c, 0xfa, 0x9e, 0xbb, 0x23, 0x34, 0xe6, 0xf5, + 0x52, 0xfd, 0x31, 0x8a, 0xfa, 0xcc, 0x18, 0x1d, 0x0d, 0xfd, 0x1f, 0x1b, 0x9c, 0xd1, 0xc7, 0xa0, + 0x9e, 0x88, 0xe9, 0x26, 0x74, 0xe4, 0x6a, 0xb9, 0x5e, 0x21, 0x4e, 0x5b, 0x88, 0x57, 0xf1, 0x0f, + 0x2b, 0x9e, 0xe8, 0x17, 0x2c, 0x38, 0x16, 0x65, 0xfd, 0x7c, 0x42, 0x1d, 0x96, 0x27, 0x03, 0x72, + 0x7e, 0xc4, 0x99, 0x93, 0xb7, 0x77, 0x27, 0x8e, 0xe5, 0x1a, 0x71, 0xbe, 0x17, 0x54, 0x02, 0xea, + 0x19, 0x7c, 0x35, 0xe2, 0x3e, 0xc7, 0x21, 0x2d, 0x01, 0xe7, 0xf3, 0x40, 0xdc, 0x8d, 0x8f, 0x96, + 0xe1, 0x14, 0xed, 0xdd, 0x0e, 0x37, 0x3f, 0xa5, 0x7a, 0x49, 0x98, 0x32, 0xac, 0xcf, 0x3c, 0x2a, + 0x66, 0x08, 0xf3, 0xea, 0xe7, 0x71, 0x70, 0xe1, 0x93, 0xe8, 0xf7, 0x2c, 0x78, 0xd4, 0x63, 0x6a, + 0xc0, 0x74, 0x98, 0x6b, 0x8d, 0x20, 0x4e, 0x62, 0x49, 0xa9, 0xb2, 0xa2, 0x97, 0xfa, 0x99, 0xf9, + 0x41, 0xf1, 0x06, 0x8f, 0x2e, 0xec, 0xd1, 0x25, 0xbc, 0x67, 0x87, 0xd1, 0x8f, 0xc2, 0xa8, 0x5c, + 0x17, 0xcb, 0x54, 0x04, 0x33, 0x45, 0xdb, 0x98, 0x39, 0x71, 0x7b, 0x77, 0x62, 0x74, 0xd5, 0x04, + 0xe0, 0x2c, 0x9e, 0xfd, 0xaf, 0xab, 0x99, 0xf3, 0x10, 0xe5, 0x84, 0x64, 0xe2, 0xc6, 0x95, 0xfe, + 0x1f, 0x29, 0x3d, 0x4b, 0x15, 0x37, 0xca, 0xbb, 0xa4, 0xc5, 0x8d, 0x6a, 0x4a, 0xb0, 0xc1, 0x9c, + 0x1a, 0xa5, 0x27, 0x9c, 0xbc, 0xab, 0x53, 0x48, 0xc0, 0x57, 0xca, 0xec, 0x52, 0xf7, 0xe9, 0xd5, + 0x23, 0xa2, 0x6b, 0x27, 0xba, 0x40, 0xb8, 0xbb, 0x4b, 0xe8, 0xa3, 0xd0, 0x88, 0x55, 0xe8, 0x43, + 0xb5, 0x8c, 0xad, 0x9a, 0x9c, 0x36, 0xa2, 0x3b, 0xea, 0x38, 0x46, 0x07, 0x39, 0x68, 0x8e, 0xf6, + 0xef, 0x66, 0x8f, 0x80, 0x0c, 0xd9, 0xd1, 0xc7, 0xf1, 0xd6, 0xe7, 0x2d, 0x18, 0x8e, 0x43, 0xdf, + 0xf7, 0x82, 0x16, 0x95, 0x73, 0x42, 0x59, 0x7f, 0xf0, 0x48, 0xf4, 0xa5, 0x10, 0x68, 0xcc, 0xb2, + 0xc6, 0x9a, 0x27, 0x36, 0x3b, 0x60, 0xff, 0x89, 0x05, 0xe3, 0xbd, 0xe4, 0x31, 0x22, 0xf0, 0x76, + 0x29, 0x6c, 0xd4, 0x50, 0x5c, 0x0d, 0xe6, 0x88, 0x4f, 0x94, 0xdf, 0xbb, 0x3e, 0xf3, 0x84, 0x78, + 0xcd, 0xb7, 0x2f, 0xf7, 0x46, 0xc5, 0x7b, 0xd1, 0x41, 0x2f, 0xc3, 0x71, 0xe3, 0xbd, 0x12, 0x35, + 0x30, 0x8d, 0x99, 0x49, 0x6a, 0x00, 0x4d, 0xe7, 0x60, 0x77, 0x76, 0x27, 0x1e, 0xca, 0xb7, 0x09, + 0x85, 0xd1, 0x45, 0xc7, 0xfe, 0xd5, 0x4a, 0xfe, 0x6b, 0x29, 0x5d, 0xff, 0xa6, 0xd5, 0xe5, 0x4d, + 0x78, 0xff, 0x51, 0xe8, 0x57, 0xe6, 0x77, 0x50, 0xf1, 0x23, 0xbd, 0x71, 0xee, 0xe3, 0x01, 0xb5, + 0xfd, 0x6f, 0x06, 0x60, 0x8f, 0x9e, 0xf5, 0x61, 0xbc, 0x1f, 0xf8, 0x54, 0xf3, 0xb3, 0x96, 0x3a, + 0xf1, 0xe2, 0x6b, 0xb8, 0x79, 0x54, 0x63, 0xcf, 0xf7, 0x4f, 0x09, 0x0f, 0x92, 0x50, 0x5e, 0xf4, + 0xec, 0xd9, 0x1a, 0xfa, 0xaa, 0x95, 0x3d, 0xb3, 0xe3, 0x51, 0x6f, 0xde, 0x91, 0xf5, 0xc9, 0x38, + 0x08, 0xe4, 0x1d, 0xd3, 0xc7, 0x47, 0xbd, 0x8e, 0x08, 0x27, 0x01, 0xd6, 0xbd, 0xc0, 0xf1, 0xbd, + 0xd7, 0xe9, 0xee, 0xa8, 0xc6, 0x14, 0x3c, 0xb3, 0x98, 0x2e, 0xa8, 0x56, 0x6c, 0x60, 0x9c, 0xf9, + 0x8b, 0x30, 0x6c, 0xbc, 0x79, 0x41, 0x6c, 0xc7, 0x29, 0x33, 0xb6, 0xa3, 0x61, 0x84, 0x64, 0x9c, + 0x79, 0x2f, 0x1c, 0xcf, 0x77, 0xf0, 0x20, 0xcf, 0xdb, 0xff, 0x6b, 0x28, 0x7f, 0x88, 0xb6, 0x4a, + 0xe2, 0x36, 0xed, 0xda, 0x5b, 0x8e, 0xad, 0xb7, 0x1c, 0x5b, 0x6f, 0x39, 0xb6, 0xcc, 0xb3, 0x09, + 0xe1, 0xb4, 0x19, 0xba, 0x47, 0x4e, 0x9b, 0x8c, 0x1b, 0xaa, 0x5e, 0xba, 0x1b, 0xca, 0xfe, 0xd9, + 0x2e, 0xcf, 0xfd, 0x6a, 0x4c, 0x08, 0x0a, 0xa1, 0x16, 0x84, 0x4d, 0x22, 0x6d, 0xdc, 0x4b, 0xe5, + 0x18, 0x6c, 0x57, 0xc2, 0xa6, 0x11, 0x4f, 0x4c, 0xff, 0x25, 0x98, 0xf3, 0xb1, 0x6f, 0xd7, 0x20, + 0x63, 0x4e, 0xf2, 0xef, 0xfe, 0xc3, 0x30, 0x14, 0x93, 0x28, 0xbc, 0x86, 0x17, 0x85, 0x2e, 0xd3, + 0x29, 0x07, 0xbc, 0x19, 0x4b, 0x38, 0xd5, 0x79, 0x91, 0x93, 0x6e, 0x08, 0x65, 0xa6, 0x74, 0xde, + 0xb2, 0x93, 0x6e, 0x60, 0x06, 0x41, 0xef, 0x85, 0xb1, 0xd4, 0x89, 0x5b, 0x74, 0xdb, 0xb1, 0xc5, + 0xa6, 0x97, 0x38, 0xf2, 0x7d, 0x48, 0xe0, 0x8e, 0xad, 0x66, 0xa0, 0x38, 0x87, 0x8d, 0x5e, 0x83, + 0x81, 0x0d, 0xe2, 0xb7, 0xc5, 0xa7, 0x5f, 0x29, 0x4f, 0xd7, 0xb0, 0x77, 0xbd, 0x48, 0xfc, 0x36, + 0x97, 0x84, 0xf4, 0x17, 0x66, 0xac, 0xe8, 0xbc, 0x6f, 0x6c, 0x76, 0x92, 0x34, 0x6c, 0x7b, 0xaf, + 0x4b, 0x4f, 0xe7, 0xfb, 0x4b, 0x66, 0x7c, 0x59, 0xd2, 0xe7, 0x2e, 0x25, 0xf5, 0x17, 0x6b, 0xce, + 0xac, 0x1f, 0x4d, 0x2f, 0x66, 0x53, 0x66, 0x47, 0x38, 0x2c, 0xcb, 0xee, 0xc7, 0x9c, 0xa4, 0xcf, + 0xfb, 0xa1, 0xfe, 0x62, 0xcd, 0x19, 0xed, 0xa8, 0xf5, 0x37, 0xcc, 0xfa, 0x70, 0xad, 0xe4, 0x3e, + 0xf0, 0xb5, 0x57, 0xb8, 0x0e, 0x9f, 0x80, 0x9a, 0xbb, 0xe1, 0xc4, 0xe9, 0xf8, 0x08, 0x9b, 0x34, + 0x6a, 0x16, 0xcf, 0xd2, 0x46, 0xcc, 0x61, 0xe8, 0x31, 0xa8, 0xc6, 0x64, 0x9d, 0x85, 0xaf, 0x1a, + 0x81, 0x4d, 0x98, 0xac, 0x63, 0xda, 0x6e, 0xff, 0x72, 0x25, 0x6b, 0xb6, 0x65, 0xdf, 0x9b, 0xcf, + 0x76, 0xb7, 0x13, 0x27, 0xd2, 0xfd, 0x65, 0xcc, 0x76, 0xd6, 0x8c, 0x25, 0x1c, 0x7d, 0xc2, 0x82, + 0xa1, 0x9b, 0x49, 0x18, 0x04, 0x24, 0x15, 0x2a, 0xf2, 0x7a, 0xc9, 0x43, 0x71, 0x89, 0x53, 0xd7, + 0x7d, 0x10, 0x0d, 0x58, 0xf2, 0xa5, 0xdd, 0x25, 0xdb, 0xae, 0xdf, 0x69, 0x76, 0xc5, 0xaa, 0x9c, + 0xe7, 0xcd, 0x58, 0xc2, 0x29, 0xaa, 0x17, 0x70, 0xd4, 0x81, 0x2c, 0xea, 0x42, 0x20, 0x50, 0x05, + 0xdc, 0xfe, 0x6b, 0x83, 0x70, 0xba, 0x70, 0x71, 0x50, 0x83, 0x8a, 0x99, 0x2c, 0x17, 0x3c, 0x9f, + 0xc8, 0x28, 0x2d, 0x66, 0x50, 0x5d, 0x57, 0xad, 0xd8, 0xc0, 0x40, 0x3f, 0x0d, 0x10, 0x39, 0xb1, + 0xd3, 0x26, 0xca, 0x3d, 0x7d, 0x68, 0xbb, 0x85, 0xf6, 0x63, 0x59, 0xd2, 0xd4, 0x5b, 0x74, 0xd5, + 0x94, 0x60, 0x83, 0x25, 0x7a, 0x1e, 0x86, 0x63, 0xe2, 0x13, 0x27, 0x61, 0xd1, 0xcf, 0xf9, 0x54, + 0x0e, 0xac, 0x41, 0xd8, 0xc4, 0x43, 0x4f, 0xaa, 0x80, 0xb6, 0x5c, 0x60, 0x4f, 0x36, 0xa8, 0x0d, + 0xbd, 0x61, 0xc1, 0xd8, 0xba, 0xe7, 0x13, 0xcd, 0x5d, 0x24, 0x5e, 0x5c, 0x3d, 0xfc, 0x4b, 0x5e, + 0x30, 0xe9, 0x6a, 0x09, 0x99, 0x69, 0x4e, 0x70, 0x8e, 0x3d, 0xfd, 0xcc, 0x5b, 0x24, 0x66, 0xa2, + 0x75, 0x30, 0xfb, 0x99, 0xaf, 0xf3, 0x66, 0x2c, 0xe1, 0x68, 0x1a, 0x8e, 0x45, 0x4e, 0x92, 0xcc, + 0xc6, 0xa4, 0x49, 0x82, 0xd4, 0x73, 0x7c, 0x9e, 0x16, 0x51, 0xd7, 0x61, 0xd1, 0xcb, 0x59, 0x30, + 0xce, 0xe3, 0xa3, 0x0f, 0xc0, 0xc3, 0xdc, 0xff, 0xb3, 0xe4, 0x25, 0x89, 0x17, 0xb4, 0xf4, 0x34, + 0x10, 0x6e, 0xb0, 0x09, 0x41, 0xea, 0xe1, 0x85, 0x62, 0x34, 0xdc, 0xeb, 0x79, 0xf4, 0x34, 0xd4, + 0x93, 0x4d, 0x2f, 0x9a, 0x8d, 0x9b, 0x09, 0x3b, 0xfb, 0xa9, 0x6b, 0xa7, 0xeb, 0x8a, 0x68, 0xc7, + 0x0a, 0x03, 0xb9, 0x30, 0xc2, 0x3f, 0x09, 0x8f, 0xc8, 0x13, 0xf2, 0xf1, 0x99, 0x9e, 0x6a, 0x5a, + 0x64, 0xf9, 0x4d, 0x62, 0xe7, 0xd6, 0x79, 0x79, 0x12, 0xc5, 0x0f, 0x4e, 0xae, 0x1b, 0x64, 0x70, + 0x86, 0xa8, 0xfd, 0x8b, 0x95, 0xec, 0xce, 0xdf, 0x5c, 0xa4, 0x28, 0xa1, 0x4b, 0x31, 0xbd, 0xee, + 0xc4, 0x52, 0x61, 0x1f, 0x32, 0x7b, 0x43, 0xd0, 0xbd, 0xee, 0xc4, 0xe6, 0xa2, 0x66, 0x0c, 0xb0, + 0xe4, 0x84, 0x6e, 0xc2, 0x40, 0xea, 0x3b, 0x25, 0xa5, 0x7b, 0x19, 0x1c, 0xb5, 0x23, 0x66, 0x71, + 0x3a, 0xc1, 0x8c, 0x07, 0x7a, 0x94, 0xee, 0x3e, 0xd6, 0xe4, 0x49, 0x91, 0xd8, 0x30, 0xac, 0x25, + 0x98, 0xb5, 0xda, 0x77, 0xa0, 0x40, 0xae, 0x2a, 0x45, 0x86, 0xce, 0x01, 0xd0, 0x8d, 0xec, 0x72, + 0x4c, 0xd6, 0xbd, 0x6d, 0x61, 0x48, 0xa8, 0xb5, 0x7b, 0x45, 0x41, 0xb0, 0x81, 0x25, 0x9f, 0x59, + 0xe9, 0xac, 0xd3, 0x67, 0x2a, 0xdd, 0xcf, 0x70, 0x08, 0x36, 0xb0, 0xd0, 0x73, 0x30, 0xe8, 0xb5, + 0x9d, 0x96, 0x8a, 0x44, 0x7d, 0x94, 0x2e, 0xda, 0x05, 0xd6, 0x72, 0x67, 0x77, 0x62, 0x4c, 0x75, + 0x88, 0x35, 0x61, 0x81, 0x8b, 0x7e, 0xd5, 0x82, 0x11, 0x37, 0x6c, 0xb7, 0xc3, 0x80, 0x6f, 0xff, + 0xc4, 0x5e, 0xf6, 0xe6, 0x51, 0xa9, 0xf9, 0xc9, 0x59, 0x83, 0x19, 0xdf, 0xcc, 0xaa, 0xbc, 0x34, + 0x13, 0x84, 0x33, 0xbd, 0x32, 0xd7, 0x76, 0x6d, 0x9f, 0xb5, 0xfd, 0xeb, 0x16, 0x9c, 0xe0, 0xcf, + 0x1a, 0xbb, 0x52, 0x91, 0x82, 0x15, 0x1e, 0xf1, 0x6b, 0x75, 0x6d, 0xd4, 0x95, 0xb3, 0xb2, 0x0b, + 0x8e, 0xbb, 0x3b, 0x89, 0xe6, 0xe1, 0xc4, 0x7a, 0x18, 0xbb, 0xc4, 0x1c, 0x08, 0x21, 0x98, 0x14, + 0xa1, 0x0b, 0x79, 0x04, 0xdc, 0xfd, 0x0c, 0xba, 0x0e, 0x0f, 0x19, 0x8d, 0xe6, 0x38, 0x70, 0xd9, + 0xf4, 0xb8, 0xa0, 0xf6, 0xd0, 0x85, 0x42, 0x2c, 0xdc, 0xe3, 0xe9, 0xac, 0xe3, 0xa6, 0xd1, 0x87, + 0xe3, 0xe6, 0x55, 0x78, 0xc4, 0xed, 0x1e, 0x99, 0xad, 0xa4, 0xb3, 0x96, 0x70, 0x49, 0x55, 0x9f, + 0xf9, 0x01, 0x41, 0xe0, 0x91, 0xd9, 0x5e, 0x88, 0xb8, 0x37, 0x0d, 0xf4, 0x11, 0xa8, 0xc7, 0x84, + 0x7d, 0x95, 0x44, 0xe4, 0x23, 0x1d, 0x72, 0xb7, 0xae, 0x2d, 0x50, 0x4e, 0x56, 0xcb, 0x5e, 0xd1, + 0x90, 0x60, 0xc5, 0x11, 0xdd, 0x82, 0xa1, 0xc8, 0x49, 0xdd, 0x0d, 0x91, 0x85, 0x74, 0x68, 0xdf, + 0xb2, 0x62, 0xce, 0x8e, 0x02, 0x8c, 0xbc, 0x65, 0xce, 0x04, 0x4b, 0x6e, 0xd4, 0x1a, 0x71, 0xc3, + 0x76, 0x14, 0x06, 0x24, 0x48, 0x93, 0xf1, 0x51, 0x6d, 0x8d, 0xcc, 0xaa, 0x56, 0x6c, 0x60, 0xa0, + 0x65, 0x38, 0xc5, 0x7c, 0x57, 0x37, 0xbc, 0x74, 0x23, 0xec, 0xa4, 0x72, 0x2b, 0x36, 0x3e, 0x96, + 0x3d, 0xb1, 0x59, 0x2c, 0xc0, 0xc1, 0x85, 0x4f, 0x9e, 0x79, 0x1f, 0x9c, 0xe8, 0x5a, 0xca, 0x07, + 0x72, 0x1b, 0xcd, 0xc1, 0x43, 0xc5, 0x8b, 0xe6, 0x40, 0xce, 0xa3, 0x7f, 0x94, 0x8b, 0x1e, 0x36, + 0x0c, 0xe9, 0x3e, 0x1c, 0x91, 0x0e, 0x54, 0x49, 0xb0, 0x25, 0x74, 0xc8, 0x85, 0xc3, 0x7d, 0xbb, + 0xf3, 0xc1, 0x16, 0x5f, 0xf3, 0xcc, 0xdb, 0x72, 0x3e, 0xd8, 0xc2, 0x94, 0x36, 0xfa, 0xa2, 0x95, + 0x31, 0x04, 0xb9, 0xfb, 0xf2, 0x43, 0x47, 0xb2, 0x73, 0xe8, 0xdb, 0x36, 0xb4, 0xff, 0x6d, 0x05, + 0xce, 0xee, 0x47, 0xa4, 0x8f, 0xe1, 0x7b, 0x02, 0x06, 0x13, 0x16, 0x0f, 0x20, 0x84, 0xf2, 0x30, + 0x9d, 0xab, 0x3c, 0x42, 0xe0, 0x55, 0x2c, 0x40, 0xc8, 0x87, 0x6a, 0xdb, 0x89, 0x84, 0x57, 0x6b, + 0xe1, 0xb0, 0xf9, 0x44, 0xf4, 0xbf, 0xe3, 0x2f, 0x39, 0x11, 0xf7, 0x95, 0x18, 0x0d, 0x98, 0xb2, + 0x41, 0x29, 0xd4, 0x9c, 0x38, 0x76, 0xe4, 0xe1, 0xf3, 0xe5, 0x72, 0xf8, 0x4d, 0x53, 0x92, 0xfc, + 0xec, 0x2e, 0xd3, 0x84, 0x39, 0x33, 0xfb, 0xb3, 0x43, 0x99, 0x9c, 0x1a, 0x16, 0x51, 0x90, 0xc0, + 0xa0, 0x70, 0x66, 0x59, 0x65, 0xa7, 0x71, 0xf1, 0xa4, 0x48, 0xb6, 0x4f, 0x14, 0xa9, 0xe5, 0x82, + 0x15, 0xfa, 0x8c, 0xc5, 0x12, 0xb8, 0x65, 0x9e, 0x91, 0xd8, 0x9d, 0x1d, 0x4d, 0x3e, 0xb9, 0x99, + 0x16, 0x2e, 0x1b, 0xb1, 0xc9, 0x5d, 0x14, 0x62, 0x60, 0x56, 0x69, 0x77, 0x21, 0x06, 0x66, 0x65, + 0x4a, 0x38, 0xda, 0x2e, 0x88, 0x1c, 0x28, 0x21, 0x09, 0xb8, 0x8f, 0x58, 0x81, 0xaf, 0x5a, 0x70, + 0xc2, 0xcb, 0x1f, 0x01, 0x8b, 0xbd, 0xcc, 0x8d, 0x72, 0x3c, 0x4f, 0xdd, 0x27, 0xcc, 0x4a, 0x9d, + 0x77, 0x81, 0x70, 0x77, 0x67, 0x50, 0x13, 0x06, 0xbc, 0x60, 0x3d, 0x14, 0x46, 0xcc, 0xcc, 0xe1, + 0x3a, 0xb5, 0x10, 0xac, 0x87, 0x7a, 0x35, 0xd3, 0x7f, 0x98, 0x51, 0x47, 0x8b, 0x70, 0x2a, 0x16, + 0xde, 0xa6, 0x8b, 0x5e, 0x92, 0x86, 0xf1, 0xce, 0xa2, 0xd7, 0xf6, 0x52, 0x66, 0x80, 0x54, 0x67, + 0xc6, 0xa9, 0x7e, 0xc0, 0x05, 0x70, 0x5c, 0xf8, 0x14, 0x7a, 0x1d, 0x86, 0xe4, 0xb1, 0x6b, 0xbd, + 0x8c, 0x7d, 0x61, 0xf7, 0xfc, 0x57, 0x93, 0x69, 0x45, 0x9c, 0xbb, 0x4a, 0x86, 0xf6, 0x1b, 0xc3, + 0xd0, 0x7d, 0x3a, 0x9c, 0x3d, 0x0a, 0xb6, 0xee, 0xf5, 0x51, 0x30, 0xdd, 0xb0, 0x24, 0xfa, 0x14, + 0xb7, 0x84, 0xb9, 0x2d, 0xb8, 0xea, 0x13, 0xba, 0x9d, 0xc0, 0xc5, 0x8c, 0x07, 0x8a, 0x61, 0x70, + 0x83, 0x38, 0x7e, 0xba, 0x51, 0xce, 0x61, 0xc2, 0x45, 0x46, 0x2b, 0x9f, 0x0b, 0xc5, 0x5b, 0xb1, + 0xe0, 0x84, 0xb6, 0x61, 0x68, 0x83, 0x4f, 0x00, 0xb1, 0x87, 0x58, 0x3a, 0xec, 0xe0, 0x66, 0x66, + 0x95, 0xfe, 0xdc, 0xa2, 0x01, 0x4b, 0x76, 0x2c, 0xec, 0xc8, 0x08, 0x8c, 0xe0, 0x4b, 0xb7, 0xbc, + 0x34, 0xb0, 0xfe, 0xa3, 0x22, 0x3e, 0x0c, 0x23, 0x31, 0x71, 0xc3, 0xc0, 0xf5, 0x7c, 0xd2, 0x9c, + 0x96, 0x07, 0x05, 0x07, 0x49, 0x1e, 0x62, 0xfb, 0x70, 0x6c, 0xd0, 0xc0, 0x19, 0x8a, 0xe8, 0xd3, + 0x16, 0x8c, 0xa9, 0xd4, 0x59, 0xfa, 0x41, 0x88, 0x70, 0x08, 0x2f, 0x96, 0x94, 0xa8, 0xcb, 0x68, + 0xce, 0xa0, 0xdb, 0xbb, 0x13, 0x63, 0xd9, 0x36, 0x9c, 0xe3, 0x8b, 0x5e, 0x06, 0x08, 0xd7, 0x78, + 0x6c, 0xd1, 0x74, 0x2a, 0xbc, 0xc3, 0x07, 0x79, 0xd5, 0x31, 0x9e, 0x45, 0x28, 0x29, 0x60, 0x83, + 0x1a, 0xba, 0x0c, 0xc0, 0x97, 0xcd, 0xea, 0x4e, 0x24, 0x37, 0x1a, 0x32, 0xfb, 0x0b, 0x56, 0x14, + 0xe4, 0xce, 0xee, 0x44, 0xb7, 0xb7, 0x8e, 0x05, 0x50, 0x18, 0x8f, 0xa3, 0x9f, 0x82, 0xa1, 0xa4, + 0xd3, 0x6e, 0x3b, 0xca, 0x77, 0x5c, 0x62, 0x5e, 0x22, 0xa7, 0x6b, 0x88, 0x22, 0xde, 0x80, 0x25, + 0x47, 0x74, 0x93, 0x0a, 0xd5, 0x44, 0xb8, 0x11, 0xd9, 0x2a, 0xe2, 0x36, 0xc1, 0x30, 0x7b, 0xa7, + 0x77, 0x4b, 0xc3, 0x1b, 0x17, 0xe0, 0xdc, 0xd9, 0x9d, 0x78, 0x28, 0xdb, 0xbe, 0x18, 0x8a, 0x4c, + 0xc1, 0x42, 0x9a, 0xe8, 0x92, 0x2c, 0x40, 0x43, 0x5f, 0x5b, 0xd6, 0x45, 0x78, 0x4a, 0x17, 0xa0, + 0x61, 0xcd, 0xbd, 0xc7, 0xcc, 0x7c, 0x18, 0x2d, 0xc1, 0x49, 0x37, 0x0c, 0xd2, 0x38, 0xf4, 0x7d, + 0x5e, 0x80, 0x89, 0xef, 0xf9, 0xb8, 0x6f, 0xf9, 0xed, 0xa2, 0xdb, 0x27, 0x67, 0xbb, 0x51, 0x70, + 0xd1, 0x73, 0x76, 0x90, 0x3d, 0xe7, 0x11, 0x83, 0xf3, 0x1c, 0x8c, 0x90, 0xed, 0x94, 0xc4, 0x81, + 0xe3, 0x5f, 0xc3, 0x8b, 0xd2, 0xab, 0xca, 0xd6, 0xc0, 0x79, 0xa3, 0x1d, 0x67, 0xb0, 0x90, 0xad, + 0x1c, 0x1d, 0x46, 0xf6, 0x2b, 0x77, 0x74, 0x48, 0xb7, 0x86, 0xfd, 0xbf, 0x2b, 0x19, 0x83, 0xec, + 0xbe, 0x9c, 0x2a, 0xb1, 0x32, 0x1e, 0xb2, 0xde, 0x09, 0x03, 0x88, 0x8d, 0x46, 0x99, 0x9c, 0x55, + 0x19, 0x8f, 0xab, 0x26, 0x23, 0x9c, 0xe5, 0x8b, 0x36, 0xa1, 0xb6, 0x11, 0x26, 0xa9, 0xdc, 0x7e, + 0x1c, 0x72, 0xa7, 0x73, 0x31, 0x4c, 0x52, 0x66, 0x45, 0xa8, 0xd7, 0xa6, 0x2d, 0x09, 0xe6, 0x3c, + 0xec, 0xff, 0x62, 0x65, 0x7c, 0xe8, 0x37, 0x58, 0x00, 0xf2, 0x16, 0x09, 0xe8, 0xb2, 0x36, 0x43, + 0x9e, 0x7e, 0x34, 0x97, 0xce, 0xf9, 0x8e, 0x5e, 0xf5, 0xc5, 0x6e, 0x51, 0x0a, 0x93, 0x8c, 0x84, + 0x11, 0x1d, 0xf5, 0x71, 0x2b, 0x9b, 0x58, 0x5b, 0x29, 0x63, 0x83, 0x61, 0x26, 0x97, 0xef, 0x9b, + 0xa3, 0x6b, 0x7f, 0xd1, 0x82, 0xa1, 0x19, 0xc7, 0xdd, 0x0c, 0xd7, 0xd7, 0xd1, 0xd3, 0x50, 0x6f, + 0x76, 0x62, 0x33, 0xc7, 0x57, 0x39, 0x0e, 0xe6, 0x44, 0x3b, 0x56, 0x18, 0x74, 0x0e, 0xaf, 0x3b, + 0xae, 0x4c, 0x31, 0xaf, 0xf2, 0x39, 0x7c, 0x81, 0xb5, 0x60, 0x01, 0x41, 0xcf, 0xc3, 0x70, 0xdb, + 0xd9, 0x96, 0x0f, 0xe7, 0x1d, 0xf8, 0x4b, 0x1a, 0x84, 0x4d, 0x3c, 0xfb, 0x5f, 0x58, 0x30, 0x3e, + 0xe3, 0x24, 0x9e, 0x3b, 0xdd, 0x49, 0x37, 0x66, 0xbc, 0x74, 0xad, 0xe3, 0x6e, 0x92, 0x94, 0xd7, + 0x15, 0xa0, 0xbd, 0xec, 0x24, 0x74, 0x29, 0xa9, 0x7d, 0x9d, 0xea, 0xe5, 0x35, 0xd1, 0x8e, 0x15, + 0x06, 0x7a, 0x1d, 0x86, 0x23, 0x27, 0x49, 0x6e, 0x85, 0x71, 0x13, 0x93, 0xf5, 0x72, 0xaa, 0x7a, + 0xac, 0x10, 0x37, 0x26, 0x29, 0x26, 0xeb, 0xe2, 0xb0, 0x5b, 0xd3, 0xc7, 0x26, 0x33, 0xfb, 0xf3, + 0x16, 0x3c, 0x32, 0x43, 0x9c, 0x98, 0xc4, 0xac, 0x08, 0x88, 0x7a, 0x91, 0x59, 0x3f, 0xec, 0x34, + 0xd1, 0x6b, 0x50, 0x4f, 0x69, 0x33, 0xed, 0x96, 0x55, 0x6e, 0xb7, 0xd8, 0x59, 0xf5, 0xaa, 0x20, + 0x8e, 0x15, 0x1b, 0xfb, 0xaf, 0x5b, 0x30, 0xc2, 0x8e, 0xdb, 0xe6, 0x48, 0xea, 0x78, 0x7e, 0x57, + 0xad, 0x2c, 0xab, 0xcf, 0x5a, 0x59, 0x67, 0x61, 0x60, 0x23, 0x6c, 0x93, 0xfc, 0x51, 0xf1, 0xc5, + 0x90, 0x6e, 0xab, 0x29, 0x04, 0x3d, 0x4b, 0x3f, 0xbc, 0x17, 0xa4, 0x0e, 0x5d, 0x02, 0xd2, 0x9d, + 0x7b, 0x8c, 0x7f, 0x74, 0xd5, 0x8c, 0x4d, 0x1c, 0xfb, 0xb7, 0x1a, 0x30, 0x24, 0xe2, 0x1a, 0xfa, + 0xae, 0x2d, 0x21, 0xf7, 0xf7, 0x95, 0x9e, 0xfb, 0xfb, 0x04, 0x06, 0x5d, 0x56, 0xb4, 0x4f, 0x98, + 0x91, 0x97, 0x4b, 0x09, 0x84, 0xe1, 0x75, 0x00, 0x75, 0xb7, 0xf8, 0x7f, 0x2c, 0x58, 0xa1, 0x2f, + 0x58, 0x70, 0xcc, 0x0d, 0x83, 0x80, 0xb8, 0xda, 0xc6, 0x19, 0x28, 0x23, 0xde, 0x61, 0x36, 0x4b, + 0x54, 0x9f, 0xf5, 0xe4, 0x00, 0x38, 0xcf, 0x1e, 0xbd, 0x08, 0xa3, 0x7c, 0xcc, 0xae, 0x67, 0x7c, + 0xd0, 0xba, 0x84, 0x92, 0x09, 0xc4, 0x59, 0x5c, 0x34, 0xc9, 0x7d, 0xf9, 0xa2, 0x58, 0xd1, 0xa0, + 0x76, 0xd5, 0x19, 0x65, 0x8a, 0x0c, 0x0c, 0x14, 0x03, 0x8a, 0xc9, 0x7a, 0x4c, 0x92, 0x0d, 0x11, + 0xf7, 0xc1, 0xec, 0xab, 0xa1, 0xbb, 0xcb, 0x43, 0xc7, 0x5d, 0x94, 0x70, 0x01, 0x75, 0xb4, 0x29, + 0x36, 0x98, 0xf5, 0x32, 0x64, 0xa8, 0xf8, 0xcc, 0x3d, 0xf7, 0x99, 0x13, 0x50, 0x4b, 0x36, 0x9c, + 0xb8, 0xc9, 0xec, 0xba, 0x2a, 0xcf, 0x7d, 0x5a, 0xa1, 0x0d, 0x98, 0xb7, 0xa3, 0x39, 0x38, 0x9e, + 0x2b, 0x00, 0x95, 0x08, 0x5f, 0xb1, 0xca, 0x73, 0xc9, 0x95, 0x8e, 0x4a, 0x70, 0xd7, 0x13, 0xa6, + 0xf3, 0x61, 0x78, 0x1f, 0xe7, 0xc3, 0x8e, 0x8a, 0x2e, 0xe4, 0x5e, 0xdc, 0x97, 0x4a, 0x19, 0x80, + 0xbe, 0x42, 0x09, 0x3f, 0x97, 0x0b, 0x25, 0x1c, 0x65, 0x1d, 0xb8, 0x5e, 0x4e, 0x07, 0x0e, 0x1e, + 0x37, 0x78, 0x3f, 0xe3, 0x00, 0xff, 0xdc, 0x02, 0xf9, 0x5d, 0x67, 0x1d, 0x77, 0x83, 0xd0, 0x29, + 0x83, 0xde, 0x0b, 0x63, 0x6a, 0x0b, 0x3d, 0x1b, 0x76, 0x02, 0x1e, 0x02, 0x58, 0xd5, 0x87, 0xc2, + 0x38, 0x03, 0xc5, 0x39, 0x6c, 0x34, 0x05, 0x0d, 0x3a, 0x4e, 0xfc, 0x51, 0xae, 0x6b, 0xd5, 0x36, + 0x7d, 0x7a, 0x79, 0x41, 0x3c, 0xa5, 0x71, 0x50, 0x08, 0x27, 0x7c, 0x27, 0x49, 0x59, 0x0f, 0xe8, + 0x8e, 0xfa, 0x2e, 0xab, 0x40, 0xb0, 0x64, 0x8a, 0xc5, 0x3c, 0x21, 0xdc, 0x4d, 0xdb, 0xfe, 0xd6, + 0x00, 0x8c, 0x66, 0x24, 0xe3, 0x01, 0x95, 0xf4, 0xd3, 0x50, 0x97, 0x7a, 0x33, 0x5f, 0xaf, 0x46, + 0x29, 0x57, 0x85, 0x41, 0x95, 0xd6, 0x9a, 0xd6, 0xaa, 0x79, 0xa3, 0xc2, 0x50, 0xb8, 0xd8, 0xc4, + 0x63, 0x42, 0x39, 0xf5, 0x93, 0x59, 0xdf, 0x23, 0x41, 0xca, 0xbb, 0x59, 0x8e, 0x50, 0x5e, 0x5d, + 0x5c, 0x31, 0x89, 0x6a, 0xa1, 0x9c, 0x03, 0xe0, 0x3c, 0x7b, 0xf4, 0x29, 0x0b, 0x46, 0x9d, 0x5b, + 0x89, 0xae, 0x2c, 0x2b, 0x82, 0x06, 0x0f, 0xa9, 0xa4, 0x32, 0xc5, 0x6a, 0xb9, 0xcb, 0x37, 0xd3, + 0x84, 0xb3, 0x4c, 0xd1, 0x9b, 0x16, 0x20, 0xb2, 0x4d, 0x5c, 0x19, 0xd6, 0x28, 0xfa, 0x32, 0x58, + 0xc6, 0x4e, 0xf3, 0x7c, 0x17, 0x5d, 0x2e, 0xd5, 0xbb, 0xdb, 0x71, 0x41, 0x1f, 0xec, 0x7f, 0x5a, + 0x55, 0x0b, 0x4a, 0x47, 0xd2, 0x3a, 0x46, 0x44, 0x9f, 0x75, 0xf7, 0x11, 0x7d, 0x3a, 0x22, 0xa1, + 0x3b, 0xb9, 0x34, 0x93, 0x8b, 0x56, 0xb9, 0x4f, 0xb9, 0x68, 0x3f, 0x63, 0x65, 0x2a, 0x33, 0x0d, + 0x9f, 0x7b, 0xb9, 0xdc, 0x28, 0xde, 0x49, 0x1e, 0x2d, 0x91, 0x93, 0xee, 0xd9, 0x20, 0x19, 0x2a, + 0x4d, 0x0d, 0xb4, 0x03, 0x49, 0xc3, 0x7f, 0x5f, 0x85, 0x61, 0x43, 0x93, 0x16, 0x9a, 0x45, 0xd6, + 0x03, 0x66, 0x16, 0x55, 0x0e, 0x60, 0x16, 0xfd, 0x34, 0x34, 0x5c, 0x29, 0xe5, 0xcb, 0xa9, 0x4d, + 0x9c, 0xd7, 0x1d, 0x5a, 0xd0, 0xab, 0x26, 0xac, 0x79, 0xa2, 0xf9, 0x4c, 0x06, 0x93, 0xd0, 0x10, + 0x03, 0x4c, 0x43, 0x14, 0xa5, 0x18, 0x09, 0x4d, 0xd1, 0xfd, 0x0c, 0x2b, 0xe0, 0x15, 0x79, 0xe2, + 0xbd, 0x64, 0xac, 0x3d, 0x2f, 0xe0, 0xb5, 0xbc, 0x20, 0x9b, 0xb1, 0x89, 0x63, 0x7f, 0xcb, 0x52, + 0x1f, 0xf7, 0x1e, 0x94, 0xaa, 0xb8, 0x99, 0x2d, 0x55, 0x71, 0xbe, 0x94, 0x61, 0xee, 0x51, 0xa3, + 0xe2, 0x0a, 0x0c, 0xcd, 0x86, 0xed, 0xb6, 0x13, 0x34, 0xd1, 0x0f, 0xc1, 0x90, 0xcb, 0x7f, 0x0a, + 0xc7, 0x0e, 0x3b, 0x1e, 0x14, 0x50, 0x2c, 0x61, 0xe8, 0x51, 0x18, 0x70, 0xe2, 0x96, 0x74, 0xe6, + 0xb0, 0xe0, 0x9a, 0xe9, 0xb8, 0x95, 0x60, 0xd6, 0x6a, 0xff, 0xc3, 0x01, 0x60, 0x67, 0xda, 0x4e, + 0x4c, 0x9a, 0xab, 0x21, 0xab, 0x8d, 0x78, 0xa4, 0x87, 0x6a, 0x7a, 0xb3, 0xf4, 0x20, 0x1f, 0xac, + 0x19, 0x87, 0x2b, 0xd5, 0x7b, 0x7c, 0xb8, 0xd2, 0xe3, 0xbc, 0x6c, 0xe0, 0x01, 0x3a, 0x2f, 0xb3, + 0x3f, 0x6b, 0x01, 0x52, 0x81, 0x10, 0xfa, 0x40, 0x7b, 0x0a, 0x1a, 0x2a, 0x24, 0x42, 0x18, 0x56, + 0x5a, 0x44, 0x48, 0x00, 0xd6, 0x38, 0x7d, 0xec, 0x90, 0x9f, 0x90, 0xf2, 0xbb, 0x9a, 0x8d, 0xcb, + 0x65, 0x52, 0x5f, 0x88, 0x73, 0xfb, 0xb7, 0x2b, 0xf0, 0x10, 0x57, 0xc9, 0x4b, 0x4e, 0xe0, 0xb4, + 0x48, 0x9b, 0xf6, 0xaa, 0xdf, 0x10, 0x05, 0x97, 0x6e, 0xcd, 0x3c, 0x19, 0x67, 0x7b, 0xd8, 0xb5, + 0xcb, 0xd7, 0x1c, 0x5f, 0x65, 0x0b, 0x81, 0x97, 0x62, 0x46, 0x1c, 0x25, 0x50, 0x97, 0x85, 0xfb, + 0x85, 0x2c, 0x2e, 0x89, 0x91, 0x12, 0x4b, 0x42, 0x6f, 0x12, 0xac, 0x18, 0x51, 0xc3, 0xd5, 0x0f, + 0xdd, 0x4d, 0x4c, 0xa2, 0x90, 0xc9, 0x5d, 0x23, 0xcc, 0x71, 0x51, 0xb4, 0x63, 0x85, 0x61, 0xff, + 0xb6, 0x05, 0x79, 0x8d, 0x64, 0x14, 0xa1, 0xb3, 0xf6, 0x2c, 0x42, 0x77, 0x80, 0x2a, 0x70, 0x3f, + 0x09, 0xc3, 0x4e, 0x4a, 0x8d, 0x08, 0xbe, 0xed, 0xae, 0xde, 0xdd, 0xb1, 0xc6, 0x52, 0xd8, 0xf4, + 0xd6, 0x3d, 0xb6, 0xdd, 0x36, 0xc9, 0xd9, 0xff, 0x63, 0x00, 0x4e, 0x74, 0x65, 0xa5, 0xa0, 0x17, + 0x60, 0xc4, 0x15, 0xd3, 0x23, 0x92, 0x0e, 0xad, 0x86, 0x19, 0x16, 0xa7, 0x61, 0x38, 0x83, 0xd9, + 0xc7, 0x04, 0x5d, 0x80, 0x93, 0x31, 0xdd, 0xe8, 0x77, 0xc8, 0xf4, 0x7a, 0x4a, 0xe2, 0x15, 0xe2, + 0x86, 0x41, 0x93, 0x97, 0x4a, 0xac, 0xce, 0x3c, 0x7c, 0x7b, 0x77, 0xe2, 0x24, 0xee, 0x06, 0xe3, + 0xa2, 0x67, 0x50, 0x04, 0xa3, 0xbe, 0x69, 0x03, 0x8a, 0x0d, 0xc0, 0x5d, 0x99, 0x8f, 0xca, 0x46, + 0xc8, 0x34, 0xe3, 0x2c, 0x83, 0xac, 0x21, 0x59, 0xbb, 0x4f, 0x86, 0xe4, 0x27, 0xb5, 0x21, 0xc9, + 0xcf, 0xdf, 0x3f, 0x58, 0x72, 0x56, 0xd2, 0x51, 0x5b, 0x92, 0x2f, 0x41, 0x5d, 0xc6, 0x26, 0xf5, + 0x15, 0xd3, 0x63, 0xd2, 0xe9, 0x21, 0xd1, 0x9e, 0x84, 0x1f, 0x3c, 0x1f, 0xc7, 0xc6, 0x60, 0x5e, + 0x09, 0xd3, 0x69, 0xdf, 0x0f, 0x6f, 0x51, 0x25, 0x7d, 0x2d, 0x21, 0xc2, 0xc3, 0x62, 0xdf, 0xa9, + 0x40, 0xc1, 0x66, 0x85, 0xae, 0x47, 0x6d, 0x19, 0x64, 0xd6, 0xe3, 0xc1, 0xac, 0x03, 0xb4, 0xcd, + 0xe3, 0xb7, 0xb8, 0x0e, 0xfc, 0x40, 0xd9, 0x9b, 0x2d, 0x1d, 0xd2, 0xa5, 0x92, 0x29, 0x54, 0x58, + 0xd7, 0x39, 0x00, 0x6d, 0xd0, 0x89, 0x50, 0x79, 0x75, 0x3c, 0xac, 0xed, 0x3e, 0x6c, 0x60, 0xd1, + 0xbd, 0xb7, 0x17, 0x24, 0xa9, 0xe3, 0xfb, 0x17, 0xbd, 0x20, 0x15, 0x4e, 0x44, 0xa5, 0xec, 0x17, + 0x34, 0x08, 0x9b, 0x78, 0x67, 0xde, 0x6d, 0x7c, 0xbf, 0x83, 0x7c, 0xf7, 0x0d, 0x78, 0x64, 0xde, + 0x4b, 0x55, 0x82, 0x87, 0x9a, 0x6f, 0xd4, 0x5e, 0x53, 0x09, 0x4b, 0x56, 0xcf, 0x84, 0x25, 0x23, + 0xc1, 0xa2, 0x92, 0xcd, 0x07, 0xc9, 0x27, 0x58, 0xd8, 0x2f, 0xc0, 0xa9, 0x79, 0x2f, 0xbd, 0xe0, + 0xf9, 0xe4, 0x80, 0x4c, 0xec, 0xdf, 0x1c, 0x84, 0x11, 0x33, 0x55, 0xf1, 0x20, 0x39, 0x57, 0x9f, + 0xa7, 0x26, 0x99, 0x78, 0x3b, 0x4f, 0x1d, 0xae, 0xdd, 0x38, 0x74, 0xde, 0x64, 0xf1, 0x88, 0x19, + 0x56, 0x99, 0xe6, 0x89, 0xcd, 0x0e, 0xa0, 0x5b, 0x50, 0x5b, 0x67, 0x09, 0x00, 0xd5, 0x32, 0x22, + 0x10, 0x8a, 0x46, 0x54, 0x2f, 0x47, 0x9e, 0x42, 0xc0, 0xf9, 0x51, 0x4d, 0x1a, 0x67, 0xb3, 0xca, + 0x8c, 0xa0, 0x55, 0x91, 0x4f, 0xa6, 0x30, 0x7a, 0xa9, 0x84, 0xda, 0x5d, 0xa8, 0x84, 0x8c, 0x80, + 0x1e, 0xbc, 0x4f, 0x02, 0x9a, 0x25, 0x73, 0xa4, 0x1b, 0xcc, 0xce, 0x13, 0x51, 0xf6, 0x43, 0x6c, + 0x10, 0x8c, 0x64, 0x8e, 0x0c, 0x18, 0xe7, 0xf1, 0xd1, 0xc7, 0x94, 0x88, 0xaf, 0x97, 0xe1, 0x7f, + 0x35, 0x67, 0xf4, 0x51, 0x4b, 0xf7, 0xcf, 0x56, 0x60, 0x6c, 0x3e, 0xe8, 0x2c, 0xcf, 0x2f, 0x77, + 0xd6, 0x7c, 0xcf, 0xbd, 0x4c, 0x76, 0xa8, 0x08, 0xdf, 0x24, 0x3b, 0x0b, 0x73, 0x62, 0x05, 0xa9, + 0x39, 0x73, 0x99, 0x36, 0x62, 0x0e, 0xa3, 0xc2, 0x68, 0xdd, 0x0b, 0x5a, 0x24, 0x8e, 0x62, 0x4f, + 0xb8, 0x46, 0x0d, 0x61, 0x74, 0x41, 0x83, 0xb0, 0x89, 0x47, 0x69, 0x87, 0xb7, 0x02, 0x12, 0xe7, + 0x0d, 0xde, 0xab, 0xb4, 0x11, 0x73, 0x18, 0x45, 0x4a, 0xe3, 0x4e, 0x92, 0x8a, 0xc9, 0xa8, 0x90, + 0x56, 0x69, 0x23, 0xe6, 0x30, 0xba, 0xd2, 0x93, 0xce, 0x1a, 0x0b, 0xf0, 0xc8, 0x85, 0xf4, 0xaf, + 0xf0, 0x66, 0x2c, 0xe1, 0x14, 0x75, 0x93, 0xec, 0xcc, 0xd1, 0xdd, 0x71, 0x2e, 0xb3, 0xe7, 0x32, + 0x6f, 0xc6, 0x12, 0xce, 0x6a, 0x41, 0x66, 0x87, 0xe3, 0x7b, 0xae, 0x16, 0x64, 0xb6, 0xfb, 0x3d, + 0xf6, 0xd9, 0xbf, 0x62, 0xc1, 0x88, 0x19, 0x96, 0x85, 0x5a, 0x39, 0x5b, 0xf8, 0x6a, 0x57, 0x29, + 0xe1, 0x1f, 0x2f, 0xba, 0x87, 0xad, 0xe5, 0xa5, 0x61, 0x94, 0x3c, 0x43, 0x82, 0x96, 0x17, 0x10, + 0x76, 0xda, 0xce, 0xc3, 0xb9, 0x32, 0x31, 0x5f, 0xb3, 0x61, 0x93, 0xdc, 0x85, 0x31, 0x6d, 0xdf, + 0x80, 0x13, 0x5d, 0xe9, 0x5c, 0x7d, 0x98, 0x20, 0xfb, 0x26, 0xd3, 0xda, 0x18, 0x86, 0x29, 0x61, + 0x59, 0x8f, 0x68, 0x16, 0x4e, 0xf0, 0x85, 0x44, 0x39, 0xad, 0xb8, 0x1b, 0xa4, 0xad, 0x52, 0xf4, + 0x98, 0x1f, 0xfe, 0x7a, 0x1e, 0x88, 0xbb, 0xf1, 0xed, 0xcf, 0x59, 0x30, 0x9a, 0xc9, 0xb0, 0x2b, + 0xc9, 0x58, 0x62, 0x2b, 0x2d, 0x64, 0x51, 0x82, 0x2c, 0x54, 0xba, 0xca, 0x94, 0xa9, 0x5e, 0x69, + 0x1a, 0x84, 0x4d, 0x3c, 0xfb, 0x8b, 0x15, 0xa8, 0xcb, 0x48, 0x8b, 0x3e, 0xba, 0xf2, 0x19, 0x0b, + 0x46, 0xd5, 0xd9, 0x07, 0x73, 0xaa, 0x55, 0xca, 0x48, 0x87, 0xa0, 0x3d, 0x50, 0xdb, 0xf2, 0x60, + 0x3d, 0xd4, 0x96, 0x3b, 0x36, 0x99, 0xe1, 0x2c, 0x6f, 0x74, 0x1d, 0x20, 0xd9, 0x49, 0x52, 0xd2, + 0x36, 0xdc, 0x7b, 0xb6, 0xb1, 0xe2, 0x26, 0xdd, 0x30, 0x26, 0x74, 0x7d, 0x5d, 0x09, 0x9b, 0x64, + 0x45, 0x61, 0x6a, 0x13, 0x4a, 0xb7, 0x61, 0x83, 0x92, 0xfd, 0xf7, 0x2b, 0x70, 0x3c, 0xdf, 0x25, + 0xf4, 0x41, 0x18, 0x91, 0xdc, 0x8d, 0x2b, 0xe5, 0x64, 0x78, 0xc9, 0x08, 0x36, 0x60, 0x77, 0x76, + 0x27, 0x26, 0xba, 0xef, 0xf4, 0x9b, 0x34, 0x51, 0x70, 0x86, 0x18, 0x3f, 0x80, 0x12, 0x27, 0xa5, + 0x33, 0x3b, 0xd3, 0x51, 0x24, 0x4e, 0x91, 0x8c, 0x03, 0x28, 0x13, 0x8a, 0x73, 0xd8, 0x68, 0x19, + 0x4e, 0x19, 0x2d, 0x57, 0x88, 0xd7, 0xda, 0x58, 0x0b, 0x63, 0xb9, 0x03, 0x7b, 0x54, 0x07, 0x80, + 0x75, 0xe3, 0xe0, 0xc2, 0x27, 0xa9, 0xb6, 0x77, 0x9d, 0xc8, 0x71, 0xbd, 0x74, 0x47, 0xf8, 0x2b, + 0x95, 0x6c, 0x9a, 0x15, 0xed, 0x58, 0x61, 0xd8, 0x4b, 0x30, 0xd0, 0xe7, 0x0c, 0xea, 0xcb, 0xf2, + 0x7f, 0x09, 0xea, 0x94, 0x9c, 0x34, 0xef, 0xca, 0x20, 0x19, 0x42, 0x5d, 0x5e, 0xf5, 0x82, 0x6c, + 0xa8, 0x7a, 0x8e, 0x3c, 0xe3, 0x53, 0xaf, 0xb5, 0x90, 0x24, 0x1d, 0xb6, 0x99, 0xa6, 0x40, 0xf4, + 0x04, 0x54, 0xc9, 0x76, 0x94, 0x3f, 0xcc, 0x3b, 0xbf, 0x1d, 0x79, 0x31, 0x49, 0x28, 0x12, 0xd9, + 0x8e, 0xd0, 0x19, 0xa8, 0x78, 0x4d, 0xa1, 0xa4, 0x40, 0xe0, 0x54, 0x16, 0xe6, 0x70, 0xc5, 0x6b, + 0xda, 0xdb, 0xd0, 0x50, 0x77, 0xcb, 0xa0, 0x4d, 0x29, 0xbb, 0xad, 0x32, 0x42, 0xa3, 0x24, 0xdd, + 0x1e, 0x52, 0xbb, 0x03, 0xa0, 0x53, 0x0d, 0xcb, 0x92, 0x2f, 0x67, 0x61, 0xc0, 0x0d, 0x45, 0x1a, + 0x74, 0x5d, 0x93, 0x61, 0x42, 0x9b, 0x41, 0xec, 0x1b, 0x30, 0x76, 0x39, 0x08, 0x6f, 0xb1, 0xc2, + 0xf8, 0xac, 0x0e, 0x1c, 0x25, 0xbc, 0x4e, 0x7f, 0xe4, 0x4d, 0x04, 0x06, 0xc5, 0x1c, 0xa6, 0x2a, + 0x54, 0x55, 0x7a, 0x55, 0xa8, 0xb2, 0x3f, 0x6e, 0xc1, 0x88, 0xca, 0x59, 0x9a, 0xdf, 0xda, 0xa4, + 0x74, 0x5b, 0x71, 0xd8, 0x89, 0xf2, 0x74, 0xd9, 0xed, 0x4f, 0x98, 0xc3, 0xcc, 0x64, 0xbe, 0xca, + 0x3e, 0xc9, 0x7c, 0x67, 0x61, 0x60, 0xd3, 0x0b, 0x9a, 0xf9, 0xeb, 0x4c, 0x2e, 0x7b, 0x41, 0x13, + 0x33, 0x08, 0xed, 0xc2, 0x71, 0xd5, 0x05, 0xa9, 0x10, 0x5e, 0x80, 0x91, 0xb5, 0x8e, 0xe7, 0x37, + 0x65, 0x81, 0xbb, 0x9c, 0x47, 0x65, 0xc6, 0x80, 0xe1, 0x0c, 0x26, 0xdd, 0xd7, 0xad, 0x79, 0x81, + 0x13, 0xef, 0x2c, 0x6b, 0x0d, 0xa4, 0x84, 0xd2, 0x8c, 0x82, 0x60, 0x03, 0xcb, 0x7e, 0xa3, 0x0a, + 0x63, 0xd9, 0xcc, 0xad, 0x3e, 0xb6, 0x57, 0x4f, 0x40, 0x8d, 0x25, 0x73, 0xe5, 0x3f, 0x2d, 0xaf, + 0x09, 0xc7, 0x61, 0x28, 0x81, 0x41, 0x5e, 0x06, 0xa2, 0x9c, 0xab, 0x80, 0x54, 0x27, 0x95, 0x1f, + 0x86, 0xc5, 0x9d, 0x89, 0xca, 0x13, 0x82, 0x15, 0xfa, 0x94, 0x05, 0x43, 0x61, 0x64, 0x56, 0x36, + 0xfa, 0x40, 0x99, 0x59, 0x6d, 0x22, 0xa9, 0x46, 0x58, 0xc4, 0xea, 0xd3, 0xcb, 0xcf, 0x21, 0x59, + 0x9f, 0x79, 0x0f, 0x8c, 0x98, 0x98, 0xfb, 0x19, 0xc5, 0x75, 0xd3, 0x28, 0xfe, 0x8c, 0x39, 0x29, + 0x44, 0xde, 0x5e, 0x1f, 0xcb, 0xed, 0x1a, 0xd4, 0x5c, 0x15, 0x28, 0x70, 0x57, 0x65, 0x51, 0x55, + 0x5d, 0x06, 0x76, 0x58, 0xc4, 0xa9, 0xd9, 0xdf, 0xb2, 0x8c, 0xf9, 0x81, 0x49, 0xb2, 0xd0, 0x44, + 0x31, 0x54, 0x5b, 0x5b, 0x9b, 0xc2, 0x14, 0xbd, 0x54, 0xd2, 0xf0, 0xce, 0x6f, 0x6d, 0xea, 0x39, + 0x6e, 0xb6, 0x62, 0xca, 0xac, 0x0f, 0x67, 0x61, 0x26, 0xbd, 0xb3, 0xba, 0x7f, 0x7a, 0xa7, 0xfd, + 0x66, 0x05, 0x4e, 0x74, 0x4d, 0x2a, 0xf4, 0x3a, 0xd4, 0x62, 0xfa, 0x96, 0xe2, 0xf5, 0x16, 0x4b, + 0x4b, 0xc8, 0x4c, 0x16, 0x9a, 0x5a, 0xef, 0x66, 0xdb, 0x31, 0x67, 0x89, 0x2e, 0x01, 0xd2, 0xe1, + 0x2c, 0xca, 0x53, 0xc9, 0x5f, 0xf9, 0x8c, 0x78, 0x14, 0x4d, 0x77, 0x61, 0xe0, 0x82, 0xa7, 0xd0, + 0x8b, 0x79, 0x87, 0x67, 0x35, 0x7b, 0xbe, 0xb9, 0x97, 0xef, 0xd2, 0xfe, 0x67, 0x15, 0x18, 0xcd, + 0x14, 0x9a, 0x42, 0x3e, 0xd4, 0x89, 0xcf, 0x9c, 0xff, 0x52, 0xd9, 0x1c, 0xb6, 0x6c, 0xb4, 0x52, + 0x90, 0xe7, 0x05, 0x5d, 0xac, 0x38, 0x3c, 0x18, 0x87, 0xf0, 0x2f, 0xc0, 0x88, 0xec, 0xd0, 0x07, + 0x9c, 0xb6, 0x2f, 0x06, 0x50, 0xcd, 0xd1, 0xf3, 0x06, 0x0c, 0x67, 0x30, 0xed, 0xdf, 0xa9, 0xc2, + 0x38, 0x3f, 0x2d, 0x69, 0xaa, 0x99, 0xb7, 0x24, 0xf7, 0x5b, 0x7f, 0x59, 0x97, 0x83, 0xe3, 0x03, + 0xb9, 0x76, 0xd8, 0x5b, 0x1a, 0x8a, 0x19, 0xf5, 0x15, 0xc1, 0xf5, 0x95, 0x5c, 0x04, 0x17, 0x37, + 0xbb, 0x5b, 0x47, 0xd4, 0xa3, 0xef, 0xad, 0x90, 0xae, 0xbf, 0x53, 0x81, 0x63, 0xb9, 0x2b, 0x30, + 0xd0, 0x1b, 0xd9, 0xaa, 0xc9, 0x56, 0x19, 0x3e, 0xf5, 0x3d, 0x6f, 0x45, 0x38, 0x58, 0xed, 0xe4, + 0xfb, 0xb4, 0x54, 0xec, 0x3f, 0xac, 0xc0, 0x58, 0xf6, 0xee, 0x8e, 0x07, 0x70, 0xa4, 0xde, 0x09, + 0x0d, 0x56, 0x9e, 0x9e, 0xdd, 0x49, 0xca, 0x5d, 0xf2, 0xbc, 0x12, 0xb8, 0x6c, 0xc4, 0x1a, 0xfe, + 0x40, 0x94, 0xa4, 0xb6, 0xff, 0xae, 0x05, 0xa7, 0xf9, 0x5b, 0xe6, 0xe7, 0xe1, 0x5f, 0x29, 0x1a, + 0xdd, 0x57, 0xca, 0xed, 0x60, 0xae, 0x8c, 0xe1, 0x7e, 0xe3, 0xcb, 0xee, 0x42, 0x14, 0xbd, 0xcd, + 0x4e, 0x85, 0x07, 0xb0, 0xb3, 0x07, 0x9a, 0x0c, 0xf6, 0x1f, 0x56, 0x41, 0x5f, 0xff, 0x88, 0x3c, + 0x91, 0x0b, 0x59, 0x4a, 0x39, 0xc7, 0x95, 0x9d, 0xc0, 0xd5, 0x17, 0x4d, 0xd6, 0x73, 0xa9, 0x90, + 0x3f, 0x6f, 0xc1, 0xb0, 0x17, 0x78, 0xa9, 0xe7, 0xb0, 0x6d, 0x74, 0x39, 0x57, 0xd3, 0x29, 0x76, + 0x0b, 0x9c, 0x72, 0x18, 0x9b, 0xe7, 0x38, 0x8a, 0x19, 0x36, 0x39, 0xa3, 0x0f, 0x8b, 0x20, 0xeb, + 0x6a, 0x69, 0x59, 0xbc, 0xf5, 0x5c, 0x64, 0x75, 0x44, 0x0d, 0xaf, 0x34, 0x2e, 0x29, 0xf9, 0x1d, + 0x53, 0x52, 0xaa, 0x32, 0xb0, 0xbe, 0x88, 0x9b, 0x36, 0x63, 0xce, 0xc8, 0x4e, 0x00, 0x75, 0x8f, + 0xc5, 0x01, 0x03, 0x58, 0xa7, 0xa0, 0xe1, 0x74, 0xd2, 0xb0, 0x4d, 0x87, 0x49, 0x1c, 0x35, 0xe9, + 0x10, 0x5d, 0x09, 0xc0, 0x1a, 0xc7, 0x7e, 0xa3, 0x06, 0xb9, 0xe4, 0x44, 0xb4, 0x6d, 0x5e, 0x5d, + 0x6a, 0x95, 0x7b, 0x75, 0xa9, 0xea, 0x4c, 0xd1, 0xf5, 0xa5, 0xa8, 0x05, 0xb5, 0x68, 0xc3, 0x49, + 0xa4, 0x59, 0xfd, 0x92, 0xda, 0xc7, 0xd1, 0xc6, 0x3b, 0xbb, 0x13, 0x3f, 0xd1, 0x9f, 0xd7, 0x95, + 0xce, 0xd5, 0x29, 0x5e, 0xe6, 0x44, 0xb3, 0x66, 0x34, 0x30, 0xa7, 0x7f, 0x90, 0xcb, 0xf9, 0x3e, + 0x21, 0xea, 0xf0, 0x63, 0x92, 0x74, 0xfc, 0x54, 0xcc, 0x86, 0x97, 0x4a, 0x5c, 0x65, 0x9c, 0xb0, + 0x4e, 0xab, 0xe7, 0xff, 0xb1, 0xc1, 0x14, 0x7d, 0x10, 0x1a, 0x49, 0xea, 0xc4, 0xe9, 0x5d, 0x26, + 0xc2, 0xaa, 0x41, 0x5f, 0x91, 0x44, 0xb0, 0xa6, 0x87, 0x5e, 0x66, 0xd5, 0x6d, 0xbd, 0x64, 0xe3, + 0x2e, 0x73, 0x23, 0x64, 0x25, 0x5c, 0x41, 0x01, 0x1b, 0xd4, 0xd0, 0x39, 0x00, 0x36, 0xb7, 0x79, + 0x40, 0x60, 0x9d, 0x79, 0x99, 0x94, 0x28, 0xc4, 0x0a, 0x82, 0x0d, 0x2c, 0xfb, 0x47, 0x20, 0x5b, + 0x17, 0x02, 0x4d, 0xc8, 0x32, 0x14, 0xdc, 0x0b, 0xcd, 0x72, 0x1c, 0x32, 0x15, 0x23, 0x7e, 0xdd, + 0x02, 0xb3, 0x78, 0x05, 0x7a, 0x8d, 0x57, 0xc9, 0xb0, 0xca, 0x38, 0x39, 0x34, 0xe8, 0x4e, 0x2e, + 0x39, 0x51, 0xee, 0x08, 0x5b, 0x96, 0xca, 0x38, 0xf3, 0x6e, 0xa8, 0x4b, 0xe8, 0x81, 0x8c, 0xba, + 0x8f, 0xc1, 0xc9, 0xfc, 0xc5, 0xee, 0xe2, 0xd4, 0x69, 0x7f, 0xd7, 0x8f, 0xf4, 0xe7, 0x54, 0x7a, + 0xf9, 0x73, 0xfa, 0xb8, 0xc0, 0xf6, 0x37, 0x2c, 0x38, 0xbb, 0xdf, 0xfd, 0xf3, 0xe8, 0x51, 0x18, + 0xb8, 0xe5, 0xc4, 0xb2, 0xec, 0x38, 0x13, 0x94, 0x37, 0x9c, 0x38, 0xc0, 0xac, 0x15, 0xed, 0xc0, + 0x20, 0x8f, 0x1a, 0x13, 0xd6, 0xfa, 0x4b, 0xe5, 0xde, 0x86, 0x7f, 0x99, 0x18, 0xdb, 0x05, 0x1e, + 0xb1, 0x86, 0x05, 0x43, 0xfb, 0x3b, 0x16, 0xa0, 0xab, 0x5b, 0x24, 0x8e, 0xbd, 0xa6, 0x11, 0xe7, + 0xc6, 0xee, 0xb3, 0x31, 0xee, 0xad, 0x31, 0x53, 0x61, 0x73, 0xf7, 0xd9, 0x18, 0xff, 0x8a, 0xef, + 0xb3, 0xa9, 0x1c, 0xec, 0x3e, 0x1b, 0x74, 0x15, 0x4e, 0xb7, 0xf9, 0x76, 0x83, 0xdf, 0x11, 0xc1, + 0xf7, 0x1e, 0x2a, 0xf1, 0xec, 0x91, 0xdb, 0xbb, 0x13, 0xa7, 0x97, 0x8a, 0x10, 0x70, 0xf1, 0x73, + 0xf6, 0xbb, 0x01, 0xf1, 0xf0, 0xb6, 0xd9, 0xa2, 0x58, 0xa5, 0x9e, 0xee, 0x17, 0xfb, 0xcb, 0x35, + 0x38, 0x96, 0x2b, 0x4a, 0x4b, 0xb7, 0x7a, 0xdd, 0xc1, 0x51, 0x87, 0xd6, 0xdf, 0xdd, 0xdd, 0xeb, + 0x2b, 0xdc, 0x2a, 0x80, 0x9a, 0x17, 0x44, 0x9d, 0xb4, 0x9c, 0x5c, 0x53, 0xde, 0x89, 0x05, 0x4a, + 0xd0, 0x70, 0x17, 0xd3, 0xbf, 0x98, 0xb3, 0x29, 0x33, 0x78, 0x2b, 0x63, 0x8c, 0x0f, 0xdc, 0x27, + 0x77, 0xc0, 0x27, 0x74, 0x28, 0x55, 0xad, 0x0c, 0xc7, 0x62, 0x6e, 0xb2, 0x1c, 0xf5, 0x51, 0xfb, + 0x37, 0x2a, 0x30, 0x6c, 0x7c, 0x34, 0xf4, 0xcb, 0xd9, 0xd2, 0x4e, 0x56, 0x79, 0xaf, 0xc4, 0xe8, + 0x4f, 0xea, 0xe2, 0x4d, 0xfc, 0x95, 0x9e, 0xec, 0xae, 0xea, 0x74, 0x67, 0x77, 0xe2, 0x78, 0xae, + 0x6e, 0x53, 0xa6, 0xd2, 0xd3, 0x99, 0x8f, 0xc2, 0xb1, 0x1c, 0x99, 0x82, 0x57, 0x5e, 0xcd, 0xde, + 0xdb, 0x7f, 0x48, 0xb7, 0x94, 0x39, 0x64, 0x5f, 0xa7, 0x43, 0x26, 0xd2, 0xed, 0x42, 0x9f, 0xf4, + 0xe1, 0x83, 0xcd, 0x65, 0xd5, 0x56, 0xfa, 0xcc, 0xaa, 0x7d, 0x0a, 0xea, 0x51, 0xe8, 0x7b, 0xae, + 0xa7, 0xea, 0x1f, 0xb2, 0x3c, 0xde, 0x65, 0xd1, 0x86, 0x15, 0x14, 0xdd, 0x82, 0xc6, 0xcd, 0x5b, + 0x29, 0x3f, 0xfd, 0x11, 0xfe, 0xed, 0xb2, 0x0e, 0x7d, 0x94, 0xd1, 0xa2, 0x8e, 0x97, 0xb0, 0xe6, + 0x85, 0x6c, 0x18, 0x64, 0x4a, 0x50, 0xa6, 0x08, 0x30, 0xdf, 0x3b, 0xd3, 0x8e, 0x09, 0x16, 0x10, + 0xfb, 0x6b, 0x0d, 0x38, 0x55, 0x54, 0x19, 0x1c, 0x7d, 0x04, 0x06, 0x79, 0x1f, 0xcb, 0xb9, 0x7c, + 0xa2, 0x88, 0xc7, 0x3c, 0x23, 0x28, 0xba, 0xc5, 0x7e, 0x63, 0xc1, 0x53, 0x70, 0xf7, 0x9d, 0x35, + 0x31, 0x43, 0x8e, 0x86, 0xfb, 0xa2, 0xa3, 0xb9, 0x2f, 0x3a, 0x9c, 0xbb, 0xef, 0xac, 0xa1, 0x6d, + 0xa8, 0xb5, 0xbc, 0x94, 0x38, 0xc2, 0x89, 0x70, 0xe3, 0x48, 0x98, 0x13, 0x87, 0x5b, 0x69, 0xec, + 0x27, 0xe6, 0x0c, 0xd1, 0x57, 0x2d, 0x38, 0xb6, 0x96, 0x4d, 0xa1, 0x17, 0xc2, 0xd3, 0x39, 0x82, + 0xea, 0xef, 0x59, 0x46, 0xfc, 0x42, 0xa7, 0x5c, 0x23, 0xce, 0x77, 0x07, 0x7d, 0xd2, 0x82, 0xa1, + 0x75, 0xcf, 0x37, 0x0a, 0xf0, 0x1e, 0xc1, 0xc7, 0xb9, 0xc0, 0x18, 0xe8, 0x1d, 0x07, 0xff, 0x9f, + 0x60, 0xc9, 0xb9, 0x97, 0xa6, 0x1a, 0x3c, 0xac, 0xa6, 0x1a, 0xba, 0x4f, 0x9a, 0xea, 0xd3, 0x16, + 0x34, 0xd4, 0x48, 0x8b, 0xb4, 0xe8, 0x0f, 0x1e, 0xe1, 0x27, 0xe7, 0x9e, 0x13, 0xf5, 0x17, 0x6b, + 0xe6, 0xe8, 0x0b, 0x16, 0x0c, 0x3b, 0xaf, 0x77, 0x62, 0xd2, 0x24, 0x5b, 0x61, 0x94, 0x88, 0xdb, + 0x20, 0x5f, 0x29, 0xbf, 0x33, 0xd3, 0x94, 0xc9, 0x1c, 0xd9, 0xba, 0x1a, 0x25, 0x22, 0x7d, 0x49, + 0x37, 0x60, 0xb3, 0x0b, 0xf6, 0x6e, 0x05, 0x26, 0xf6, 0xa1, 0x80, 0x5e, 0x80, 0x91, 0x30, 0x6e, + 0x39, 0x81, 0xf7, 0xba, 0x59, 0x13, 0x43, 0x59, 0x59, 0x57, 0x0d, 0x18, 0xce, 0x60, 0x9a, 0x89, + 0xdb, 0x95, 0x7d, 0x12, 0xb7, 0xcf, 0xc2, 0x40, 0x4c, 0xa2, 0x30, 0xbf, 0x59, 0x60, 0xa9, 0x03, + 0x0c, 0x82, 0x1e, 0x83, 0xaa, 0x13, 0x79, 0x22, 0x10, 0x4d, 0xed, 0x81, 0xa6, 0x97, 0x17, 0x30, + 0x6d, 0xcf, 0xd4, 0x91, 0xa8, 0xdd, 0x93, 0x3a, 0x12, 0x54, 0x0d, 0x88, 0xb3, 0x8b, 0x41, 0xad, + 0x06, 0xb2, 0x67, 0x0a, 0xf6, 0x9b, 0x55, 0x78, 0x6c, 0xcf, 0xf9, 0xa2, 0xe3, 0xf0, 0xac, 0x3d, + 0xe2, 0xf0, 0xe4, 0xf0, 0x54, 0xf6, 0x1b, 0x9e, 0x6a, 0x8f, 0xe1, 0xf9, 0x24, 0x5d, 0x06, 0xb2, + 0x96, 0x48, 0x39, 0xf7, 0xf9, 0xf5, 0x2a, 0x4d, 0x22, 0x56, 0x80, 0x84, 0x62, 0xcd, 0x97, 0xee, + 0x01, 0x32, 0x49, 0xcb, 0xb5, 0x32, 0xd4, 0x40, 0xcf, 0xda, 0x22, 0x7c, 0xee, 0xf7, 0xca, 0x84, + 0xb6, 0x7f, 0xa1, 0x02, 0x4f, 0xf4, 0x21, 0xbd, 0xcd, 0x59, 0x6c, 0xf5, 0x39, 0x8b, 0xbf, 0xb7, + 0x3f, 0x93, 0xfd, 0x57, 0x2d, 0x38, 0xd3, 0x5b, 0x79, 0xa0, 0x67, 0x61, 0x78, 0x2d, 0x76, 0x02, + 0x77, 0x83, 0xdd, 0x51, 0x2a, 0x07, 0x85, 0x8d, 0xb5, 0x6e, 0xc6, 0x26, 0x0e, 0xdd, 0xde, 0xf2, + 0x98, 0x04, 0x03, 0x43, 0x26, 0x99, 0xd2, 0xed, 0xed, 0x6a, 0x1e, 0x88, 0xbb, 0xf1, 0xed, 0x3f, + 0xab, 0x14, 0x77, 0x8b, 0x1b, 0x19, 0x07, 0xf9, 0x4e, 0xe2, 0x2b, 0x54, 0xfa, 0x90, 0x25, 0xd5, + 0x7b, 0x2d, 0x4b, 0x06, 0x7a, 0xc9, 0x12, 0x34, 0x07, 0xc7, 0x8d, 0x4b, 0x64, 0x78, 0xe2, 0x30, + 0x0f, 0xb8, 0x55, 0xd5, 0x34, 0x96, 0x73, 0x70, 0xdc, 0xf5, 0x04, 0x7a, 0x1a, 0xea, 0x5e, 0x90, + 0x10, 0xb7, 0x13, 0xf3, 0x40, 0x6f, 0x23, 0x59, 0x6b, 0x41, 0xb4, 0x63, 0x85, 0x61, 0xff, 0x4a, + 0x05, 0x1e, 0xe9, 0x69, 0x67, 0xdd, 0x23, 0xd9, 0x65, 0x7e, 0x8e, 0x81, 0x7b, 0xf3, 0x39, 0xcc, + 0x41, 0xaa, 0xed, 0x3b, 0x48, 0x7f, 0xd4, 0x7b, 0x62, 0x52, 0x9b, 0xfb, 0xfb, 0x76, 0x94, 0x5e, + 0x84, 0x51, 0x27, 0x8a, 0x38, 0x1e, 0x8b, 0xd7, 0xcc, 0x55, 0xd3, 0x99, 0x36, 0x81, 0x38, 0x8b, + 0xdb, 0x97, 0xf6, 0xfc, 0x63, 0x0b, 0x1a, 0x98, 0xac, 0x73, 0xe9, 0x80, 0x6e, 0x8a, 0x21, 0xb2, + 0xca, 0xa8, 0xbb, 0x49, 0x07, 0x36, 0xf1, 0x58, 0x3d, 0xca, 0xa2, 0xc1, 0xee, 0xbe, 0xe4, 0xa7, + 0x72, 0xa0, 0x4b, 0x7e, 0xd4, 0x35, 0x2f, 0xd5, 0xde, 0xd7, 0xbc, 0xd8, 0xdf, 0x1e, 0xa2, 0xaf, + 0x17, 0x85, 0xb3, 0x31, 0x69, 0x26, 0xf4, 0xfb, 0x76, 0x62, 0x5f, 0x4c, 0x12, 0xf5, 0x7d, 0xaf, + 0xe1, 0x45, 0x4c, 0xdb, 0x33, 0x47, 0x31, 0x95, 0x03, 0xd5, 0x12, 0xa9, 0xee, 0x5b, 0x4b, 0xe4, + 0x45, 0x18, 0x4d, 0x92, 0x8d, 0xe5, 0xd8, 0xdb, 0x72, 0x52, 0x72, 0x99, 0xec, 0x08, 0x2b, 0x4b, + 0xe7, 0xff, 0xaf, 0x5c, 0xd4, 0x40, 0x9c, 0xc5, 0x45, 0xf3, 0x70, 0x42, 0x57, 0xf4, 0x20, 0x71, + 0xca, 0xa2, 0xfb, 0xf9, 0x4c, 0x50, 0xc9, 0xbe, 0xba, 0x06, 0x88, 0x40, 0xc0, 0xdd, 0xcf, 0x50, + 0xf9, 0x96, 0x69, 0xa4, 0x1d, 0x19, 0xcc, 0xca, 0xb7, 0x0c, 0x1d, 0xda, 0x97, 0xae, 0x27, 0xd0, + 0x12, 0x9c, 0xe4, 0x13, 0x63, 0x3a, 0x8a, 0x8c, 0x37, 0x1a, 0xca, 0xd6, 0x3b, 0x9c, 0xef, 0x46, + 0xc1, 0x45, 0xcf, 0xa1, 0xe7, 0x61, 0x58, 0x35, 0x2f, 0xcc, 0x89, 0x53, 0x04, 0xe5, 0xc5, 0x50, + 0x64, 0x16, 0x9a, 0xd8, 0xc4, 0x43, 0x1f, 0x80, 0x87, 0xf5, 0x5f, 0x9e, 0x02, 0xc6, 0x8f, 0xd6, + 0xe6, 0x44, 0xb1, 0x24, 0x75, 0xa9, 0xc8, 0x7c, 0x21, 0x5a, 0x13, 0xf7, 0x7a, 0x1e, 0xad, 0xc1, + 0x19, 0x05, 0x3a, 0x1f, 0xa4, 0x2c, 0x9f, 0x23, 0x21, 0x33, 0x4e, 0x42, 0xae, 0xc5, 0xbe, 0xb8, + 0x9c, 0x56, 0xdd, 0x3b, 0x39, 0xef, 0xa5, 0x17, 0x8b, 0x30, 0xf1, 0x22, 0xde, 0x83, 0x0a, 0x9a, + 0x82, 0x06, 0x09, 0x9c, 0x35, 0x9f, 0x5c, 0x9d, 0x5d, 0x60, 0x45, 0x97, 0x8c, 0x93, 0xbc, 0xf3, + 0x12, 0x80, 0x35, 0x8e, 0x8a, 0x30, 0x1d, 0xe9, 0x79, 0x07, 0xea, 0x32, 0x9c, 0x6a, 0xb9, 0x11, + 0xb5, 0x3d, 0x3c, 0x97, 0x4c, 0xbb, 0x2c, 0xa0, 0x8e, 0x7e, 0x18, 0x5e, 0x88, 0x52, 0x85, 0x4f, + 0xcf, 0xcf, 0x2e, 0x77, 0xe1, 0xe0, 0xc2, 0x27, 0x59, 0xe0, 0x65, 0x1c, 0x6e, 0xef, 0x8c, 0x9f, + 0xcc, 0x05, 0x5e, 0xd2, 0x46, 0xcc, 0x61, 0xe8, 0x12, 0x20, 0x16, 0x8b, 0x7f, 0x31, 0x4d, 0x23, + 0x65, 0xec, 0x8c, 0x9f, 0x62, 0xaf, 0xa4, 0xc2, 0xc8, 0x2e, 0x74, 0x61, 0xe0, 0x82, 0xa7, 0xa8, + 0x85, 0x11, 0x84, 0x8c, 0xfa, 0xf8, 0xc3, 0x59, 0x0b, 0xe3, 0x0a, 0x6f, 0xc6, 0x12, 0x6e, 0xff, + 0x07, 0x0b, 0x46, 0xd5, 0xd2, 0xbe, 0x07, 0x89, 0x2b, 0x7e, 0x36, 0x71, 0x65, 0xfe, 0xf0, 0xc2, + 0x91, 0xf5, 0xbc, 0x47, 0xf4, 0xf3, 0x37, 0x86, 0x01, 0xb4, 0x00, 0x55, 0xba, 0xcb, 0xea, 0xa9, + 0xbb, 0x1e, 0x58, 0xe1, 0x55, 0x54, 0x8c, 0xa5, 0x76, 0x7f, 0x8b, 0xb1, 0xac, 0xc0, 0x69, 0x69, + 0x59, 0xf0, 0x63, 0xa5, 0x8b, 0x61, 0xa2, 0x64, 0x61, 0x7d, 0xe6, 0x31, 0x41, 0xe8, 0xf4, 0x42, + 0x11, 0x12, 0x2e, 0x7e, 0x36, 0x63, 0xd0, 0x0c, 0xed, 0x67, 0xd0, 0xe8, 0xe5, 0xbf, 0xb8, 0x2e, + 0x2f, 0x1a, 0xc9, 0x2d, 0xff, 0xc5, 0x0b, 0x2b, 0x58, 0xe3, 0x14, 0xeb, 0x80, 0x46, 0x49, 0x3a, + 0x00, 0x0e, 0xac, 0x03, 0xa4, 0x34, 0x1a, 0xee, 0x29, 0x8d, 0xa4, 0xfb, 0x7a, 0xa4, 0xa7, 0xfb, + 0xfa, 0xbd, 0x30, 0xe6, 0x05, 0x1b, 0x24, 0xf6, 0x52, 0xd2, 0x64, 0x6b, 0x81, 0x49, 0xaa, 0xba, + 0xb6, 0x00, 0x16, 0x32, 0x50, 0x9c, 0xc3, 0xce, 0x8a, 0xd0, 0xb1, 0x3e, 0x44, 0x68, 0x0f, 0xc5, + 0x75, 0xac, 0x1c, 0xc5, 0x75, 0xfc, 0xf0, 0x8a, 0xeb, 0xc4, 0x91, 0x2a, 0x2e, 0x54, 0x8a, 0xe2, + 0xea, 0x4b, 0x27, 0x18, 0x3b, 0xc5, 0x53, 0xfb, 0xec, 0x14, 0x7b, 0x69, 0xad, 0xd3, 0x77, 0xad, + 0xb5, 0x8a, 0x15, 0xd2, 0x43, 0x47, 0xad, 0x90, 0x3e, 0x5d, 0x81, 0xd3, 0x5a, 0x64, 0xd3, 0x85, + 0xe2, 0xad, 0x53, 0xa1, 0xc5, 0xae, 0xb5, 0xe2, 0xa7, 0x41, 0x46, 0xca, 0x95, 0xce, 0xde, 0x52, + 0x10, 0x6c, 0x60, 0xb1, 0xcc, 0x25, 0x12, 0xb3, 0x22, 0xbe, 0x79, 0x79, 0x3e, 0x2b, 0xda, 0xb1, + 0xc2, 0xa0, 0x53, 0x91, 0xfe, 0x16, 0xd9, 0xa0, 0xf9, 0x52, 0x75, 0xb3, 0x1a, 0x84, 0x4d, 0x3c, + 0xf4, 0x14, 0x67, 0xc2, 0x64, 0x09, 0x95, 0xe9, 0x23, 0xe2, 0xbe, 0x5d, 0x29, 0x3e, 0x14, 0x54, + 0x76, 0x87, 0xa5, 0xa8, 0xd5, 0xba, 0xbb, 0xc3, 0x02, 0xab, 0x14, 0x86, 0xfd, 0x3f, 0x2d, 0x78, + 0xa4, 0x70, 0x28, 0xee, 0x81, 0x9e, 0xde, 0xce, 0xea, 0xe9, 0x95, 0xb2, 0x36, 0x31, 0xc6, 0x5b, + 0xf4, 0xd0, 0xd9, 0xff, 0xce, 0x82, 0x31, 0x8d, 0x7f, 0x0f, 0x5e, 0xd5, 0xcb, 0xbe, 0x6a, 0x79, + 0xfb, 0xb5, 0x46, 0xd7, 0xbb, 0xfd, 0x4e, 0x05, 0x54, 0xf9, 0xc8, 0x69, 0x57, 0x16, 0xe7, 0xdd, + 0xe7, 0x7c, 0x72, 0x07, 0x06, 0xd9, 0xf1, 0x6a, 0x52, 0x4e, 0xe8, 0x48, 0x96, 0x3f, 0x3b, 0xaa, + 0xd5, 0x47, 0xd7, 0xec, 0x6f, 0x82, 0x05, 0x43, 0x56, 0x62, 0xda, 0x4b, 0xa8, 0xe0, 0x6f, 0x8a, + 0x64, 0x2f, 0x5d, 0x62, 0x5a, 0xb4, 0x63, 0x85, 0x41, 0x35, 0x89, 0xe7, 0x86, 0xc1, 0xac, 0xef, + 0x24, 0xf2, 0x2e, 0x47, 0xa5, 0x49, 0x16, 0x24, 0x00, 0x6b, 0x1c, 0x76, 0xf2, 0xea, 0x25, 0x91, + 0xef, 0xec, 0x18, 0xbb, 0x72, 0xa3, 0xea, 0x81, 0x02, 0x61, 0x13, 0xcf, 0x6e, 0xc3, 0x78, 0xf6, + 0x25, 0xe6, 0xc8, 0x3a, 0x0b, 0x7b, 0xec, 0x6b, 0x38, 0xa7, 0xa0, 0xe1, 0xb0, 0xa7, 0x16, 0x3b, + 0x4e, 0xfe, 0x2a, 0xf8, 0x69, 0x09, 0xc0, 0x1a, 0xc7, 0xfe, 0x35, 0x0b, 0x4e, 0x16, 0x0c, 0x5a, + 0x89, 0xc9, 0x74, 0xa9, 0x96, 0x36, 0x45, 0x36, 0xc0, 0x0f, 0xc3, 0x50, 0x93, 0xac, 0x3b, 0x32, + 0xb0, 0xce, 0x90, 0x9e, 0x73, 0xbc, 0x19, 0x4b, 0xb8, 0xfd, 0xdf, 0x2d, 0x38, 0x96, 0xed, 0x6b, + 0xc2, 0x12, 0x54, 0xf8, 0x30, 0x79, 0x89, 0x1b, 0x6e, 0x91, 0x78, 0x87, 0xbe, 0xb9, 0x95, 0x4b, + 0x50, 0xe9, 0xc2, 0xc0, 0x05, 0x4f, 0xb1, 0xe2, 0xb1, 0x4d, 0x35, 0xda, 0x72, 0x46, 0x5e, 0x2f, + 0x73, 0x46, 0xea, 0x8f, 0x69, 0x1e, 0xc2, 0x2b, 0x96, 0xd8, 0xe4, 0x6f, 0x7f, 0x67, 0x00, 0x54, + 0xb6, 0x2d, 0x8b, 0x6a, 0x2a, 0x29, 0x26, 0xec, 0xa0, 0x79, 0x49, 0x6a, 0x32, 0x0c, 0xec, 0x15, + 0x66, 0xc0, 0x7d, 0x2f, 0xa6, 0x43, 0x54, 0xbd, 0xe1, 0xaa, 0x06, 0x61, 0x13, 0x8f, 0xf6, 0xc4, + 0xf7, 0xb6, 0x08, 0x7f, 0x68, 0x30, 0xdb, 0x93, 0x45, 0x09, 0xc0, 0x1a, 0x87, 0xf6, 0xa4, 0xe9, + 0xad, 0xaf, 0x0b, 0x47, 0x82, 0xea, 0x09, 0x1d, 0x1d, 0xcc, 0x20, 0xbc, 0x1e, 0x78, 0xb8, 0x29, + 0x0c, 0x66, 0xa3, 0x1e, 0x78, 0xb8, 0x89, 0x19, 0x84, 0x9a, 0x78, 0x41, 0x18, 0xb7, 0xd9, 0x55, + 0xfd, 0x4d, 0xc5, 0x45, 0x18, 0xca, 0xca, 0xc4, 0xbb, 0xd2, 0x8d, 0x82, 0x8b, 0x9e, 0xa3, 0x33, + 0x30, 0x8a, 0x49, 0xd3, 0x73, 0x53, 0x93, 0x1a, 0x64, 0x67, 0xe0, 0x72, 0x17, 0x06, 0x2e, 0x78, + 0x0a, 0x4d, 0xc3, 0x31, 0x99, 0x2d, 0x2d, 0x6b, 0xe1, 0x0c, 0x67, 0x6b, 0x6f, 0xe0, 0x2c, 0x18, + 0xe7, 0xf1, 0xa9, 0x54, 0x6b, 0x8b, 0x72, 0x59, 0xcc, 0xae, 0x36, 0xa4, 0x9a, 0x2c, 0xa3, 0x85, + 0x15, 0x86, 0xfd, 0x89, 0x2a, 0xd5, 0xc2, 0x3d, 0xca, 0xc4, 0xdd, 0xb3, 0x18, 0xc4, 0xec, 0x8c, + 0x1c, 0xe8, 0x63, 0x46, 0x3e, 0x07, 0x23, 0x37, 0x93, 0x30, 0x50, 0xf1, 0x7d, 0xb5, 0x9e, 0xf1, + 0x7d, 0x06, 0x56, 0x71, 0x7c, 0xdf, 0x60, 0x59, 0xf1, 0x7d, 0x43, 0x77, 0x19, 0xdf, 0xf7, 0xbb, + 0x35, 0x50, 0x17, 0x93, 0x5c, 0x21, 0xe9, 0xad, 0x30, 0xde, 0xf4, 0x82, 0x16, 0xcb, 0x32, 0xff, + 0xaa, 0x05, 0x23, 0x7c, 0xbd, 0x2c, 0x9a, 0xf9, 0x59, 0xeb, 0x25, 0xdd, 0x78, 0x91, 0x61, 0x36, + 0xb9, 0x6a, 0x30, 0xca, 0x5d, 0x25, 0x6a, 0x82, 0x70, 0xa6, 0x47, 0xe8, 0xa3, 0x00, 0xd2, 0xeb, + 0xba, 0x2e, 0x45, 0xe6, 0x42, 0x39, 0xfd, 0xc3, 0x64, 0x5d, 0xdb, 0xc0, 0xab, 0x8a, 0x09, 0x36, + 0x18, 0xa2, 0x4f, 0xeb, 0xdc, 0x35, 0x9e, 0x08, 0xf0, 0xe1, 0x23, 0x19, 0x9b, 0x7e, 0x32, 0xd7, + 0x30, 0x0c, 0x79, 0x41, 0x8b, 0xce, 0x13, 0x11, 0x07, 0xf5, 0x8e, 0xa2, 0x0a, 0x0d, 0x8b, 0xa1, + 0xd3, 0x9c, 0x71, 0x7c, 0x27, 0x70, 0x49, 0xbc, 0xc0, 0xd1, 0xcd, 0x0b, 0xb4, 0x59, 0x03, 0x96, + 0x84, 0xba, 0xae, 0x74, 0xa9, 0xf5, 0x73, 0xa5, 0xcb, 0x99, 0xf7, 0xc1, 0x89, 0xae, 0x8f, 0x79, + 0xa0, 0x44, 0xb5, 0xbb, 0xcf, 0x71, 0xb3, 0xff, 0xf9, 0xa0, 0x56, 0x5a, 0x57, 0xc2, 0x26, 0xbf, + 0x58, 0x24, 0xd6, 0x5f, 0x54, 0xd8, 0xb8, 0x25, 0x4e, 0x11, 0xe3, 0x12, 0x6e, 0xd5, 0x88, 0x4d, + 0x96, 0x74, 0x8e, 0x46, 0x4e, 0x4c, 0x82, 0xa3, 0x9e, 0xa3, 0xcb, 0x8a, 0x09, 0x36, 0x18, 0xa2, + 0x8d, 0x4c, 0xa6, 0xca, 0x85, 0xc3, 0x67, 0xaa, 0xb0, 0xda, 0x55, 0x45, 0x77, 0x01, 0x7c, 0xc1, + 0x82, 0xb1, 0x20, 0x33, 0x73, 0xcb, 0x09, 0x4e, 0x2d, 0x5e, 0x15, 0xfc, 0x5e, 0xab, 0x6c, 0x1b, + 0xce, 0xf1, 0x2f, 0x52, 0x69, 0xb5, 0x03, 0xaa, 0x34, 0x7d, 0x43, 0xd1, 0x60, 0xaf, 0x1b, 0x8a, + 0x50, 0xa0, 0xae, 0x68, 0x1b, 0x2a, 0xfd, 0x8a, 0x36, 0x28, 0xb8, 0x9e, 0xed, 0x06, 0x34, 0xdc, + 0x98, 0x38, 0xe9, 0x5d, 0xde, 0xd6, 0xc5, 0x8e, 0xfd, 0x67, 0x25, 0x01, 0xac, 0x69, 0xd9, 0xff, + 0x67, 0x00, 0x8e, 0xcb, 0x11, 0x91, 0x81, 0xed, 0x54, 0x3f, 0x72, 0xbe, 0xda, 0xb8, 0x55, 0xfa, + 0xf1, 0xa2, 0x04, 0x60, 0x8d, 0x43, 0xed, 0xb1, 0x4e, 0x42, 0xae, 0x46, 0x24, 0x58, 0xf4, 0xd6, + 0x12, 0x71, 0x7a, 0xaa, 0x16, 0xca, 0x35, 0x0d, 0xc2, 0x26, 0x1e, 0x35, 0xc6, 0xb9, 0x5d, 0x9c, + 0xe4, 0x93, 0x62, 0x84, 0xbd, 0x8d, 0x25, 0x1c, 0xfd, 0x62, 0x61, 0xdd, 0xda, 0x72, 0xd2, 0xc1, + 0xba, 0xe2, 0xf9, 0x0f, 0x78, 0xc1, 0xe3, 0xdf, 0xb2, 0xe0, 0x34, 0x6f, 0x95, 0x23, 0x79, 0x2d, + 0x6a, 0x3a, 0x29, 0x49, 0xca, 0xa9, 0x23, 0x5f, 0xd0, 0x3f, 0xed, 0x0f, 0x2e, 0x62, 0x8b, 0x8b, + 0x7b, 0x83, 0xde, 0xb0, 0xe0, 0xd8, 0x66, 0xa6, 0x92, 0x88, 0x54, 0x1d, 0x87, 0x4d, 0xf2, 0xcf, + 0x10, 0xd5, 0x4b, 0x2d, 0xdb, 0x9e, 0xe0, 0x3c, 0x77, 0xfb, 0xcf, 0x2c, 0x30, 0xc5, 0xe8, 0xbd, + 0x2f, 0x40, 0x72, 0x70, 0x53, 0x50, 0x5a, 0x97, 0xb5, 0x9e, 0xd6, 0xe5, 0x63, 0x50, 0xed, 0x78, + 0x4d, 0xb1, 0xbf, 0xd0, 0x67, 0xba, 0x0b, 0x73, 0x98, 0xb6, 0xdb, 0xff, 0xa4, 0xa6, 0xfd, 0x16, + 0x22, 0xdb, 0xea, 0xfb, 0xe2, 0xb5, 0xd7, 0x55, 0x09, 0x33, 0xfe, 0xe6, 0x57, 0xba, 0x4a, 0x98, + 0xfd, 0xd8, 0xc1, 0x93, 0xe9, 0xf8, 0x00, 0xf5, 0xaa, 0x60, 0x36, 0xb4, 0x4f, 0x26, 0xdd, 0x4d, + 0xa8, 0xd3, 0x2d, 0x18, 0x73, 0x40, 0xd6, 0x33, 0x9d, 0xaa, 0x5f, 0x14, 0xed, 0x77, 0x76, 0x27, + 0xde, 0x73, 0xf0, 0x6e, 0xc9, 0xa7, 0xb1, 0xa2, 0x8f, 0x12, 0x68, 0xd0, 0xdf, 0x2c, 0xe9, 0x4f, + 0x6c, 0xee, 0xae, 0x29, 0x99, 0x29, 0x01, 0xa5, 0x64, 0x14, 0x6a, 0x3e, 0x28, 0x80, 0x06, 0xbb, + 0x0b, 0x97, 0x31, 0xe5, 0x7b, 0xc0, 0x65, 0x95, 0x7a, 0x27, 0x01, 0x77, 0x76, 0x27, 0x5e, 0x3c, + 0x38, 0x53, 0xf5, 0x38, 0xd6, 0x2c, 0xec, 0x2f, 0x0e, 0xe8, 0xb9, 0x2b, 0x2a, 0xd7, 0x7d, 0x5f, + 0xcc, 0xdd, 0x17, 0x72, 0x73, 0xf7, 0x6c, 0xd7, 0xdc, 0x1d, 0xd3, 0x77, 0xb6, 0x66, 0x66, 0xe3, + 0xbd, 0x36, 0x04, 0xf6, 0xf7, 0x37, 0x30, 0x0b, 0xe8, 0xb5, 0x8e, 0x17, 0x93, 0x64, 0x39, 0xee, + 0x04, 0x5e, 0xd0, 0x62, 0xd3, 0xb1, 0x6e, 0x5a, 0x40, 0x19, 0x30, 0xce, 0xe3, 0xd3, 0x4d, 0x3d, + 0xfd, 0xe6, 0x37, 0x9c, 0x2d, 0x3e, 0xab, 0x8c, 0x62, 0x5e, 0x2b, 0xa2, 0x1d, 0x2b, 0x0c, 0xfb, + 0xeb, 0xec, 0xd8, 0xdb, 0xc8, 0x36, 0xa6, 0x73, 0xc2, 0x67, 0x97, 0x0f, 0xf3, 0x4a, 0x60, 0x6a, + 0x4e, 0xf0, 0x1b, 0x87, 0x39, 0x0c, 0xdd, 0x82, 0xa1, 0x35, 0x7e, 0xfb, 0x5e, 0x39, 0xd5, 0xd1, + 0xc5, 0x55, 0x7e, 0xec, 0x8e, 0x15, 0x79, 0xaf, 0xdf, 0x1d, 0xfd, 0x13, 0x4b, 0x6e, 0xf6, 0x1f, + 0xd4, 0xe0, 0x58, 0xee, 0x7a, 0xda, 0x4c, 0x0d, 0xd6, 0xca, 0xbe, 0x35, 0x58, 0x3f, 0x04, 0xd0, + 0x24, 0x91, 0x1f, 0xee, 0x30, 0x73, 0x6c, 0xe0, 0xc0, 0xe6, 0x98, 0xb2, 0xe0, 0xe7, 0x14, 0x15, + 0x6c, 0x50, 0x14, 0xe5, 0xcf, 0x78, 0x49, 0xd7, 0x5c, 0xf9, 0x33, 0xe3, 0x0e, 0x85, 0xc1, 0x7b, + 0x7b, 0x87, 0x82, 0x07, 0xc7, 0x78, 0x17, 0x55, 0x4e, 0xef, 0x5d, 0xa4, 0xee, 0xb2, 0xac, 0x88, + 0xb9, 0x2c, 0x19, 0x9c, 0xa7, 0x7b, 0x3f, 0x6f, 0x9f, 0x46, 0xef, 0x84, 0x86, 0xfc, 0xce, 0xc9, + 0x78, 0x43, 0xd7, 0x45, 0x90, 0xd3, 0x80, 0xdd, 0x0a, 0x2d, 0x7e, 0x76, 0x95, 0x27, 0x80, 0xfb, + 0x55, 0x9e, 0xc0, 0xfe, 0x7c, 0x85, 0xda, 0xf1, 0xbc, 0x5f, 0xaa, 0xd2, 0xce, 0x93, 0x30, 0xe8, + 0x74, 0xd2, 0x8d, 0xb0, 0xeb, 0x2e, 0xc1, 0x69, 0xd6, 0x8a, 0x05, 0x14, 0x2d, 0xc2, 0x40, 0x53, + 0x57, 0x4f, 0x39, 0xc8, 0xf7, 0xd4, 0x2e, 0x51, 0x27, 0x25, 0x98, 0x51, 0x41, 0x8f, 0xc2, 0x40, + 0xea, 0xb4, 0x64, 0x22, 0x17, 0x4b, 0xde, 0x5d, 0x75, 0x5a, 0x09, 0x66, 0xad, 0xa6, 0xfa, 0x1e, + 0xd8, 0x47, 0x7d, 0xbf, 0x08, 0xa3, 0x89, 0xd7, 0x0a, 0x9c, 0xb4, 0x13, 0x13, 0xe3, 0x98, 0x4f, + 0x07, 0x79, 0x98, 0x40, 0x9c, 0xc5, 0xb5, 0x7f, 0x73, 0x04, 0x4e, 0xad, 0xcc, 0x2e, 0xc9, 0x9a, + 0xe0, 0x47, 0x96, 0x8b, 0x55, 0xc4, 0xe3, 0xde, 0xe5, 0x62, 0xf5, 0xe0, 0xee, 0x1b, 0xb9, 0x58, + 0xbe, 0x91, 0x8b, 0x95, 0x4d, 0x8c, 0xa9, 0x96, 0x91, 0x18, 0x53, 0xd4, 0x83, 0x7e, 0x12, 0x63, + 0x8e, 0x2c, 0x39, 0x6b, 0xcf, 0x0e, 0x1d, 0x28, 0x39, 0x4b, 0x65, 0xae, 0x95, 0x92, 0xb2, 0xd0, + 0xe3, 0x53, 0x15, 0x66, 0xae, 0xa9, 0xac, 0x21, 0x9e, 0x8e, 0x23, 0x44, 0xfd, 0x2b, 0xe5, 0x77, + 0xa0, 0x8f, 0xac, 0x21, 0x91, 0x11, 0x64, 0x66, 0xaa, 0x0d, 0x95, 0x91, 0xa9, 0x56, 0xd4, 0x9d, + 0x7d, 0x33, 0xd5, 0x5e, 0x84, 0x51, 0xd7, 0x0f, 0x03, 0xb2, 0x1c, 0x87, 0x69, 0xe8, 0x86, 0xbe, + 0x30, 0xeb, 0x95, 0x48, 0x98, 0x35, 0x81, 0x38, 0x8b, 0xdb, 0x2b, 0xcd, 0xad, 0x71, 0xd8, 0x34, + 0x37, 0xb8, 0x4f, 0x69, 0x6e, 0x3f, 0xa7, 0x13, 0xb2, 0x87, 0xd9, 0x17, 0xf9, 0x50, 0xf9, 0x5f, + 0xa4, 0x9f, 0xac, 0x6c, 0xf4, 0x26, 0xbf, 0xcc, 0x8f, 0x1a, 0xc6, 0xb3, 0x61, 0x9b, 0x1a, 0x7e, + 0x23, 0x6c, 0x48, 0x5e, 0x3d, 0x82, 0x09, 0x7b, 0x63, 0x45, 0xb3, 0x51, 0x17, 0xfc, 0xe9, 0x26, + 0x9c, 0xed, 0xc8, 0x61, 0x12, 0xc6, 0xbf, 0x5c, 0x81, 0x1f, 0xd8, 0xb7, 0x0b, 0xe8, 0x16, 0x40, + 0xea, 0xb4, 0xc4, 0x44, 0x15, 0x07, 0x26, 0x87, 0x8c, 0xc4, 0x5c, 0x95, 0xf4, 0x78, 0xa5, 0x13, + 0xf5, 0x97, 0x1d, 0x45, 0xc8, 0xdf, 0x2c, 0x00, 0x33, 0xf4, 0xbb, 0x0a, 0x42, 0xe2, 0xd0, 0x27, + 0x98, 0x41, 0xa8, 0xfa, 0x8f, 0x49, 0x4b, 0xdf, 0x3e, 0xad, 0x3e, 0x1f, 0x66, 0xad, 0x58, 0x40, + 0xd1, 0xf3, 0x30, 0xec, 0xf8, 0x3e, 0xcf, 0xba, 0x21, 0x89, 0xb8, 0xcd, 0x47, 0x57, 0xa6, 0xd3, + 0x20, 0x6c, 0xe2, 0xd9, 0x7f, 0x5a, 0x81, 0x89, 0x7d, 0x64, 0x4a, 0x57, 0x1e, 0x61, 0xad, 0xef, + 0x3c, 0x42, 0x91, 0xf9, 0x30, 0xd8, 0x23, 0xf3, 0xe1, 0x79, 0x18, 0x4e, 0x89, 0xd3, 0x16, 0xb1, + 0x5b, 0xc2, 0x13, 0xa0, 0x4f, 0x80, 0x35, 0x08, 0x9b, 0x78, 0x54, 0x8a, 0x8d, 0x39, 0xae, 0x4b, + 0x92, 0x44, 0xa6, 0x36, 0x08, 0x6f, 0x6a, 0x69, 0x79, 0x13, 0xcc, 0x49, 0x3d, 0x9d, 0x61, 0x81, + 0x73, 0x2c, 0xf3, 0x03, 0xde, 0xe8, 0x73, 0xc0, 0xbf, 0x56, 0x81, 0xc7, 0xf6, 0xd4, 0x6e, 0x7d, + 0x67, 0x9d, 0x74, 0x12, 0x12, 0xe7, 0x27, 0xce, 0xb5, 0x84, 0xc4, 0x98, 0x41, 0xf8, 0x28, 0x45, + 0x91, 0x71, 0xbb, 0x77, 0xd9, 0x29, 0x51, 0x7c, 0x94, 0x32, 0x2c, 0x70, 0x8e, 0xe5, 0xdd, 0x4e, + 0xcb, 0xbf, 0x57, 0x81, 0x27, 0xfa, 0xb0, 0x01, 0x4a, 0x4c, 0x1d, 0xcb, 0x26, 0xf0, 0x55, 0xef, + 0x53, 0x9e, 0xe5, 0x5d, 0x0e, 0xd7, 0xd7, 0x2b, 0x70, 0xa6, 0xb7, 0x2a, 0x46, 0x3f, 0x0e, 0xc7, + 0x62, 0x15, 0x85, 0x65, 0xe6, 0xfe, 0x9d, 0xe4, 0x9e, 0x84, 0x0c, 0x08, 0xe7, 0x71, 0xd1, 0x24, + 0x40, 0xe4, 0xa4, 0x1b, 0xc9, 0xf9, 0x6d, 0x2f, 0x49, 0x45, 0x6d, 0x9b, 0x31, 0x7e, 0x76, 0x25, + 0x5b, 0xb1, 0x81, 0x41, 0xd9, 0xb1, 0x7f, 0x73, 0xe1, 0x95, 0x30, 0xe5, 0x0f, 0xf1, 0x6d, 0xc4, + 0x49, 0x79, 0x13, 0x88, 0x01, 0xc2, 0x79, 0x5c, 0xca, 0x8e, 0x9d, 0x8e, 0xf2, 0x8e, 0xf2, 0xfd, + 0x05, 0x63, 0xb7, 0xa8, 0x5a, 0xb1, 0x81, 0x91, 0xcf, 0x6a, 0xac, 0xed, 0x9f, 0xd5, 0x68, 0xff, + 0xe3, 0x0a, 0x3c, 0xd2, 0xd3, 0x94, 0xeb, 0x6f, 0x01, 0x3e, 0x78, 0x99, 0x88, 0x77, 0x37, 0x77, + 0x0e, 0x98, 0x31, 0xf7, 0xc7, 0x3d, 0x66, 0x9a, 0xc8, 0x98, 0xbb, 0xfb, 0x94, 0xf3, 0x07, 0x6f, + 0x3c, 0xbb, 0x92, 0xe4, 0x06, 0x0e, 0x90, 0x24, 0x97, 0xfb, 0x18, 0xb5, 0x3e, 0x17, 0xf2, 0x9f, + 0x57, 0x7b, 0x0e, 0x2f, 0xdd, 0xfa, 0xf5, 0xe5, 0xa7, 0x9d, 0x83, 0xe3, 0x5e, 0xc0, 0x6e, 0x85, + 0x5a, 0xe9, 0xac, 0x89, 0x72, 0x27, 0x95, 0xec, 0xdd, 0xed, 0x0b, 0x39, 0x38, 0xee, 0x7a, 0xe2, + 0x01, 0x4c, 0x5a, 0xbc, 0xbb, 0x21, 0x3d, 0x58, 0xda, 0x2c, 0xba, 0x0a, 0xa7, 0xe5, 0x50, 0x6c, + 0x38, 0x31, 0x69, 0x0a, 0x35, 0x92, 0x88, 0xdc, 0x8b, 0x47, 0x78, 0xfe, 0x46, 0x01, 0x02, 0x2e, + 0x7e, 0x8e, 0x5d, 0xc4, 0x13, 0x46, 0x9e, 0x2b, 0x36, 0x39, 0xfa, 0x22, 0x1e, 0xda, 0x88, 0x39, + 0xcc, 0xfe, 0x10, 0x34, 0xd4, 0xfb, 0xf3, 0xb0, 0x6e, 0x35, 0xe9, 0xba, 0xc2, 0xba, 0xd5, 0x8c, + 0x33, 0xb0, 0xe8, 0xd7, 0xa2, 0x26, 0x71, 0x6e, 0xf5, 0x5c, 0x26, 0x3b, 0xcc, 0x3e, 0xb6, 0xdf, + 0x05, 0x23, 0xca, 0xcf, 0xd2, 0xef, 0xf5, 0x44, 0xf6, 0x17, 0x07, 0x61, 0x34, 0x53, 0x72, 0x30, + 0xe3, 0x60, 0xb5, 0xf6, 0x75, 0xb0, 0xb2, 0x88, 0xfe, 0x4e, 0x20, 0xef, 0x2e, 0x33, 0x22, 0xfa, + 0x3b, 0x01, 0xc1, 0x1c, 0x46, 0xcd, 0xdb, 0x66, 0xbc, 0x83, 0x3b, 0x81, 0x08, 0xa7, 0x55, 0xe6, + 0xed, 0x1c, 0x6b, 0xc5, 0x02, 0x8a, 0x3e, 0x6e, 0xc1, 0x48, 0xc2, 0xbc, 0xf7, 0xdc, 0x3d, 0x2d, + 0x26, 0xdd, 0xa5, 0xc3, 0x57, 0x54, 0x54, 0xe5, 0x35, 0x59, 0x84, 0x8c, 0xd9, 0x82, 0x33, 0x1c, + 0xd1, 0xa7, 0x2c, 0x68, 0xa8, 0x2b, 0x56, 0xc4, 0x45, 0x84, 0x2b, 0xe5, 0x56, 0x74, 0xe4, 0x7e, + 0x4d, 0x75, 0x10, 0xa2, 0x4a, 0xeb, 0x61, 0xcd, 0x18, 0x25, 0xca, 0x77, 0x3c, 0x74, 0x34, 0xbe, + 0x63, 0x28, 0xf0, 0x1b, 0xbf, 0x13, 0x1a, 0x6d, 0x27, 0xf0, 0xd6, 0x49, 0x92, 0x72, 0x77, 0xae, + 0x2c, 0x34, 0x2b, 0x1b, 0xb1, 0x86, 0x53, 0x85, 0x9c, 0xb0, 0x17, 0x4b, 0x0d, 0xff, 0x2b, 0x53, + 0xc8, 0x2b, 0xba, 0x19, 0x9b, 0x38, 0xa6, 0xb3, 0x18, 0xee, 0xab, 0xb3, 0x78, 0x78, 0x6f, 0x67, + 0xb1, 0xfd, 0x0f, 0x2c, 0x38, 0x5d, 0xf8, 0xd5, 0x1e, 0xdc, 0xc0, 0x47, 0xfb, 0x4b, 0x35, 0x38, + 0x59, 0x50, 0x3b, 0x14, 0xed, 0x98, 0xf3, 0xd9, 0x2a, 0x23, 0x86, 0x20, 0x7b, 0x24, 0x2e, 0x87, + 0xb1, 0x60, 0x12, 0x1f, 0xec, 0xa8, 0x46, 0x1f, 0x97, 0x54, 0xef, 0xed, 0x71, 0x89, 0x31, 0x2d, + 0x07, 0xee, 0xeb, 0xb4, 0xac, 0xed, 0x73, 0x86, 0xf1, 0x0d, 0x0b, 0xc6, 0xdb, 0x3d, 0x0a, 0xd6, + 0x0b, 0xc7, 0xe3, 0xf5, 0xa3, 0x29, 0x87, 0x3f, 0xf3, 0xe8, 0xed, 0xdd, 0x89, 0x9e, 0xf7, 0x04, + 0xe0, 0x9e, 0xbd, 0xb2, 0xbf, 0x53, 0x05, 0x56, 0xb8, 0x96, 0xd5, 0x87, 0xdb, 0x41, 0x1f, 0x33, + 0x4b, 0x10, 0x5b, 0x65, 0x95, 0xcb, 0xe5, 0xc4, 0x55, 0x09, 0x63, 0x3e, 0x82, 0x45, 0x15, 0x8d, + 0xf3, 0x42, 0xab, 0xd2, 0x87, 0xd0, 0xf2, 0x65, 0xad, 0xe7, 0x6a, 0xf9, 0xb5, 0x9e, 0x1b, 0xf9, + 0x3a, 0xcf, 0x7b, 0x7f, 0xe2, 0x81, 0x07, 0xf2, 0x13, 0xff, 0x92, 0xc5, 0x05, 0x4f, 0xee, 0x2b, + 0x68, 0xcb, 0xc0, 0xda, 0xc3, 0x32, 0x78, 0x1a, 0xea, 0x09, 0xf1, 0xd7, 0x2f, 0x12, 0xc7, 0x17, + 0x16, 0x84, 0x3e, 0xbf, 0x16, 0xed, 0x58, 0x61, 0xb0, 0xcb, 0x60, 0x7d, 0x3f, 0xbc, 0x75, 0xbe, + 0x1d, 0xa5, 0x3b, 0xc2, 0x96, 0xd0, 0x97, 0xc1, 0x2a, 0x08, 0x36, 0xb0, 0xec, 0xbf, 0x59, 0xe1, + 0x33, 0x50, 0x04, 0x41, 0xbc, 0x90, 0xbb, 0xbe, 0xaf, 0xff, 0xf8, 0x81, 0x8f, 0x00, 0xb8, 0xea, + 0x82, 0x7c, 0x71, 0x26, 0x74, 0xf1, 0xd0, 0xb7, 0x77, 0x0b, 0x7a, 0xfa, 0x35, 0x74, 0x1b, 0x36, + 0xf8, 0x65, 0x64, 0x69, 0x75, 0x5f, 0x59, 0x9a, 0x11, 0x2b, 0x03, 0xfb, 0x68, 0xbb, 0x3f, 0xb5, + 0x20, 0x63, 0x11, 0xa1, 0x08, 0x6a, 0xb4, 0xbb, 0x3b, 0xe5, 0xdc, 0xfd, 0x6f, 0x92, 0xa6, 0xa2, + 0x51, 0x4c, 0x7b, 0xf6, 0x13, 0x73, 0x46, 0xc8, 0x17, 0xb1, 0x12, 0x7c, 0x54, 0xaf, 0x94, 0xc7, + 0xf0, 0x62, 0x18, 0x6e, 0xf2, 0x83, 0x4d, 0x1d, 0x77, 0x61, 0xbf, 0x00, 0x27, 0xba, 0x3a, 0xc5, + 0x6e, 0xea, 0x0a, 0xa9, 0xf6, 0xc9, 0x4d, 0x57, 0x96, 0xeb, 0x89, 0x39, 0xcc, 0xfe, 0xba, 0x05, + 0xc7, 0xf3, 0xe4, 0xd1, 0x9b, 0x16, 0x9c, 0x48, 0xf2, 0xf4, 0x8e, 0x6a, 0xec, 0x54, 0xbc, 0x63, + 0x17, 0x08, 0x77, 0x77, 0xc2, 0xfe, 0xbf, 0x62, 0xf2, 0xdf, 0xf0, 0x82, 0x66, 0x78, 0x4b, 0x19, + 0x26, 0x56, 0x4f, 0xc3, 0x84, 0xae, 0x47, 0x77, 0x83, 0x34, 0x3b, 0x7e, 0x57, 0xe6, 0xe8, 0x8a, + 0x68, 0xc7, 0x0a, 0x83, 0x25, 0xca, 0x75, 0x44, 0x31, 0xf8, 0xdc, 0xa4, 0x9c, 0x13, 0xed, 0x58, + 0x61, 0xa0, 0xe7, 0x60, 0xc4, 0x78, 0x49, 0x39, 0x2f, 0x99, 0x41, 0x6e, 0xa8, 0xcc, 0x04, 0x67, + 0xb0, 0xd0, 0x24, 0x80, 0x32, 0x72, 0xa4, 0x8a, 0x64, 0x8e, 0x22, 0x25, 0x89, 0x12, 0x6c, 0x60, + 0xb0, 0xb4, 0x54, 0xbf, 0x93, 0x30, 0x1f, 0xff, 0xa0, 0x2e, 0x50, 0x3a, 0x2b, 0xda, 0xb0, 0x82, + 0x52, 0x69, 0xd2, 0x76, 0x82, 0x8e, 0xe3, 0xd3, 0x11, 0x12, 0x5b, 0x3f, 0xb5, 0x0c, 0x97, 0x14, + 0x04, 0x1b, 0x58, 0xf4, 0x8d, 0x53, 0xaf, 0x4d, 0x5e, 0x0e, 0x03, 0x19, 0xa7, 0xa6, 0x8f, 0x7d, + 0x44, 0x3b, 0x56, 0x18, 0xf6, 0x7f, 0xb5, 0xe0, 0x98, 0xce, 0x87, 0xe7, 0x77, 0x72, 0x9b, 0x3b, + 0x55, 0x6b, 0xdf, 0x9d, 0x6a, 0x36, 0xfb, 0xb7, 0xd2, 0x57, 0xf6, 0xaf, 0x99, 0x98, 0x5b, 0xdd, + 0x33, 0x31, 0xf7, 0x87, 0xf4, 0x7d, 0xaf, 0x3c, 0x83, 0x77, 0xb8, 0xe8, 0xae, 0x57, 0x64, 0xc3, + 0xa0, 0xeb, 0xa8, 0xba, 0x31, 0x23, 0x7c, 0xef, 0x30, 0x3b, 0xcd, 0x90, 0x04, 0xc4, 0xbe, 0x0a, + 0x0d, 0x75, 0xfa, 0x21, 0x37, 0xaa, 0x56, 0xf1, 0x46, 0xb5, 0xaf, 0x04, 0xc1, 0x99, 0xb5, 0x6f, + 0x7e, 0xf7, 0xf1, 0xb7, 0xfd, 0xfe, 0x77, 0x1f, 0x7f, 0xdb, 0xb7, 0xbf, 0xfb, 0xf8, 0xdb, 0x3e, + 0x7e, 0xfb, 0x71, 0xeb, 0x9b, 0xb7, 0x1f, 0xb7, 0x7e, 0xff, 0xf6, 0xe3, 0xd6, 0xb7, 0x6f, 0x3f, + 0x6e, 0x7d, 0xe7, 0xf6, 0xe3, 0xd6, 0x17, 0xfe, 0xd3, 0xe3, 0x6f, 0x7b, 0xb9, 0x30, 0x50, 0x91, + 0xfe, 0x78, 0xc6, 0x6d, 0x4e, 0x6d, 0x9d, 0x63, 0xb1, 0x72, 0x74, 0x79, 0x4d, 0x19, 0x73, 0x6a, + 0x4a, 0x2e, 0xaf, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x17, 0x3c, 0x66, 0x2b, 0x32, 0xe3, 0x00, 0x00, } @@ -11605,6 +11606,13 @@ func (m *RepoCreds) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + i -= len(m.NoProxy) + copy(dAtA[i:], m.NoProxy) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.NoProxy))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba i-- if m.ForceHttpBasicAuth { dAtA[i] = 1 @@ -11756,6 +11764,13 @@ func (m *Repository) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + i -= len(m.NoProxy) + copy(dAtA[i:], m.NoProxy) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.NoProxy))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba i-- if m.ForceHttpBasicAuth { dAtA[i] = 1 @@ -16934,6 +16949,8 @@ func (m *RepoCreds) Size() (n int) { l = len(m.Proxy) n += 2 + l + sovGenerated(uint64(l)) n += 3 + l = len(m.NoProxy) + n += 2 + l + sovGenerated(uint64(l)) return n } @@ -16996,6 +17013,8 @@ func (m *Repository) Size() (n int) { l = len(m.GCPServiceAccountKey) n += 2 + l + sovGenerated(uint64(l)) n += 3 + l = len(m.NoProxy) + n += 2 + l + sovGenerated(uint64(l)) return n } @@ -19835,6 +19854,7 @@ func (this *RepoCreds) String() string { `GCPServiceAccountKey:` + fmt.Sprintf("%v", this.GCPServiceAccountKey) + `,`, `Proxy:` + fmt.Sprintf("%v", this.Proxy) + `,`, `ForceHttpBasicAuth:` + fmt.Sprintf("%v", this.ForceHttpBasicAuth) + `,`, + `NoProxy:` + fmt.Sprintf("%v", this.NoProxy) + `,`, `}`, }, "") return s @@ -19882,6 +19902,7 @@ func (this *Repository) String() string { `Project:` + fmt.Sprintf("%v", this.Project) + `,`, `GCPServiceAccountKey:` + fmt.Sprintf("%v", this.GCPServiceAccountKey) + `,`, `ForceHttpBasicAuth:` + fmt.Sprintf("%v", this.ForceHttpBasicAuth) + `,`, + `NoProxy:` + fmt.Sprintf("%v", this.NoProxy) + `,`, `}`, }, "") return s @@ -41419,6 +41440,38 @@ func (m *RepoCreds) Unmarshal(dAtA []byte) error { } } m.ForceHttpBasicAuth = bool(v != 0) + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoProxy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NoProxy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -42193,6 +42246,38 @@ func (m *Repository) Unmarshal(dAtA []byte) error { } } m.ForceHttpBasicAuth = bool(v != 0) + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NoProxy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NoProxy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/application/v1alpha1/generated.proto b/pkg/apis/application/v1alpha1/generated.proto index f70ccd1792d2bd..844533b06965e9 100644 --- a/pkg/apis/application/v1alpha1/generated.proto +++ b/pkg/apis/application/v1alpha1/generated.proto @@ -1554,6 +1554,9 @@ message RepoCreds { // ForceHttpBasicAuth specifies whether Argo CD should attempt to force basic auth for HTTP connections optional bool forceHttpBasicAuth = 20; + + // NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied + optional string noProxy = 23; } // RepositoryList is a collection of Repositories. @@ -1631,6 +1634,9 @@ message Repository { // ForceHttpBasicAuth specifies whether Argo CD should attempt to force basic auth for HTTP connections optional bool forceHttpBasicAuth = 22; + + // NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied + optional string noProxy = 23; } // A RepositoryCertificate is either SSH known hosts entry or TLS certificate diff --git a/pkg/apis/application/v1alpha1/openapi_generated.go b/pkg/apis/application/v1alpha1/openapi_generated.go index a6f4af7d241147..61c590fe7df42f 100644 --- a/pkg/apis/application/v1alpha1/openapi_generated.go +++ b/pkg/apis/application/v1alpha1/openapi_generated.go @@ -5525,6 +5525,13 @@ func schema_pkg_apis_application_v1alpha1_RepoCreds(ref common.ReferenceCallback Format: "", }, }, + "noProxy": { + SchemaProps: spec.SchemaProps{ + Description: "NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied", + Type: []string{"string"}, + Format: "", + }, + }, }, Required: []string{"url"}, }, @@ -5729,6 +5736,13 @@ func schema_pkg_apis_application_v1alpha1_Repository(ref common.ReferenceCallbac Format: "", }, }, + "noProxy": { + SchemaProps: spec.SchemaProps{ + Description: "NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied", + Type: []string{"string"}, + Format: "", + }, + }, }, Required: []string{"repo"}, }, diff --git a/pkg/apis/application/v1alpha1/repository_types.go b/pkg/apis/application/v1alpha1/repository_types.go index 3a557813d87c69..6c71eab1ca9444 100644 --- a/pkg/apis/application/v1alpha1/repository_types.go +++ b/pkg/apis/application/v1alpha1/repository_types.go @@ -44,6 +44,8 @@ type RepoCreds struct { Proxy string `json:"proxy,omitempty" protobuf:"bytes,19,opt,name=proxy"` // ForceHttpBasicAuth specifies whether Argo CD should attempt to force basic auth for HTTP connections ForceHttpBasicAuth bool `json:"forceHttpBasicAuth,omitempty" protobuf:"bytes,20,opt,name=forceHttpBasicAuth"` + // NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied + NoProxy string `json:"noProxy,omitempty" protobuf:"bytes,23,opt,name=noProxy"` } // Repository is a repository holding application configurations @@ -93,6 +95,8 @@ type Repository struct { GCPServiceAccountKey string `json:"gcpServiceAccountKey,omitempty" protobuf:"bytes,21,opt,name=gcpServiceAccountKey"` // ForceHttpBasicAuth specifies whether Argo CD should attempt to force basic auth for HTTP connections ForceHttpBasicAuth bool `json:"forceHttpBasicAuth,omitempty" protobuf:"bytes,22,opt,name=forceHttpBasicAuth"` + // NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied + NoProxy string `json:"noProxy,omitempty" protobuf:"bytes,23,opt,name=noProxy"` } // IsInsecure returns true if the repository has been configured to skip server verification @@ -183,6 +187,9 @@ func (repo *Repository) CopyCredentialsFrom(source *RepoCreds) { if repo.Proxy == "" { repo.Proxy = source.Proxy } + if repo.NoProxy == "" { + repo.NoProxy = source.NoProxy + } repo.ForceHttpBasicAuth = source.ForceHttpBasicAuth } } @@ -193,13 +200,13 @@ func (repo *Repository) GetGitCreds(store git.CredsStore) git.Creds { return git.NopCreds{} } if repo.Password != "" { - return git.NewHTTPSCreds(repo.Username, repo.Password, repo.TLSClientCertData, repo.TLSClientCertKey, repo.IsInsecure(), repo.Proxy, store, repo.ForceHttpBasicAuth) + return git.NewHTTPSCreds(repo.Username, repo.Password, repo.TLSClientCertData, repo.TLSClientCertKey, repo.IsInsecure(), repo.Proxy, repo.NoProxy, store, repo.ForceHttpBasicAuth) } if repo.SSHPrivateKey != "" { - return git.NewSSHCreds(repo.SSHPrivateKey, getCAPath(repo.Repo), repo.IsInsecure(), store, repo.Proxy) + return git.NewSSHCreds(repo.SSHPrivateKey, getCAPath(repo.Repo), repo.IsInsecure(), store, repo.Proxy, repo.NoProxy) } if repo.GithubAppPrivateKey != "" && repo.GithubAppId != 0 && repo.GithubAppInstallationId != 0 { - return git.NewGitHubAppCreds(repo.GithubAppId, repo.GithubAppInstallationId, repo.GithubAppPrivateKey, repo.GitHubAppEnterpriseBaseURL, repo.Repo, repo.TLSClientCertData, repo.TLSClientCertKey, repo.IsInsecure(), repo.Proxy, store) + return git.NewGitHubAppCreds(repo.GithubAppId, repo.GithubAppInstallationId, repo.GithubAppPrivateKey, repo.GitHubAppEnterpriseBaseURL, repo.Repo, repo.TLSClientCertData, repo.TLSClientCertKey, repo.IsInsecure(), repo.Proxy, repo.NoProxy, store) } if repo.GCPServiceAccountKey != "" { return git.NewGoogleCloudCreds(repo.GCPServiceAccountKey, store) diff --git a/reposerver/repository/repository.go b/reposerver/repository/repository.go index ac738cd513d196..b4badf6ca24a54 100644 --- a/reposerver/repository/repository.go +++ b/reposerver/repository/repository.go @@ -91,8 +91,8 @@ type Service struct { parallelismLimitSemaphore *semaphore.Weighted metricsServer *metrics.MetricsServer resourceTracking argo.ResourceTracking - newGitClient func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, opts ...git.ClientOpts) (git.Client, error) - newHelmClient func(repoURL string, creds helm.Creds, enableOci bool, proxy string, opts ...helm.ClientOpts) helm.Client + newGitClient func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, noProxy string, opts ...git.ClientOpts) (git.Client, error) + newHelmClient func(repoURL string, creds helm.Creds, enableOci bool, proxy string, noProxy string, opts ...helm.ClientOpts) helm.Client initConstants RepoServerInitConstants // now is usually just time.Now, but may be replaced by unit tests for testing purposes now func() time.Time @@ -131,8 +131,8 @@ func NewService(metricsServer *metrics.MetricsServer, cache *cache.Cache, initCo metricsServer: metricsServer, newGitClient: git.NewClientExt, resourceTracking: resourceTracking, - newHelmClient: func(repoURL string, creds helm.Creds, enableOci bool, proxy string, opts ...helm.ClientOpts) helm.Client { - return helm.NewClientWithLock(repoURL, creds, sync.NewKeyLock(), enableOci, proxy, opts...) + newHelmClient: func(repoURL string, creds helm.Creds, enableOci bool, proxy string, noProxy string, opts ...helm.ClientOpts) helm.Client { + return helm.NewClientWithLock(repoURL, creds, sync.NewKeyLock(), enableOci, proxy, noProxy, opts...) }, initConstants: initConstants, now: time.Now, @@ -2336,7 +2336,7 @@ func (s *Service) newClient(repo *v1alpha1.Repository, opts ...git.ClientOpts) ( return nil, err } opts = append(opts, git.WithEventHandlers(metrics.NewGitClientEventHandlers(s.metricsServer))) - return s.newGitClient(repo.Repo, repoPath, repo.GetGitCreds(s.gitCredsStore), repo.IsInsecure(), repo.EnableLFS, repo.Proxy, opts...) + return s.newGitClient(repo.Repo, repoPath, repo.GetGitCreds(s.gitCredsStore), repo.IsInsecure(), repo.EnableLFS, repo.Proxy, repo.NoProxy, opts...) } // newClientResolveRevision is a helper to perform the common task of instantiating a git client @@ -2356,7 +2356,7 @@ func (s *Service) newClientResolveRevision(repo *v1alpha1.Repository, revision s func (s *Service) newHelmClientResolveRevision(repo *v1alpha1.Repository, revision string, chart string, noRevisionCache bool) (helm.Client, string, error) { enableOCI := repo.EnableOCI || helm.IsHelmOciRepo(repo.Repo) - helmClient := s.newHelmClient(repo.Repo, repo.GetHelmCreds(), enableOCI, repo.Proxy, helm.WithIndexCache(s.cache), helm.WithChartPaths(s.chartPaths)) + helmClient := s.newHelmClient(repo.Repo, repo.GetHelmCreds(), enableOCI, repo.Proxy, repo.NoProxy, helm.WithIndexCache(s.cache), helm.WithChartPaths(s.chartPaths)) if helm.IsVersion(revision) { return helmClient, revision, nil } @@ -2460,7 +2460,7 @@ func checkoutRevision(gitClient git.Client, revision string, submoduleEnabled bo } func (s *Service) GetHelmCharts(ctx context.Context, q *apiclient.HelmChartsRequest) (*apiclient.HelmChartsResponse, error) { - index, err := s.newHelmClient(q.Repo.Repo, q.Repo.GetHelmCreds(), q.Repo.EnableOCI, q.Repo.Proxy, helm.WithChartPaths(s.chartPaths)).GetIndex(true, s.initConstants.HelmRegistryMaxIndexSize) + index, err := s.newHelmClient(q.Repo.Repo, q.Repo.GetHelmCreds(), q.Repo.EnableOCI, q.Repo.Proxy, q.Repo.NoProxy, helm.WithChartPaths(s.chartPaths)).GetIndex(true, s.initConstants.HelmRegistryMaxIndexSize) if err != nil { return nil, err } @@ -2485,17 +2485,17 @@ func (s *Service) TestRepository(ctx context.Context, q *apiclient.TestRepositor } checks := map[string]func() error{ "git": func() error { - return git.TestRepo(repo.Repo, repo.GetGitCreds(s.gitCredsStore), repo.IsInsecure(), repo.IsLFSEnabled(), repo.Proxy) + return git.TestRepo(repo.Repo, repo.GetGitCreds(s.gitCredsStore), repo.IsInsecure(), repo.IsLFSEnabled(), repo.Proxy, repo.NoProxy) }, "helm": func() error { if repo.EnableOCI { if !helm.IsHelmOciRepo(repo.Repo) { return errors.New("OCI Helm repository URL should include hostname and port only") } - _, err := helm.NewClient(repo.Repo, repo.GetHelmCreds(), repo.EnableOCI, repo.Proxy).TestHelmOCI() + _, err := helm.NewClient(repo.Repo, repo.GetHelmCreds(), repo.EnableOCI, repo.Proxy, repo.NoProxy).TestHelmOCI() return err } else { - _, err := helm.NewClient(repo.Repo, repo.GetHelmCreds(), repo.EnableOCI, repo.Proxy).GetIndex(false, s.initConstants.HelmRegistryMaxIndexSize) + _, err := helm.NewClient(repo.Repo, repo.GetHelmCreds(), repo.EnableOCI, repo.Proxy, repo.NoProxy).GetIndex(false, s.initConstants.HelmRegistryMaxIndexSize) return err } }, @@ -2528,7 +2528,7 @@ func (s *Service) ResolveRevision(ctx context.Context, q *apiclient.ResolveRevis AmbiguousRevision: fmt.Sprintf("%v (%v)", ambiguousRevision, revision), }, nil } else { - gitClient, err := git.NewClient(repo.Repo, repo.GetGitCreds(s.gitCredsStore), repo.IsInsecure(), repo.IsLFSEnabled(), repo.Proxy) + gitClient, err := git.NewClient(repo.Repo, repo.GetGitCreds(s.gitCredsStore), repo.IsInsecure(), repo.IsLFSEnabled(), repo.Proxy, repo.NoProxy) if err != nil { return &apiclient.ResolveRevisionResponse{Revision: "", AmbiguousRevision: ""}, err } diff --git a/reposerver/repository/repository_test.go b/reposerver/repository/repository_test.go index 14c877d3b42c91..6f6a4efbc2095d 100644 --- a/reposerver/repository/repository_test.go +++ b/reposerver/repository/repository_test.go @@ -144,10 +144,10 @@ func newServiceWithOpt(t *testing.T, cf clientFunc, root string) (*Service, *git t.Cleanup(cacheMocks.mockCache.StopRedisCallback) service := NewService(metrics.NewMetricsServer(), cacheMocks.cache, RepoServerInitConstants{ParallelismLimit: 1}, argo.NewResourceTracking(), &git.NoopCredsStore{}, root) - service.newGitClient = func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, opts ...git.ClientOpts) (client git.Client, e error) { + service.newGitClient = func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, noProxy string, opts ...git.ClientOpts) (client git.Client, e error) { return gitClient, nil } - service.newHelmClient = func(repoURL string, creds helm.Creds, enableOci bool, proxy string, opts ...helm.ClientOpts) helm.Client { + service.newHelmClient = func(repoURL string, creds helm.Creds, enableOci bool, proxy string, noProxy string, opts ...helm.ClientOpts) helm.Client { return helmClient } service.gitRepoInitializer = func(rootPath string) goio.Closer { @@ -186,7 +186,7 @@ func newServiceWithCommitSHA(t *testing.T, root, revision string) *Service { paths.On("GetPathIfExists", mock.Anything).Return(root, nil) }, root) - service.newGitClient = func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, opts ...git.ClientOpts) (client git.Client, e error) { + service.newGitClient = func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, noProxy string, opts ...git.ClientOpts) (client git.Client, e error) { return gitClient, nil } @@ -353,7 +353,7 @@ func TestGenerateManifest_RefOnlyShortCircuit(t *testing.T) { cacheMocks := newCacheMocks() t.Cleanup(cacheMocks.mockCache.StopRedisCallback) service := NewService(metrics.NewMetricsServer(), cacheMocks.cache, RepoServerInitConstants{ParallelismLimit: 1}, argo.NewResourceTracking(), &git.NoopCredsStore{}, repopath) - service.newGitClient = func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, opts ...git.ClientOpts) (client git.Client, e error) { + service.newGitClient = func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, noProxy string, opts ...git.ClientOpts) (client git.Client, e error) { opts = append(opts, git.WithEventHandlers(git.EventHandlers{ // Primary check, we want to make sure ls-remote is not called when the item is in cache OnLsRemote: func(repo string) func() { @@ -367,7 +367,7 @@ func TestGenerateManifest_RefOnlyShortCircuit(t *testing.T) { } }, })) - gitClient, err := git.NewClientExt(rawRepoURL, root, creds, insecure, enableLfs, proxy, opts...) + gitClient, err := git.NewClientExt(rawRepoURL, root, creds, insecure, enableLfs, proxy, noProxy, opts...) return gitClient, err } revision := initGitRepo(t, newGitRepoOptions{ @@ -420,7 +420,7 @@ func TestGenerateManifestsHelmWithRefs_CachedNoLsRemote(t *testing.T) { service := NewService(metrics.NewMetricsServer(), cacheMocks.cache, RepoServerInitConstants{ParallelismLimit: 1}, argo.NewResourceTracking(), &git.NoopCredsStore{}, repopath) var gitClient git.Client var err error - service.newGitClient = func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, opts ...git.ClientOpts) (client git.Client, e error) { + service.newGitClient = func(rawRepoURL string, root string, creds git.Creds, insecure bool, enableLfs bool, proxy string, noProxy string, opts ...git.ClientOpts) (client git.Client, e error) { opts = append(opts, git.WithEventHandlers(git.EventHandlers{ // Primary check, we want to make sure ls-remote is not called when the item is in cache OnLsRemote: func(repo string) func() { @@ -429,7 +429,7 @@ func TestGenerateManifestsHelmWithRefs_CachedNoLsRemote(t *testing.T) { } }, })) - gitClient, err = git.NewClientExt(rawRepoURL, root, creds, insecure, enableLfs, proxy, opts...) + gitClient, err = git.NewClientExt(rawRepoURL, root, creds, insecure, enableLfs, proxy, noProxy, opts...) return gitClient, err } repoRemote := fmt.Sprintf("file://%s", repopath) @@ -2950,7 +2950,7 @@ func TestCheckoutRevisionCanGetNonstandardRefs(t *testing.T) { destRepoPath, err := os.MkdirTemp(rootPath, "") require.NoError(t, err) - gitClient, err := git.NewClientExt("file://"+sourceRepoPath, destRepoPath, &git.NopCreds{}, true, false, "") + gitClient, err := git.NewClientExt("file://"+sourceRepoPath, destRepoPath, &git.NopCreds{}, true, false, "", "") require.NoError(t, err) pullSha, err := gitClient.LsRemote("refs/pull/123/head") @@ -3758,7 +3758,7 @@ func TestGetRefs_CacheWithLockDisabled(t *testing.T) { wg.Add(1) go func() { defer wg.Done() - client, err := git.NewClient(fmt.Sprintf("file://%s", dir), git.NopCreds{}, true, false, "", git.WithCache(cacheMocks.cache, true)) + client, err := git.NewClient(fmt.Sprintf("file://%s", dir), git.NopCreds{}, true, false, "", "", git.WithCache(cacheMocks.cache, true)) require.NoError(t, err) refs, err := client.LsRefs() assert.NoError(t, err) @@ -3785,7 +3785,7 @@ func TestGetRefs_CacheDisabled(t *testing.T) { }) cacheMocks := newCacheMocks() t.Cleanup(cacheMocks.mockCache.StopRedisCallback) - client, err := git.NewClient(fmt.Sprintf("file://%s", dir), git.NopCreds{}, true, false, "", git.WithCache(cacheMocks.cache, false)) + client, err := git.NewClient(fmt.Sprintf("file://%s", dir), git.NopCreds{}, true, false, "", "", git.WithCache(cacheMocks.cache, false)) require.NoError(t, err) refs, err := client.LsRefs() assert.NoError(t, err) @@ -3814,7 +3814,7 @@ func TestGetRefs_CacheWithLock(t *testing.T) { wg.Add(1) go func() { defer wg.Done() - client, err := git.NewClient(fmt.Sprintf("file://%s", dir), git.NopCreds{}, true, false, "", git.WithCache(cacheMocks.cache, true)) + client, err := git.NewClient(fmt.Sprintf("file://%s", dir), git.NopCreds{}, true, false, "", "", git.WithCache(cacheMocks.cache, true)) require.NoError(t, err) refs, err := client.LsRefs() assert.NoError(t, err) @@ -3843,7 +3843,7 @@ func TestGetRefs_CacheUnlockedOnUpdateFailed(t *testing.T) { cacheMocks := newCacheMocks() t.Cleanup(cacheMocks.mockCache.StopRedisCallback) repoUrl := fmt.Sprintf("file://%s", dir) - client, err := git.NewClient(repoUrl, git.NopCreds{}, true, false, "", git.WithCache(cacheMocks.cache, true)) + client, err := git.NewClient(repoUrl, git.NopCreds{}, true, false, "", "", git.WithCache(cacheMocks.cache, true)) require.NoError(t, err) refs, err := client.LsRefs() assert.NoError(t, err) @@ -3874,7 +3874,7 @@ func TestGetRefs_CacheLockTryLockGitRefCacheError(t *testing.T) { repoUrl := fmt.Sprintf("file://%s", dir) // buf := bytes.Buffer{} // log.SetOutput(&buf) - client, err := git.NewClient(repoUrl, git.NopCreds{}, true, false, "", git.WithCache(cacheMocks.cache, true)) + client, err := git.NewClient(repoUrl, git.NopCreds{}, true, false, "", "", git.WithCache(cacheMocks.cache, true)) require.NoError(t, err) refs, err := client.LsRefs() assert.NoError(t, err) diff --git a/ui/src/app/settings/components/repo-details/repo-details.tsx b/ui/src/app/settings/components/repo-details/repo-details.tsx index 25fa9831727004..017d87bede789a 100644 --- a/ui/src/app/settings/components/repo-details/repo-details.tsx +++ b/ui/src/app/settings/components/repo-details/repo-details.tsx @@ -50,6 +50,13 @@ export const RepoDetails = (props: {repo: models.Repository; save?: (params: New }); } + if (repository.noProxy) { + items.push({ + title: 'NoProxy (optional)', + view: repository.noProxy + }); + } + return items; }; @@ -64,6 +71,7 @@ export const RepoDetails = (props: {repo: models.Repository; save?: (params: New insecure: repo.insecure || false, enableLfs: repo.enableLfs || false, proxy: repo.proxy || '', + noProxy: repo.noProxy || '', project: repo.project || '', enableOCI: repo.enableOCI || false, forceHttpBasicAuth: repo.forceHttpBasicAuth || false diff --git a/ui/src/app/settings/components/repos-list/repos-list.tsx b/ui/src/app/settings/components/repos-list/repos-list.tsx index 5322644073142d..8dfcb64e0e70f2 100644 --- a/ui/src/app/settings/components/repos-list/repos-list.tsx +++ b/ui/src/app/settings/components/repos-list/repos-list.tsx @@ -21,6 +21,7 @@ interface NewSSHRepoParams { insecure: boolean; enableLfs: boolean; proxy: string; + noProxy: string; project?: string; } @@ -35,6 +36,7 @@ export interface NewHTTPSRepoParams { insecure: boolean; enableLfs: boolean; proxy: string; + noProxy: string; project?: string; forceHttpBasicAuth?: boolean; enableOCI: boolean; @@ -53,6 +55,7 @@ interface NewGitHubAppRepoParams { insecure: boolean; enableLfs: boolean; proxy: string; + noProxy: string; project?: string; } @@ -62,6 +65,7 @@ interface NewGoogleCloudSourceRepoParams { url: string; gcpServiceAccountKey: string; proxy: string; + noProxy: string; project?: string; } @@ -77,6 +81,7 @@ interface NewHTTPSRepoCredsParams { tlsClientCertData: string; tlsClientCertKey: string; proxy: string; + noProxy: string; forceHttpBasicAuth: boolean; enableOCI: boolean; } @@ -90,6 +95,7 @@ interface NewGitHubAppRepoCredsParams { tlsClientCertData: string; tlsClientCertKey: string; proxy: string; + noProxy: string; } interface NewGoogleCloudSourceRepoCredsParams { @@ -447,6 +453,9 @@ export class ReposList extends React.Component<
+
+ +
)} {this.state.method === ConnectionMethod.HTTPS && ( @@ -508,6 +517,9 @@ export class ReposList extends React.Component<
+
+ +
@@ -589,6 +601,9 @@ export class ReposList extends React.Component<
+
+ +
)} {this.state.method === ConnectionMethod.GOOGLECLOUD && ( @@ -612,6 +627,9 @@ export class ReposList extends React.Component<
+
+ +
)} @@ -703,6 +721,7 @@ export class ReposList extends React.Component< tlsClientCertData: params.tlsClientCertData, tlsClientCertKey: params.tlsClientCertKey, proxy: params.proxy, + noProxy: params.noProxy, forceHttpBasicAuth: params.forceHttpBasicAuth, enableOCI: params.enableOCI }); @@ -751,7 +770,8 @@ export class ReposList extends React.Component< githubAppEnterpriseBaseURL: params.githubAppEnterpriseBaseURL, tlsClientCertData: params.tlsClientCertData, tlsClientCertKey: params.tlsClientCertKey, - proxy: params.proxy + proxy: params.proxy, + noProxy: params.noProxy, }); } else { this.setState({connecting: true}); diff --git a/ui/src/app/shared/models.ts b/ui/src/app/shared/models.ts index bb88dcf3cc4430..4e53081cf34225 100644 --- a/ui/src/app/shared/models.ts +++ b/ui/src/app/shared/models.ts @@ -534,6 +534,7 @@ export interface Repository { tlsClientCertData?: string; tlsClientCertKey?: string; proxy?: string; + noProxy?: string; insecure?: boolean; enableLfs?: boolean; githubAppId?: string; diff --git a/ui/src/app/shared/services/repo-service.ts b/ui/src/app/shared/services/repo-service.ts index 94378bee8352bb..b77b303b86867a 100644 --- a/ui/src/app/shared/services/repo-service.ts +++ b/ui/src/app/shared/services/repo-service.ts @@ -27,6 +27,7 @@ export class RepositoriesService { insecure, enableLfs, proxy, + noProxy, project, forceHttpBasicAuth, enableOCI @@ -41,13 +42,14 @@ export class RepositoriesService { insecure: boolean; enableLfs: boolean; proxy: string; + noProxy: string; project?: string; forceHttpBasicAuth?: boolean; enableOCI: boolean; }): Promise { return requests .post('/repositories') - .send({type, name, repo: url, username, password, tlsClientCertData, tlsClientCertKey, insecure, enableLfs, proxy, project, forceHttpBasicAuth, enableOCI}) + .send({type, name, repo: url, username, password, tlsClientCertData, tlsClientCertKey, insecure, enableLfs, proxy,noProxy, project, forceHttpBasicAuth, enableOCI}) .then(res => res.body as models.Repository); } @@ -62,6 +64,7 @@ export class RepositoriesService { insecure, enableLfs, proxy, + noProxy, project, forceHttpBasicAuth, enableOCI @@ -76,13 +79,14 @@ export class RepositoriesService { insecure: boolean; enableLfs: boolean; proxy: string; + noProxy: string; project?: string; forceHttpBasicAuth?: boolean; enableOCI: boolean; }): Promise { return requests .put(`/repositories/${encodeURIComponent(url)}`) - .send({type, name, repo: url, username, password, tlsClientCertData, tlsClientCertKey, insecure, enableLfs, proxy, project, forceHttpBasicAuth, enableOCI}) + .send({type, name, repo: url, username, password, tlsClientCertData, tlsClientCertKey, insecure, enableLfs, proxy,noProxy, project, forceHttpBasicAuth, enableOCI}) .then(res => res.body as models.Repository); } @@ -94,6 +98,7 @@ export class RepositoriesService { insecure, enableLfs, proxy, + noProxy, project }: { type: string; @@ -103,11 +108,12 @@ export class RepositoriesService { insecure: boolean; enableLfs: boolean; proxy: string; + noProxy: string; project?: string; }): Promise { return requests .post('/repositories') - .send({type, name, repo: url, sshPrivateKey, insecure, enableLfs, proxy, project}) + .send({type, name, repo: url, sshPrivateKey, insecure, enableLfs, proxy,noProxy, project}) .then(res => res.body as models.Repository); } @@ -124,6 +130,7 @@ export class RepositoriesService { insecure, enableLfs, proxy, + noProxy, project }: { type: string; @@ -138,6 +145,7 @@ export class RepositoriesService { insecure: boolean; enableLfs: boolean; proxy: string; + noProxy: string; project?: string; }): Promise { return requests @@ -155,6 +163,7 @@ export class RepositoriesService { insecure, enableLfs, proxy, + noProxy, project }) .then(res => res.body as models.Repository); @@ -166,6 +175,7 @@ export class RepositoriesService { url, gcpServiceAccountKey, proxy, + noProxy, project }: { type: string; @@ -173,6 +183,7 @@ export class RepositoriesService { url: string; gcpServiceAccountKey: string; proxy: string; + noProxy: string; project?: string; }): Promise { return requests @@ -183,6 +194,7 @@ export class RepositoriesService { repo: url, gcpServiceAccountKey, proxy, + noProxy, project }) .then(res => res.body as models.Repository); diff --git a/ui/src/app/shared/services/repocreds-service.ts b/ui/src/app/shared/services/repocreds-service.ts index 5a2f48de52efae..1a2ab3f7700784 100644 --- a/ui/src/app/shared/services/repocreds-service.ts +++ b/ui/src/app/shared/services/repocreds-service.ts @@ -15,7 +15,8 @@ export class RepoCredsService { password, tlsClientCertData, tlsClientCertKey, - proxy + proxy, + noProxy }: { url: string; username: string; @@ -23,10 +24,11 @@ export class RepoCredsService { tlsClientCertData: string; tlsClientCertKey: string; proxy: string; + noProxy: string; }): Promise { return requests .post('/repocreds') - .send({url, username, password, tlsClientCertData, tlsClientCertKey, proxy}) + .send({url, username, password, tlsClientCertData, tlsClientCertKey, proxy, noProxy}) .then(res => res.body as models.RepoCreds); } @@ -45,7 +47,8 @@ export class RepoCredsService { githubAppEnterpriseBaseURL, tlsClientCertData, tlsClientCertKey, - proxy + proxy, + noProxy }: { url: string; githubAppPrivateKey: string; @@ -55,10 +58,11 @@ export class RepoCredsService { tlsClientCertData: string; tlsClientCertKey: string; proxy: string; + noProxy: string, }): Promise { return requests .post('/repocreds') - .send({url, githubAppPrivateKey, githubAppId, githubAppInstallationId, githubAppEnterpriseBaseURL, tlsClientCertData, tlsClientCertKey, proxy}) + .send({url, githubAppPrivateKey, githubAppId, githubAppInstallationId, githubAppEnterpriseBaseURL, tlsClientCertData, tlsClientCertKey, proxy, noProxy}) .then(res => res.body as models.RepoCreds); } diff --git a/util/db/repository_secrets.go b/util/db/repository_secrets.go index 2d96c1c3a99eb3..02823ac6cde11b 100644 --- a/util/db/repository_secrets.go +++ b/util/db/repository_secrets.go @@ -312,6 +312,7 @@ func secretToRepository(secret *corev1.Secret) (*appsv1.Repository, error) { GithubAppPrivateKey: string(secret.Data["githubAppPrivateKey"]), GitHubAppEnterpriseBaseURL: string(secret.Data["githubAppEnterpriseBaseUrl"]), Proxy: string(secret.Data["proxy"]), + NoProxy: string(secret.Data["noProxy"]), Project: string(secret.Data["project"]), GCPServiceAccountKey: string(secret.Data["gcpServiceAccountKey"]), } @@ -384,6 +385,7 @@ func repositoryToSecret(repository *appsv1.Repository, secret *corev1.Secret) { updateSecretBool(secret, "insecure", repository.Insecure) updateSecretBool(secret, "enableLfs", repository.EnableLFS) updateSecretString(secret, "proxy", repository.Proxy) + updateSecretString(secret, "noProxy", repository.NoProxy) updateSecretString(secret, "gcpServiceAccountKey", repository.GCPServiceAccountKey) updateSecretBool(secret, "forceHttpBasicAuth", repository.ForceHttpBasicAuth) addSecretMetadata(secret, common.LabelValueSecretTypeRepository) @@ -402,6 +404,7 @@ func (s *secretsRepositoryBackend) secretToRepoCred(secret *corev1.Secret) (*app GitHubAppEnterpriseBaseURL: string(secret.Data["githubAppEnterpriseBaseUrl"]), GCPServiceAccountKey: string(secret.Data["gcpServiceAccountKey"]), Proxy: string(secret.Data["proxy"]), + NoProxy: string(secret.Data["noProxy"]), } enableOCI, err := boolOrFalse(secret, "enableOCI") @@ -450,6 +453,7 @@ func repoCredsToSecret(repoCreds *appsv1.RepoCreds, secret *corev1.Secret) { updateSecretString(secret, "githubAppEnterpriseBaseUrl", repoCreds.GitHubAppEnterpriseBaseURL) updateSecretString(secret, "gcpServiceAccountKey", repoCreds.GCPServiceAccountKey) updateSecretString(secret, "proxy", repoCreds.Proxy) + updateSecretString(secret, "noProxy", repoCreds.NoProxy) updateSecretBool(secret, "forceHttpBasicAuth", repoCreds.ForceHttpBasicAuth) addSecretMetadata(secret, common.LabelValueSecretTypeRepoCreds) } diff --git a/util/db/repository_secrets_test.go b/util/db/repository_secrets_test.go index f5beec2269d539..c39af0234ee188 100644 --- a/util/db/repository_secrets_test.go +++ b/util/db/repository_secrets_test.go @@ -440,6 +440,15 @@ func TestSecretsRepositoryBackend_CreateRepoCreds(t *testing.T) { Proxy: "https://proxy.argoproj.io:3128", }, }, + { + name: "with_noProxy", + repoCreds: appsv1.RepoCreds{ + URL: "git@github.com:proxy", + Username: "anotherUsername", + Password: "anotherPassword", + NoProxy: ".example.com,127.0.0.1", + }, + }, } for _, testCase := range testCases { @@ -480,6 +489,7 @@ func TestSecretsRepositoryBackend_CreateRepoCreds(t *testing.T) { } assert.Equal(t, testCase.repoCreds.GitHubAppEnterpriseBaseURL, string(secret.Data["githubAppEnterpriseUrl"])) assert.Equal(t, testCase.repoCreds.Proxy, string(secret.Data["proxy"])) + assert.Equal(t, testCase.repoCreds.NoProxy, string(secret.Data["noProxy"])) }) } @@ -512,6 +522,20 @@ func TestSecretsRepositoryBackend_GetRepoCreds(t *testing.T) { "password": []byte("someOtherPassword"), }, }, + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: testNamespace, + Name: "proxy-repo", + Labels: map[string]string{common.LabelKeySecretType: common.LabelValueSecretTypeRepoCreds}, + }, + Data: map[string][]byte{ + "url": []byte("git@gitlab.com"), + "username": []byte("someOtherUsername"), + "password": []byte("someOtherPassword"), + "proxy": []byte("https://proxy.argoproj.io:3128"), + "noProxy": []byte(".example.com,127.0.0.1"), + }, + }, } clientset := getClientset(map[string]string{}, repoCredSecrets...) @@ -534,6 +558,8 @@ func TestSecretsRepositoryBackend_GetRepoCreds(t *testing.T) { assert.Equal(t, "git@gitlab.com", repoCred.URL) assert.Equal(t, "someOtherUsername", repoCred.Username) assert.Equal(t, "someOtherPassword", repoCred.Password) + assert.Equal(t, "https://proxy.argoproj.io:3128", repoCred.Proxy) + assert.Equal(t, ".example.com,127.0.0.1", repoCred.NoProxy) } func TestSecretsRepositoryBackend_ListRepoCreds(t *testing.T) { diff --git a/util/git/client.go b/util/git/client.go index b356f95639d432..9d3fb49742d480 100644 --- a/util/git/client.go +++ b/util/git/client.go @@ -105,6 +105,8 @@ type nativeGitClient struct { loadRefFromCache bool // HTTP/HTTPS proxy used to access repository proxy string + // list of targets that shouldn't use the proxy, applies only if the proxy is set + noProxy string } type runOpts struct { @@ -151,7 +153,7 @@ func WithEventHandlers(handlers EventHandlers) ClientOpts { } } -func NewClient(rawRepoURL string, creds Creds, insecure bool, enableLfs bool, proxy string, opts ...ClientOpts) (Client, error) { +func NewClient(rawRepoURL string, creds Creds, insecure bool, enableLfs bool, proxy string, noProxy string, opts ...ClientOpts) (Client, error) { r := regexp.MustCompile("(/|:)") normalizedGitURL := NormalizeGitURL(rawRepoURL) if normalizedGitURL == "" { @@ -161,10 +163,10 @@ func NewClient(rawRepoURL string, creds Creds, insecure bool, enableLfs bool, pr if root == os.TempDir() { return nil, fmt.Errorf("repository %q cannot be initialized, because its root would be system temp at %s", rawRepoURL, root) } - return NewClientExt(rawRepoURL, root, creds, insecure, enableLfs, proxy, opts...) + return NewClientExt(rawRepoURL, root, creds, insecure, enableLfs, proxy, noProxy, opts...) } -func NewClientExt(rawRepoURL string, root string, creds Creds, insecure bool, enableLfs bool, proxy string, opts ...ClientOpts) (Client, error) { +func NewClientExt(rawRepoURL string, root string, creds Creds, insecure bool, enableLfs bool, proxy string, noProxy string, opts ...ClientOpts) (Client, error) { client := &nativeGitClient{ repoURL: rawRepoURL, root: root, @@ -172,6 +174,7 @@ func NewClientExt(rawRepoURL string, root string, creds Creds, insecure bool, en insecure: insecure, enableLfs: enableLfs, proxy: proxy, + noProxy: noProxy, } for i := range opts { opts[i](client) diff --git a/util/git/client_test.go b/util/git/client_test.go index b9897de12f90fd..6ba0d29fdf2fa1 100644 --- a/util/git/client_test.go +++ b/util/git/client_test.go @@ -39,7 +39,7 @@ func Test_nativeGitClient_Fetch(t *testing.T) { tempDir, err := _createEmptyGitRepo() require.NoError(t, err) - client, err := NewClient(fmt.Sprintf("file://%s", tempDir), NopCreds{}, true, false, "") + client, err := NewClient(fmt.Sprintf("file://%s", tempDir), NopCreds{}, true, false, "", "") require.NoError(t, err) err = client.Init() @@ -53,7 +53,7 @@ func Test_nativeGitClient_Fetch_Prune(t *testing.T) { tempDir, err := _createEmptyGitRepo() require.NoError(t, err) - client, err := NewClient(fmt.Sprintf("file://%s", tempDir), NopCreds{}, true, false, "") + client, err := NewClient(fmt.Sprintf("file://%s", tempDir), NopCreds{}, true, false, "", "") require.NoError(t, err) err = client.Init() @@ -76,7 +76,7 @@ func Test_nativeGitClient_Fetch_Prune(t *testing.T) { func Test_IsAnnotatedTag(t *testing.T) { tempDir := t.TempDir() - client, err := NewClient(fmt.Sprintf("file://%s", tempDir), NopCreds{}, true, false, "") + client, err := NewClient(fmt.Sprintf("file://%s", tempDir), NopCreds{}, true, false, "", "") require.NoError(t, err) err = client.Init() @@ -121,7 +121,7 @@ func Test_IsAnnotatedTag(t *testing.T) { func Test_ChangedFiles(t *testing.T) { tempDir := t.TempDir() - client, err := NewClientExt(fmt.Sprintf("file://%s", tempDir), tempDir, NopCreds{}, true, false, "") + client, err := NewClientExt(fmt.Sprintf("file://%s", tempDir), tempDir, NopCreds{}, true, false, "", "") require.NoError(t, err) err = client.Init() @@ -209,7 +209,7 @@ func Test_nativeGitClient_Submodule(t *testing.T) { err = runCmd(tempDir, "git", "clone", foo) require.NoError(t, err) - client, err := NewClient(fmt.Sprintf("file://%s", foo), NopCreds{}, true, false, "") + client, err := NewClient(fmt.Sprintf("file://%s", foo), NopCreds{}, true, false, "", "") require.NoError(t, err) err = client.Init() @@ -257,7 +257,7 @@ func Test_nativeGitClient_Submodule(t *testing.T) { } func TestNewClient_invalidSSHURL(t *testing.T) { - client, err := NewClient("ssh://bitbucket.org:org/repo", NopCreds{}, false, false, "") + client, err := NewClient("ssh://bitbucket.org:org/repo", NopCreds{}, false, false, "", "") assert.Nil(t, client) assert.ErrorIs(t, err, ErrInvalidRepoURL) } diff --git a/util/git/creds.go b/util/git/creds.go index e0ca584ebb7ad5..7d8e6391c12ab7 100644 --- a/util/git/creds.go +++ b/util/git/creds.go @@ -127,13 +127,15 @@ type HTTPSCreds struct { clientCertKey string // HTTP/HTTPS proxy used to access repository proxy string + // list of targets that shouldn't use the proxy, applies only if the proxy is set + noProxy string // temporal credentials store store CredsStore // whether to force usage of basic auth forceBasicAuth bool } -func NewHTTPSCreds(username string, password string, clientCertData string, clientCertKey string, insecure bool, proxy string, store CredsStore, forceBasicAuth bool) GenericHTTPSCreds { +func NewHTTPSCreds(username string, password string, clientCertData string, clientCertKey string, insecure bool, proxy string, noProxy string, store CredsStore, forceBasicAuth bool) GenericHTTPSCreds { return HTTPSCreds{ username, password, @@ -141,6 +143,7 @@ func NewHTTPSCreds(username string, password string, clientCertData string, clie clientCertData, clientCertKey, proxy, + noProxy, store, forceBasicAuth, } @@ -243,10 +246,11 @@ type SSHCreds struct { insecure bool store CredsStore proxy string + noProxy string } -func NewSSHCreds(sshPrivateKey string, caPath string, insecureIgnoreHostKey bool, store CredsStore, proxy string) SSHCreds { - return SSHCreds{sshPrivateKey, caPath, insecureIgnoreHostKey, store, proxy} +func NewSSHCreds(sshPrivateKey string, caPath string, insecureIgnoreHostKey bool, store CredsStore, proxy string, noProxy string) SSHCreds { + return SSHCreds{sshPrivateKey, caPath, insecureIgnoreHostKey, store, proxy, noProxy} } type sshPrivateKeyFile string @@ -343,12 +347,13 @@ type GitHubAppCreds struct { clientCertKey string insecure bool proxy string + noProxy string store CredsStore } // NewGitHubAppCreds provide github app credentials -func NewGitHubAppCreds(appID int64, appInstallId int64, privateKey string, baseURL string, repoURL string, clientCertData string, clientCertKey string, insecure bool, proxy string, store CredsStore) GenericHTTPSCreds { - return GitHubAppCreds{appID: appID, appInstallId: appInstallId, privateKey: privateKey, baseURL: baseURL, repoURL: repoURL, clientCertData: clientCertData, clientCertKey: clientCertKey, insecure: insecure, proxy: proxy, store: store} +func NewGitHubAppCreds(appID int64, appInstallId int64, privateKey string, baseURL string, repoURL string, clientCertData string, clientCertKey string, insecure bool, proxy string, noProxy string, store CredsStore) GenericHTTPSCreds { + return GitHubAppCreds{appID: appID, appInstallId: appInstallId, privateKey: privateKey, baseURL: baseURL, repoURL: repoURL, clientCertData: clientCertData, clientCertKey: clientCertKey, insecure: insecure, proxy: proxy, noProxy: noProxy, store: store} } func (g GitHubAppCreds) Environ() (io.Closer, []string, error) { diff --git a/util/git/creds_test.go b/util/git/creds_test.go index 69c1150db881bd..d2d52764d50a61 100644 --- a/util/git/creds_test.go +++ b/util/git/creds_test.go @@ -44,7 +44,7 @@ func (s *memoryCredsStore) Remove(id string) { func TestHTTPSCreds_Environ_no_cert_cleanup(t *testing.T) { store := &memoryCredsStore{creds: make(map[string]cred)} - creds := NewHTTPSCreds("", "", "", "", true, "", store, false) + creds := NewHTTPSCreds("", "", "", "", true, "", "", store, false) closer, env, err := creds.Environ() require.NoError(t, err) var nonce string @@ -60,7 +60,7 @@ func TestHTTPSCreds_Environ_no_cert_cleanup(t *testing.T) { } func TestHTTPSCreds_Environ_insecure_true(t *testing.T) { - creds := NewHTTPSCreds("", "", "", "", true, "", &NoopCredsStore{}, false) + creds := NewHTTPSCreds("", "", "", "", true, "", "", &NoopCredsStore{}, false) closer, env, err := creds.Environ() t.Cleanup(func() { io.Close(closer) @@ -77,7 +77,7 @@ func TestHTTPSCreds_Environ_insecure_true(t *testing.T) { } func TestHTTPSCreds_Environ_insecure_false(t *testing.T) { - creds := NewHTTPSCreds("", "", "", "", false, "", &NoopCredsStore{}, false) + creds := NewHTTPSCreds("", "", "", "", false, "", "", &NoopCredsStore{}, false) closer, env, err := creds.Environ() t.Cleanup(func() { io.Close(closer) @@ -96,7 +96,7 @@ func TestHTTPSCreds_Environ_insecure_false(t *testing.T) { func TestHTTPSCreds_Environ_forceBasicAuth(t *testing.T) { t.Run("Enabled and credentials set", func(t *testing.T) { store := &memoryCredsStore{creds: make(map[string]cred)} - creds := NewHTTPSCreds("username", "password", "", "", false, "", store, true) + creds := NewHTTPSCreds("username", "password", "", "", false, "", "", store, true) closer, env, err := creds.Environ() require.NoError(t, err) defer closer.Close() @@ -114,7 +114,7 @@ func TestHTTPSCreds_Environ_forceBasicAuth(t *testing.T) { }) t.Run("Enabled but credentials not set", func(t *testing.T) { store := &memoryCredsStore{creds: make(map[string]cred)} - creds := NewHTTPSCreds("", "", "", "", false, "", store, true) + creds := NewHTTPSCreds("", "", "", "", false, "", "", store, true) closer, env, err := creds.Environ() require.NoError(t, err) defer closer.Close() @@ -131,7 +131,7 @@ func TestHTTPSCreds_Environ_forceBasicAuth(t *testing.T) { }) t.Run("Disabled with credentials set", func(t *testing.T) { store := &memoryCredsStore{creds: make(map[string]cred)} - creds := NewHTTPSCreds("username", "password", "", "", false, "", store, false) + creds := NewHTTPSCreds("username", "password", "", "", false, "", "", store, false) closer, env, err := creds.Environ() require.NoError(t, err) defer closer.Close() @@ -149,7 +149,7 @@ func TestHTTPSCreds_Environ_forceBasicAuth(t *testing.T) { t.Run("Disabled with credentials not set", func(t *testing.T) { store := &memoryCredsStore{creds: make(map[string]cred)} - creds := NewHTTPSCreds("", "", "", "", false, "", store, false) + creds := NewHTTPSCreds("", "", "", "", false, "", "", store, false) closer, env, err := creds.Environ() require.NoError(t, err) defer closer.Close() @@ -168,7 +168,7 @@ func TestHTTPSCreds_Environ_forceBasicAuth(t *testing.T) { func TestHTTPSCreds_Environ_clientCert(t *testing.T) { store := &memoryCredsStore{creds: make(map[string]cred)} - creds := NewHTTPSCreds("", "", "clientCertData", "clientCertKey", false, "", store, false) + creds := NewHTTPSCreds("", "", "clientCertData", "clientCertKey", false, "", "", store, false) closer, env, err := creds.Environ() require.NoError(t, err) var cert, key string @@ -206,7 +206,7 @@ func Test_SSHCreds_Environ(t *testing.T) { caFile := path.Join(tempDir, "caFile") err := os.WriteFile(caFile, []byte(""), os.FileMode(0600)) require.NoError(t, err) - creds := NewSSHCreds("sshPrivateKey", caFile, insecureIgnoreHostKey, &NoopCredsStore{}, "") + creds := NewSSHCreds("sshPrivateKey", caFile, insecureIgnoreHostKey, &NoopCredsStore{}, "", "") closer, env, err := creds.Environ() require.NoError(t, err) require.Len(t, env, 2) @@ -239,7 +239,7 @@ func Test_SSHCreds_Environ_WithProxy(t *testing.T) { caFile := path.Join(tempDir, "caFile") err := os.WriteFile(caFile, []byte(""), os.FileMode(0600)) require.NoError(t, err) - creds := NewSSHCreds("sshPrivateKey", caFile, insecureIgnoreHostKey, &NoopCredsStore{}, "socks5://127.0.0.1:1080") + creds := NewSSHCreds("sshPrivateKey", caFile, insecureIgnoreHostKey, &NoopCredsStore{}, "socks5://127.0.0.1:1080", "") closer, env, err := creds.Environ() require.NoError(t, err) require.Len(t, env, 2) @@ -273,7 +273,7 @@ func Test_SSHCreds_Environ_WithProxyUserNamePassword(t *testing.T) { caFile := path.Join(tempDir, "caFile") err := os.WriteFile(caFile, []byte(""), os.FileMode(0600)) require.NoError(t, err) - creds := NewSSHCreds("sshPrivateKey", caFile, insecureIgnoreHostKey, &NoopCredsStore{}, "socks5://user:password@127.0.0.1:1080") + creds := NewSSHCreds("sshPrivateKey", caFile, insecureIgnoreHostKey, &NoopCredsStore{}, "socks5://user:password@127.0.0.1:1080", "") closer, env, err := creds.Environ() require.NoError(t, err) require.Len(t, env, 4) @@ -320,7 +320,7 @@ func Test_SSHCreds_Environ_TempFileCleanupOnInvalidProxyURL(t *testing.T) { caFile := path.Join(tempDir, "caFile") err := os.WriteFile(caFile, []byte(""), os.FileMode(0600)) require.NoError(t, err) - creds := NewSSHCreds("sshPrivateKey", caFile, insecureIgnoreHostKey, &NoopCredsStore{}, ":invalid-proxy-url") + creds := NewSSHCreds("sshPrivateKey", caFile, insecureIgnoreHostKey, &NoopCredsStore{}, ":invalid-proxy-url", "") filesInDevShmBeforeInvocation := countFilesInDevShm() diff --git a/util/git/git.go b/util/git/git.go index d5a8652f7ce90a..3a087aeb000966 100644 --- a/util/git/git.go +++ b/util/git/git.go @@ -83,8 +83,8 @@ func IsHTTPURL(url string) bool { } // TestRepo tests if a repo exists and is accessible with the given credentials -func TestRepo(repo string, creds Creds, insecure bool, enableLfs bool, proxy string) error { - clnt, err := NewClient(repo, creds, insecure, enableLfs, proxy) +func TestRepo(repo string, creds Creds, insecure bool, enableLfs bool, proxy string, noProxy string) error { + clnt, err := NewClient(repo, creds, insecure, enableLfs, proxy, noProxy) if err != nil { return err } diff --git a/util/git/git_test.go b/util/git/git_test.go index fc9da5487fbfa5..4ff70f4c594f55 100644 --- a/util/git/git_test.go +++ b/util/git/git_test.go @@ -135,7 +135,7 @@ func TestCustomHTTPClient(t *testing.T) { assert.NotEqual(t, "", string(keyData)) // Get HTTPSCreds with client cert creds specified, and insecure connection - creds := NewHTTPSCreds("test", "test", string(certData), string(keyData), false, "http://proxy:5000", &NoopCredsStore{}, false) + creds := NewHTTPSCreds("test", "test", string(certData), string(keyData), false, "http://proxy:5000", "", &NoopCredsStore{}, false) client := GetRepoHTTPClient("https://localhost:9443/foo/bar", false, creds, "http://proxy:5000") assert.NotNil(t, client) assert.NotNil(t, client.Transport) @@ -163,7 +163,7 @@ func TestCustomHTTPClient(t *testing.T) { t.Setenv("http_proxy", "http://proxy-from-env:7878") // Get HTTPSCreds without client cert creds, but insecure connection - creds = NewHTTPSCreds("test", "test", "", "", true, "", &NoopCredsStore{}, false) + creds = NewHTTPSCreds("test", "test", "", "", true, "", "", &NoopCredsStore{}, false) client = GetRepoHTTPClient("https://localhost:9443/foo/bar", true, creds, "") assert.NotNil(t, client) assert.NotNil(t, client.Transport) @@ -210,7 +210,7 @@ func TestCustomHTTPClient(t *testing.T) { } func TestLsRemote(t *testing.T) { - clnt, err := NewClientExt("https://github.com/argoproj/argo-cd.git", "/tmp", NopCreds{}, false, false, "") + clnt, err := NewClientExt("https://github.com/argoproj/argo-cd.git", "/tmp", NopCreds{}, false, false, "", "") assert.NoError(t, err) xpass := []string{ "HEAD", @@ -251,7 +251,7 @@ func TestLFSClient(t *testing.T) { tempDir := t.TempDir() - client, err := NewClientExt("https://github.com/argoproj-labs/argocd-testrepo-lfs", tempDir, NopCreds{}, false, true, "") + client, err := NewClientExt("https://github.com/argoproj-labs/argocd-testrepo-lfs", tempDir, NopCreds{}, false, true, "", "") assert.NoError(t, err) commitSHA, err := client.LsRemote("HEAD") @@ -290,7 +290,7 @@ func TestLFSClient(t *testing.T) { func TestVerifyCommitSignature(t *testing.T) { p := t.TempDir() - client, err := NewClientExt("https://github.com/argoproj/argo-cd.git", p, NopCreds{}, false, false, "") + client, err := NewClientExt("https://github.com/argoproj/argo-cd.git", p, NopCreds{}, false, false, "", "") assert.NoError(t, err) err = client.Init() @@ -345,7 +345,7 @@ func TestNewFactory(t *testing.T) { dirName := t.TempDir() - client, err := NewClientExt(tt.args.url, dirName, NopCreds{}, tt.args.insecureIgnoreHostKey, false, "") + client, err := NewClientExt(tt.args.url, dirName, NopCreds{}, tt.args.insecureIgnoreHostKey, false, "", "") assert.NoError(t, err) commitSHA, err := client.LsRemote("HEAD") assert.NoError(t, err) @@ -382,7 +382,7 @@ func TestListRevisions(t *testing.T) { dir := t.TempDir() repoURL := "https://github.com/argoproj/argo-cd.git" - client, err := NewClientExt(repoURL, dir, NopCreds{}, false, false, "") + client, err := NewClientExt(repoURL, dir, NopCreds{}, false, false, "", "") assert.NoError(t, err) lsResult, err := client.LsRefs() @@ -401,7 +401,7 @@ func TestLsFiles(t *testing.T) { tmpDir1 := t.TempDir() tmpDir2 := t.TempDir() - client, err := NewClientExt("", tmpDir1, NopCreds{}, false, false, "") + client, err := NewClientExt("", tmpDir1, NopCreds{}, false, false, "", "") assert.NoError(t, err) err = runCmd(tmpDir1, "git", "init") diff --git a/util/helm/client.go b/util/helm/client.go index f04effa30ec58c..3098d454eb89e9 100644 --- a/util/helm/client.go +++ b/util/helm/client.go @@ -77,17 +77,18 @@ func WithChartPaths(chartPaths argoio.TempPaths) ClientOpts { } } -func NewClient(repoURL string, creds Creds, enableOci bool, proxy string, opts ...ClientOpts) Client { - return NewClientWithLock(repoURL, creds, globalLock, enableOci, proxy, opts...) +func NewClient(repoURL string, creds Creds, enableOci bool, proxy string, noProxy string, opts ...ClientOpts) Client { + return NewClientWithLock(repoURL, creds, globalLock, enableOci, proxy, noProxy, opts...) } -func NewClientWithLock(repoURL string, creds Creds, repoLock sync.KeyLock, enableOci bool, proxy string, opts ...ClientOpts) Client { +func NewClientWithLock(repoURL string, creds Creds, repoLock sync.KeyLock, enableOci bool, proxy string, noProxy string, opts ...ClientOpts) Client { c := &nativeHelmChart{ repoURL: repoURL, creds: creds, repoLock: repoLock, enableOci: enableOci, proxy: proxy, + noProxy: noProxy, chartCachePaths: argoio.NewRandomizedTempPaths(os.TempDir()), } for i := range opts { @@ -106,6 +107,7 @@ type nativeHelmChart struct { enableOci bool indexCache indexCache proxy string + noProxy string } func fileExist(filePath string) (bool, error) { diff --git a/util/helm/client_test.go b/util/helm/client_test.go index ad613ca3bd7ebc..883576008bed32 100644 --- a/util/helm/client_test.go +++ b/util/helm/client_test.go @@ -36,12 +36,12 @@ func (f *fakeIndexCache) GetHelmIndex(_ string, indexData *[]byte) error { func TestIndex(t *testing.T) { t.Run("Invalid", func(t *testing.T) { - client := NewClient("", Creds{}, false, "") + client := NewClient("", Creds{}, false, "", "") _, err := client.GetIndex(false, 10000) assert.Error(t, err) }) t.Run("Stable", func(t *testing.T) { - client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "") + client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "", "") index, err := client.GetIndex(false, 10000) assert.NoError(t, err) assert.NotNil(t, index) @@ -50,7 +50,7 @@ func TestIndex(t *testing.T) { client := NewClient("https://argoproj.github.io/argo-helm", Creds{ Username: "my-password", Password: "my-username", - }, false, "") + }, false, "", "") index, err := client.GetIndex(false, 10000) assert.NoError(t, err) assert.NotNil(t, index) @@ -62,7 +62,7 @@ func TestIndex(t *testing.T) { err := yaml.NewEncoder(&data).Encode(fakeIndex) require.NoError(t, err) - client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "", WithIndexCache(&fakeIndexCache{data: data.Bytes()})) + client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "", "", WithIndexCache(&fakeIndexCache{data: data.Bytes()})) index, err := client.GetIndex(false, 10000) assert.NoError(t, err) @@ -70,7 +70,7 @@ func TestIndex(t *testing.T) { }) t.Run("Limited", func(t *testing.T) { - client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "") + client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "", "") _, err := client.GetIndex(false, 100) assert.ErrorContains(t, err, "unexpected end of stream") @@ -78,7 +78,7 @@ func TestIndex(t *testing.T) { } func Test_nativeHelmChart_ExtractChart(t *testing.T) { - client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "") + client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "", "") path, closer, err := client.ExtractChart("argo-cd", "0.7.1", false, math.MaxInt64, true) assert.NoError(t, err) defer io.Close(closer) @@ -88,13 +88,13 @@ func Test_nativeHelmChart_ExtractChart(t *testing.T) { } func Test_nativeHelmChart_ExtractChartWithLimiter(t *testing.T) { - client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "") + client := NewClient("https://argoproj.github.io/argo-helm", Creds{}, false, "", "") _, _, err := client.ExtractChart("argo-cd", "0.7.1", false, 100, false) assert.Error(t, err, "error while iterating on tar reader: unexpected EOF") } func Test_nativeHelmChart_ExtractChart_insecure(t *testing.T) { - client := NewClient("https://argoproj.github.io/argo-helm", Creds{InsecureSkipVerify: true}, false, "") + client := NewClient("https://argoproj.github.io/argo-helm", Creds{InsecureSkipVerify: true}, false, "", "") path, closer, err := client.ExtractChart("argo-cd", "0.7.1", false, math.MaxInt64, true) assert.NoError(t, err) defer io.Close(closer) @@ -191,7 +191,7 @@ func TestGetTagsFromUrl(t *testing.T) { } })) - client := NewClient(server.URL, Creds{InsecureSkipVerify: true}, true, "") + client := NewClient(server.URL, Creds{InsecureSkipVerify: true}, true, "", "") tags, err := client.GetTags("mychart", true) assert.NoError(t, err) @@ -207,7 +207,7 @@ func TestGetTagsFromUrl(t *testing.T) { }) t.Run("should return an error not when oci is not enabled", func(t *testing.T) { - client := NewClient("example.com", Creds{}, false, "") + client := NewClient("example.com", Creds{}, false, "", "") _, err := client.GetTags("my-chart", true) assert.ErrorIs(t, OCINotEnabledErr, err) @@ -277,7 +277,7 @@ func TestGetTagsFromURLPrivateRepoAuthentication(t *testing.T) { InsecureSkipVerify: true, Username: "my-username", Password: "my-password", - }, true, "") + }, true, "", "") tags, err := client.GetTags("mychart", true) diff --git a/util/settings/settings.go b/util/settings/settings.go index 74908212e9a671..ee52c5ef66f0e2 100644 --- a/util/settings/settings.go +++ b/util/settings/settings.go @@ -336,6 +336,8 @@ type Repository struct { GithubAppEnterpriseBaseURL string `json:"githubAppEnterpriseBaseUrl,omitempty"` // Proxy specifies the HTTP/HTTPS proxy used to access the repo Proxy string `json:"proxy,omitempty"` + // NoProxy specifies a list of targets where the proxy isn't used, applies only in cases where the proxy is applied + NoProxy string `json:"noProxy,omitempty"` // GCPServiceAccountKey specifies the service account key in JSON format to be used for getting credentials to Google Cloud Source repos GCPServiceAccountKey *apiv1.SecretKeySelector `json:"gcpServiceAccountKey,omitempty"` // ForceHttpBasicAuth determines whether Argo CD should force use of basic auth for HTTP connected repositories