1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Copyright (C) 2023 Oracle. All Rights Reserved. 4 * Author: Darrick J. Wong <djwong@kernel.org> 5 */ 6 #include "xfs.h" 7 #include "xfs_fs.h" 8 #include "xfs_shared.h" 9 #include "xfs_format.h" 10 #include "xfs_da_format.h" 11 #include "xfs_da_btree.h" 12 #include "xfs_dahash_test.h" 13 14 /* 4096 random bytes */ 15 static uint8_t __initdata __attribute__((__aligned__(8))) test_buf[] = 16 { 17 0x5b, 0x85, 0x21, 0xcb, 0x09, 0x68, 0x7d, 0x30, 18 0xc7, 0x69, 0xd7, 0x30, 0x92, 0xde, 0x59, 0xe4, 19 0xc9, 0x6e, 0x8b, 0xdb, 0x98, 0x6b, 0xaa, 0x60, 20 0xa8, 0xb5, 0xbc, 0x6c, 0xa9, 0xb1, 0x5b, 0x2c, 21 0xea, 0xb4, 0x92, 0x6a, 0x3f, 0x79, 0x91, 0xe4, 22 0xe9, 0x70, 0x51, 0x8c, 0x7f, 0x95, 0x6f, 0x1a, 23 0x56, 0xa1, 0x5c, 0x27, 0x03, 0x67, 0x9f, 0x3a, 24 0xe2, 0x31, 0x11, 0x29, 0x6b, 0x98, 0xfc, 0xc4, 25 0x53, 0x24, 0xc5, 0x8b, 0xce, 0x47, 0xb2, 0xb9, 26 0x32, 0xcb, 0xc1, 0xd0, 0x03, 0x57, 0x4e, 0xd4, 27 0xe9, 0x3c, 0xa1, 0x63, 0xcf, 0x12, 0x0e, 0xca, 28 0xe1, 0x13, 0xd1, 0x93, 0xa6, 0x88, 0x5c, 0x61, 29 0x5b, 0xbb, 0xf0, 0x19, 0x46, 0xb4, 0xcf, 0x9e, 30 0xb6, 0x6b, 0x4c, 0x3a, 0xcf, 0x60, 0xf9, 0x7a, 31 0x8d, 0x07, 0x63, 0xdb, 0x40, 0xe9, 0x0b, 0x6f, 32 0xad, 0x97, 0xf1, 0xed, 0xd0, 0x1e, 0x26, 0xfd, 33 0xbf, 0xb7, 0xc8, 0x04, 0x94, 0xf8, 0x8b, 0x8c, 34 0xf1, 0xab, 0x7a, 0xd4, 0xdd, 0xf3, 0xe8, 0x88, 35 0xc3, 0xed, 0x17, 0x8a, 0x9b, 0x40, 0x0d, 0x53, 36 0x62, 0x12, 0x03, 0x5f, 0x1b, 0x35, 0x32, 0x1f, 37 0xb4, 0x7b, 0x93, 0x78, 0x0d, 0xdb, 0xce, 0xa4, 38 0xc0, 0x47, 0xd5, 0xbf, 0x68, 0xe8, 0x5d, 0x74, 39 0x8f, 0x8e, 0x75, 0x1c, 0xb2, 0x4f, 0x9a, 0x60, 40 0xd1, 0xbe, 0x10, 0xf4, 0x5c, 0xa1, 0x53, 0x09, 41 0xa5, 0xe0, 0x09, 0x54, 0x85, 0x5c, 0xdc, 0x07, 42 0xe7, 0x21, 0x69, 0x7b, 0x8a, 0xfd, 0x90, 0xf1, 43 0x22, 0xd0, 0xb4, 0x36, 0x28, 0xe6, 0xb8, 0x0f, 44 0x39, 0xde, 0xc8, 0xf3, 0x86, 0x60, 0x34, 0xd2, 45 0x5e, 0xdf, 0xfd, 0xcf, 0x0f, 0xa9, 0x65, 0xf0, 46 0xd5, 0x4d, 0x96, 0x40, 0xe3, 0xdf, 0x3f, 0x95, 47 0x5a, 0x39, 0x19, 0x93, 0xf4, 0x75, 0xce, 0x22, 48 0x00, 0x1c, 0x93, 0xe2, 0x03, 0x66, 0xf4, 0x93, 49 0x73, 0x86, 0x81, 0x8e, 0x29, 0x44, 0x48, 0x86, 50 0x61, 0x7c, 0x48, 0xa3, 0x43, 0xd2, 0x9c, 0x8d, 51 0xd4, 0x95, 0xdd, 0xe1, 0x22, 0x89, 0x3a, 0x40, 52 0x4c, 0x1b, 0x8a, 0x04, 0xa8, 0x09, 0x69, 0x8b, 53 0xea, 0xc6, 0x55, 0x8e, 0x57, 0xe6, 0x64, 0x35, 54 0xf0, 0xc7, 0x16, 0x9f, 0x5d, 0x5e, 0x86, 0x40, 55 0x46, 0xbb, 0xe5, 0x45, 0x88, 0xfe, 0xc9, 0x63, 56 0x15, 0xfb, 0xf5, 0xbd, 0x71, 0x61, 0xeb, 0x7b, 57 0x78, 0x70, 0x07, 0x31, 0x03, 0x9f, 0xb2, 0xc8, 58 0xa7, 0xab, 0x47, 0xfd, 0xdf, 0xa0, 0x78, 0x72, 59 0xa4, 0x2a, 0xe4, 0xb6, 0xba, 0xc0, 0x1e, 0x86, 60 0x71, 0xe6, 0x3d, 0x18, 0x37, 0x70, 0xe6, 0xff, 61 0xe0, 0xbc, 0x0b, 0x22, 0xa0, 0x1f, 0xd3, 0xed, 62 0xa2, 0x55, 0x39, 0xab, 0xa8, 0x13, 0x73, 0x7c, 63 0x3f, 0xb2, 0xd6, 0x19, 0xac, 0xff, 0x99, 0xed, 64 0xe8, 0xe6, 0xa6, 0x22, 0xe3, 0x9c, 0xf1, 0x30, 65 0xdc, 0x01, 0x0a, 0x56, 0xfa, 0xe4, 0xc9, 0x99, 66 0xdd, 0xa8, 0xd8, 0xda, 0x35, 0x51, 0x73, 0xb4, 67 0x40, 0x86, 0x85, 0xdb, 0x5c, 0xd5, 0x85, 0x80, 68 0x14, 0x9c, 0xfd, 0x98, 0xa9, 0x82, 0xc5, 0x37, 69 0xff, 0x32, 0x5d, 0xd0, 0x0b, 0xfa, 0xdc, 0x04, 70 0x5e, 0x09, 0xd2, 0xca, 0x17, 0x4b, 0x1a, 0x8e, 71 0x15, 0xe1, 0xcc, 0x4e, 0x52, 0x88, 0x35, 0xbd, 72 0x48, 0xfe, 0x15, 0xa0, 0x91, 0xfd, 0x7e, 0x6c, 73 0x0e, 0x5d, 0x79, 0x1b, 0x81, 0x79, 0xd2, 0x09, 74 0x34, 0x70, 0x3d, 0x81, 0xec, 0xf6, 0x24, 0xbb, 75 0xfb, 0xf1, 0x7b, 0xdf, 0x54, 0xea, 0x80, 0x9b, 76 0xc7, 0x99, 0x9e, 0xbd, 0x16, 0x78, 0x12, 0x53, 77 0x5e, 0x01, 0xa7, 0x4e, 0xbd, 0x67, 0xe1, 0x9b, 78 0x4c, 0x0e, 0x61, 0x45, 0x97, 0xd2, 0xf0, 0x0f, 79 0xfe, 0x15, 0x08, 0xb7, 0x11, 0x4c, 0xe7, 0xff, 80 0x81, 0x53, 0xff, 0x91, 0x25, 0x38, 0x7e, 0x40, 81 0x94, 0xe5, 0xe0, 0xad, 0xe6, 0xd9, 0x79, 0xb6, 82 0x92, 0xc9, 0xfc, 0xde, 0xc3, 0x1a, 0x23, 0xbb, 83 0xdd, 0xc8, 0x51, 0x0c, 0x3a, 0x72, 0xfa, 0x73, 84 0x6f, 0xb7, 0xee, 0x61, 0x39, 0x03, 0x01, 0x3f, 85 0x7f, 0x94, 0x2e, 0x2e, 0xba, 0x3a, 0xbb, 0xb4, 86 0xfa, 0x6a, 0x17, 0xfe, 0xea, 0xef, 0x5e, 0x66, 87 0x97, 0x3f, 0x32, 0x3d, 0xd7, 0x3e, 0xb1, 0xf1, 88 0x6c, 0x14, 0x4c, 0xfd, 0x37, 0xd3, 0x38, 0x80, 89 0xfb, 0xde, 0xa6, 0x24, 0x1e, 0xc8, 0xca, 0x7f, 90 0x3a, 0x93, 0xd8, 0x8b, 0x18, 0x13, 0xb2, 0xe5, 91 0xe4, 0x93, 0x05, 0x53, 0x4f, 0x84, 0x66, 0xa7, 92 0x58, 0x5c, 0x7b, 0x86, 0x52, 0x6d, 0x0d, 0xce, 93 0xa4, 0x30, 0x7d, 0xb6, 0x18, 0x9f, 0xeb, 0xff, 94 0x22, 0xbb, 0x72, 0x29, 0xb9, 0x44, 0x0b, 0x48, 95 0x1e, 0x84, 0x71, 0x81, 0xe3, 0x6d, 0x73, 0x26, 96 0x92, 0xb4, 0x4d, 0x2a, 0x29, 0xb8, 0x1f, 0x72, 97 0xed, 0xd0, 0xe1, 0x64, 0x77, 0xea, 0x8e, 0x88, 98 0x0f, 0xef, 0x3f, 0xb1, 0x3b, 0xad, 0xf9, 0xc9, 99 0x8b, 0xd0, 0xac, 0xc6, 0xcc, 0xa9, 0x40, 0xcc, 100 0x76, 0xf6, 0x3b, 0x53, 0xb5, 0x88, 0xcb, 0xc8, 101 0x37, 0xf1, 0xa2, 0xba, 0x23, 0x15, 0x99, 0x09, 102 0xcc, 0xe7, 0x7a, 0x3b, 0x37, 0xf7, 0x58, 0xc8, 103 0x46, 0x8c, 0x2b, 0x2f, 0x4e, 0x0e, 0xa6, 0x5c, 104 0xea, 0x85, 0x55, 0xba, 0x02, 0x0e, 0x0e, 0x48, 105 0xbc, 0xe1, 0xb1, 0x01, 0x35, 0x79, 0x13, 0x3d, 106 0x1b, 0xc0, 0x53, 0x68, 0x11, 0xe7, 0x95, 0x0f, 107 0x9d, 0x3f, 0x4c, 0x47, 0x7b, 0x4d, 0x1c, 0xae, 108 0x50, 0x9b, 0xcb, 0xdd, 0x05, 0x8d, 0x9a, 0x97, 109 0xfd, 0x8c, 0xef, 0x0c, 0x1d, 0x67, 0x73, 0xa8, 110 0x28, 0x36, 0xd5, 0xb6, 0x92, 0x33, 0x40, 0x75, 111 0x0b, 0x51, 0xc3, 0x64, 0xba, 0x1d, 0xc2, 0xcc, 112 0xee, 0x7d, 0x54, 0x0f, 0x27, 0x69, 0xa7, 0x27, 113 0x63, 0x30, 0x29, 0xd9, 0xc8, 0x84, 0xd8, 0xdf, 114 0x9f, 0x68, 0x8d, 0x04, 0xca, 0xa6, 0xc5, 0xc7, 115 0x7a, 0x5c, 0xc8, 0xd1, 0xcb, 0x4a, 0xec, 0xd0, 116 0xd8, 0x20, 0x69, 0xc5, 0x17, 0xcd, 0x78, 0xc8, 117 0x75, 0x23, 0x30, 0x69, 0xc9, 0xd4, 0xea, 0x5c, 118 0x4f, 0x6b, 0x86, 0x3f, 0x8b, 0xfe, 0xee, 0x44, 119 0xc9, 0x7c, 0xb7, 0xdd, 0x3e, 0xe5, 0xec, 0x54, 120 0x03, 0x3e, 0xaa, 0x82, 0xc6, 0xdf, 0xb2, 0x38, 121 0x0e, 0x5d, 0xb3, 0x88, 0xd9, 0xd3, 0x69, 0x5f, 122 0x8f, 0x70, 0x8a, 0x7e, 0x11, 0xd9, 0x1e, 0x7b, 123 0x38, 0xf1, 0x42, 0x1a, 0xc0, 0x35, 0xf5, 0xc7, 124 0x36, 0x85, 0xf5, 0xf7, 0xb8, 0x7e, 0xc7, 0xef, 125 0x18, 0xf1, 0x63, 0xd6, 0x7a, 0xc6, 0xc9, 0x0e, 126 0x4d, 0x69, 0x4f, 0x84, 0xef, 0x26, 0x41, 0x0c, 127 0xec, 0xc7, 0xe0, 0x7e, 0x3c, 0x67, 0x01, 0x4c, 128 0x62, 0x1a, 0x20, 0x6f, 0xee, 0x47, 0x4d, 0xc0, 129 0x99, 0x13, 0x8d, 0x91, 0x4a, 0x26, 0xd4, 0x37, 130 0x28, 0x90, 0x58, 0x75, 0x66, 0x2b, 0x0a, 0xdf, 131 0xda, 0xee, 0x92, 0x25, 0x90, 0x62, 0x39, 0x9e, 132 0x44, 0x98, 0xad, 0xc1, 0x88, 0xed, 0xe4, 0xb4, 133 0xaf, 0xf5, 0x8c, 0x9b, 0x48, 0x4d, 0x56, 0x60, 134 0x97, 0x0f, 0x61, 0x59, 0x9e, 0xa6, 0x27, 0xfe, 135 0xc1, 0x91, 0x15, 0x38, 0xb8, 0x0f, 0xae, 0x61, 136 0x7d, 0x26, 0x13, 0x5a, 0x73, 0xff, 0x1c, 0xa3, 137 0x61, 0x04, 0x58, 0x48, 0x55, 0x44, 0x11, 0xfe, 138 0x15, 0xca, 0xc3, 0xbd, 0xca, 0xc5, 0xb4, 0x40, 139 0x5d, 0x1b, 0x7f, 0x39, 0xb5, 0x9c, 0x35, 0xec, 140 0x61, 0x15, 0x32, 0x32, 0xb8, 0x4e, 0x40, 0x9f, 141 0x17, 0x1f, 0x0a, 0x4d, 0xa9, 0x91, 0xef, 0xb7, 142 0xb0, 0xeb, 0xc2, 0x83, 0x9a, 0x6c, 0xd2, 0x79, 143 0x43, 0x78, 0x5e, 0x2f, 0xe5, 0xdd, 0x1a, 0x3c, 144 0x45, 0xab, 0x29, 0x40, 0x3a, 0x37, 0x5b, 0x6f, 145 0xd7, 0xfc, 0x48, 0x64, 0x3c, 0x49, 0xfb, 0x21, 146 0xbe, 0xc3, 0xff, 0x07, 0xfb, 0x17, 0xe9, 0xc9, 147 0x0c, 0x4c, 0x5c, 0x15, 0x9e, 0x8e, 0x22, 0x30, 148 0x0a, 0xde, 0x48, 0x7f, 0xdb, 0x0d, 0xd1, 0x2b, 149 0x87, 0x38, 0x9e, 0xcc, 0x5a, 0x01, 0x16, 0xee, 150 0x75, 0x49, 0x0d, 0x30, 0x01, 0x34, 0x6a, 0xb6, 151 0x9a, 0x5a, 0x2a, 0xec, 0xbb, 0x48, 0xac, 0xd3, 152 0x77, 0x83, 0xd8, 0x08, 0x86, 0x4f, 0x48, 0x09, 153 0x29, 0x41, 0x79, 0xa1, 0x03, 0x12, 0xc4, 0xcd, 154 0x90, 0x55, 0x47, 0x66, 0x74, 0x9a, 0xcc, 0x4f, 155 0x35, 0x8c, 0xd6, 0x98, 0xef, 0xeb, 0x45, 0xb9, 156 0x9a, 0x26, 0x2f, 0x39, 0xa5, 0x70, 0x6d, 0xfc, 157 0xb4, 0x51, 0xee, 0xf4, 0x9c, 0xe7, 0x38, 0x59, 158 0xad, 0xf4, 0xbc, 0x46, 0xff, 0x46, 0x8e, 0x60, 159 0x9c, 0xa3, 0x60, 0x1d, 0xf8, 0x26, 0x72, 0xf5, 160 0x72, 0x9d, 0x68, 0x80, 0x04, 0xf6, 0x0b, 0xa1, 161 0x0a, 0xd5, 0xa7, 0x82, 0x3a, 0x3e, 0x47, 0xa8, 162 0x5a, 0xde, 0x59, 0x4f, 0x7b, 0x07, 0xb3, 0xe9, 163 0x24, 0x19, 0x3d, 0x34, 0x05, 0xec, 0xf1, 0xab, 164 0x6e, 0x64, 0x8f, 0xd3, 0xe6, 0x41, 0x86, 0x80, 165 0x70, 0xe3, 0x8d, 0x60, 0x9c, 0x34, 0x25, 0x01, 166 0x07, 0x4d, 0x19, 0x41, 0x4e, 0x3d, 0x5c, 0x7e, 167 0xa8, 0xf5, 0xcc, 0xd5, 0x7b, 0xe2, 0x7d, 0x3d, 168 0x49, 0x86, 0x7d, 0x07, 0xb7, 0x10, 0xe3, 0x35, 169 0xb8, 0x84, 0x6d, 0x76, 0xab, 0x17, 0xc6, 0x38, 170 0xb4, 0xd3, 0x28, 0x57, 0xad, 0xd3, 0x88, 0x5a, 171 0xda, 0xea, 0xc8, 0x94, 0xcc, 0x37, 0x19, 0xac, 172 0x9c, 0x9f, 0x4b, 0x00, 0x15, 0xc0, 0xc8, 0xca, 173 0x1f, 0x15, 0xaa, 0xe0, 0xdb, 0xf9, 0x2f, 0x57, 174 0x1b, 0x24, 0xc7, 0x6f, 0x76, 0x29, 0xfb, 0xed, 175 0x25, 0x0d, 0xc0, 0xfe, 0xbd, 0x5a, 0xbf, 0x20, 176 0x08, 0x51, 0x05, 0xec, 0x71, 0xa3, 0xbf, 0xef, 177 0x5e, 0x99, 0x75, 0xdb, 0x3c, 0x5f, 0x9a, 0x8c, 178 0xbb, 0x19, 0x5c, 0x0e, 0x93, 0x19, 0xf8, 0x6a, 179 0xbc, 0xf2, 0x12, 0x54, 0x2f, 0xcb, 0x28, 0x64, 180 0x88, 0xb3, 0x92, 0x0d, 0x96, 0xd1, 0xa6, 0xe4, 181 0x1f, 0xf1, 0x4d, 0xa4, 0xab, 0x1c, 0xee, 0x54, 182 0xf2, 0xad, 0x29, 0x6d, 0x32, 0x37, 0xb2, 0x16, 183 0x77, 0x5c, 0xdc, 0x2e, 0x54, 0xec, 0x75, 0x26, 184 0xc6, 0x36, 0xd9, 0x17, 0x2c, 0xf1, 0x7a, 0xdc, 185 0x4b, 0xf1, 0xe2, 0xd9, 0x95, 0xba, 0xac, 0x87, 186 0xc1, 0xf3, 0x8e, 0x58, 0x08, 0xd8, 0x87, 0x60, 187 0xc9, 0xee, 0x6a, 0xde, 0xa4, 0xd2, 0xfc, 0x0d, 188 0xe5, 0x36, 0xc4, 0x5c, 0x52, 0xb3, 0x07, 0x54, 189 0x65, 0x24, 0xc1, 0xb1, 0xd1, 0xb1, 0x53, 0x13, 190 0x31, 0x79, 0x7f, 0x05, 0x76, 0xeb, 0x37, 0x59, 191 0x15, 0x2b, 0xd1, 0x3f, 0xac, 0x08, 0x97, 0xeb, 192 0x91, 0x98, 0xdf, 0x6c, 0x09, 0x0d, 0x04, 0x9f, 193 0xdc, 0x3b, 0x0e, 0x60, 0x68, 0x47, 0x23, 0x15, 194 0x16, 0xc6, 0x0b, 0x35, 0xf8, 0x77, 0xa2, 0x78, 195 0x50, 0xd4, 0x64, 0x22, 0x33, 0xff, 0xfb, 0x93, 196 0x71, 0x46, 0x50, 0x39, 0x1b, 0x9c, 0xea, 0x4e, 197 0x8d, 0x0c, 0x37, 0xe5, 0x5c, 0x51, 0x3a, 0x31, 198 0xb2, 0x85, 0x84, 0x3f, 0x41, 0xee, 0xa2, 0xc1, 199 0xc6, 0x13, 0x3b, 0x54, 0x28, 0xd2, 0x18, 0x37, 200 0xcc, 0x46, 0x9f, 0x6a, 0x91, 0x3d, 0x5a, 0x15, 201 0x3c, 0x89, 0xa3, 0x61, 0x06, 0x7d, 0x2e, 0x78, 202 0xbe, 0x7d, 0x40, 0xba, 0x2f, 0x95, 0xb1, 0x2f, 203 0x87, 0x3b, 0x8a, 0xbe, 0x6a, 0xf4, 0xc2, 0x31, 204 0x74, 0xee, 0x91, 0xe0, 0x23, 0xaa, 0x5d, 0x7f, 205 0xdd, 0xf0, 0x44, 0x8c, 0x0b, 0x59, 0x2b, 0xfc, 206 0x48, 0x3a, 0xdf, 0x07, 0x05, 0x38, 0x6c, 0xc9, 207 0xeb, 0x18, 0x24, 0x68, 0x8d, 0x58, 0x98, 0xd3, 208 0x31, 0xa3, 0xe4, 0x70, 0x59, 0xb1, 0x21, 0xbe, 209 0x7e, 0x65, 0x7d, 0xb8, 0x04, 0xab, 0xf6, 0xe4, 210 0xd7, 0xda, 0xec, 0x09, 0x8f, 0xda, 0x6d, 0x24, 211 0x07, 0xcc, 0x29, 0x17, 0x05, 0x78, 0x1a, 0xc1, 212 0xb1, 0xce, 0xfc, 0xaa, 0x2d, 0xe7, 0xcc, 0x85, 213 0x84, 0x84, 0x03, 0x2a, 0x0c, 0x3f, 0xa9, 0xf8, 214 0xfd, 0x84, 0x53, 0x59, 0x5c, 0xf0, 0xd4, 0x09, 215 0xf0, 0xd2, 0x6c, 0x32, 0x03, 0xb0, 0xa0, 0x8c, 216 0x52, 0xeb, 0x23, 0x91, 0x88, 0x43, 0x13, 0x46, 217 0xf6, 0x1e, 0xb4, 0x1b, 0xf5, 0x8e, 0x3a, 0xb5, 218 0x3d, 0x00, 0xf6, 0xe5, 0x08, 0x3d, 0x5f, 0x39, 219 0xd3, 0x21, 0x69, 0xbc, 0x03, 0x22, 0x3a, 0xd2, 220 0x5c, 0x84, 0xf8, 0x15, 0xc4, 0x80, 0x0b, 0xbc, 221 0x29, 0x3c, 0xf3, 0x95, 0x98, 0xcd, 0x8f, 0x35, 222 0xbc, 0xa5, 0x3e, 0xfc, 0xd4, 0x13, 0x9e, 0xde, 223 0x4f, 0xce, 0x71, 0x9d, 0x09, 0xad, 0xf2, 0x80, 224 0x6b, 0x65, 0x7f, 0x03, 0x00, 0x14, 0x7c, 0x15, 225 0x85, 0x40, 0x6d, 0x70, 0xea, 0xdc, 0xb3, 0x63, 226 0x35, 0x4f, 0x4d, 0xe0, 0xd9, 0xd5, 0x3c, 0x58, 227 0x56, 0x23, 0x80, 0xe2, 0x36, 0xdd, 0x75, 0x1d, 228 0x94, 0x11, 0x41, 0x8e, 0xe0, 0x81, 0x8e, 0xcf, 229 0xe0, 0xe5, 0xf6, 0xde, 0xd1, 0xe7, 0x04, 0x12, 230 0x79, 0x92, 0x2b, 0x71, 0x2a, 0x79, 0x8b, 0x7c, 231 0x44, 0x79, 0x16, 0x30, 0x4e, 0xf4, 0xf6, 0x9b, 232 0xb7, 0x40, 0xa3, 0x5a, 0xa7, 0x69, 0x3e, 0xc1, 233 0x3a, 0x04, 0xd0, 0x88, 0xa0, 0x3b, 0xdd, 0xc6, 234 0x9e, 0x7e, 0x1e, 0x1e, 0x8f, 0x44, 0xf7, 0x73, 235 0x67, 0x1e, 0x1a, 0x78, 0xfa, 0x62, 0xf4, 0xa9, 236 0xa8, 0xc6, 0x5b, 0xb8, 0xfa, 0x06, 0x7d, 0x5e, 237 0x38, 0x1c, 0x9a, 0x39, 0xe9, 0x39, 0x98, 0x22, 238 0x0b, 0xa7, 0xac, 0x0b, 0xf3, 0xbc, 0xf1, 0xeb, 239 0x8c, 0x81, 0xe3, 0x48, 0x8a, 0xed, 0x42, 0xc2, 240 0x38, 0xcf, 0x3e, 0xda, 0xd2, 0x89, 0x8d, 0x9c, 241 0x53, 0xb5, 0x2f, 0x41, 0x01, 0x26, 0x84, 0x9c, 242 0xa3, 0x56, 0xf6, 0x49, 0xc7, 0xd4, 0x9f, 0x93, 243 0x1b, 0x96, 0x49, 0x5e, 0xad, 0xb3, 0x84, 0x1f, 244 0x3c, 0xa4, 0xe0, 0x9b, 0xd1, 0x90, 0xbc, 0x38, 245 0x6c, 0xdd, 0x95, 0x4d, 0x9d, 0xb1, 0x71, 0x57, 246 0x2d, 0x34, 0xe8, 0xb8, 0x42, 0xc7, 0x99, 0x03, 247 0xc7, 0x07, 0x30, 0x65, 0x91, 0x55, 0xd5, 0x90, 248 0x70, 0x97, 0x37, 0x68, 0xd4, 0x11, 0xf9, 0xe8, 249 0xce, 0xec, 0xdc, 0x34, 0xd5, 0xd3, 0xb7, 0xc4, 250 0xb8, 0x97, 0x05, 0x92, 0xad, 0xf8, 0xe2, 0x36, 251 0x64, 0x41, 0xc9, 0xc5, 0x41, 0x77, 0x52, 0xd7, 252 0x2c, 0xa5, 0x24, 0x2f, 0xd9, 0x34, 0x0b, 0x47, 253 0x35, 0xa7, 0x28, 0x8b, 0xc5, 0xcd, 0xe9, 0x46, 254 0xac, 0x39, 0x94, 0x3c, 0x10, 0xc6, 0x29, 0x73, 255 0x0e, 0x0e, 0x5d, 0xe0, 0x71, 0x03, 0x8a, 0x72, 256 0x0e, 0x26, 0xb0, 0x7d, 0x84, 0xed, 0x95, 0x23, 257 0x49, 0x5a, 0x45, 0x83, 0x45, 0x60, 0x11, 0x4a, 258 0x46, 0x31, 0xd4, 0xd8, 0x16, 0x54, 0x98, 0x58, 259 0xed, 0x6d, 0xcc, 0x5d, 0xd6, 0x50, 0x61, 0x9f, 260 0x9d, 0xc5, 0x3e, 0x9d, 0x32, 0x47, 0xde, 0x96, 261 0xe1, 0x5d, 0xd8, 0xf8, 0xb4, 0x69, 0x6f, 0xb9, 262 0x15, 0x90, 0x57, 0x7a, 0xf6, 0xad, 0xb0, 0x5b, 263 0xf5, 0xa6, 0x36, 0x94, 0xfd, 0x84, 0xce, 0x1c, 264 0x0f, 0x4b, 0xd0, 0xc2, 0x5b, 0x6b, 0x56, 0xef, 265 0x73, 0x93, 0x0b, 0xc3, 0xee, 0xd9, 0xcf, 0xd3, 266 0xa4, 0x22, 0x58, 0xcd, 0x50, 0x6e, 0x65, 0xf4, 267 0xe9, 0xb7, 0x71, 0xaf, 0x4b, 0xb3, 0xb6, 0x2f, 268 0x0f, 0x0e, 0x3b, 0xc9, 0x85, 0x14, 0xf5, 0x17, 269 0xe8, 0x7a, 0x3a, 0xbf, 0x5f, 0x5e, 0xf8, 0x18, 270 0x48, 0xa6, 0x72, 0xab, 0x06, 0x95, 0xe9, 0xc8, 271 0xa7, 0xf4, 0x32, 0x44, 0x04, 0x0c, 0x84, 0x98, 272 0x73, 0xe3, 0x89, 0x8d, 0x5f, 0x7e, 0x4a, 0x42, 273 0x8f, 0xc5, 0x28, 0xb1, 0x82, 0xef, 0x1c, 0x97, 274 0x31, 0x3b, 0x4d, 0xe0, 0x0e, 0x10, 0x10, 0x97, 275 0x93, 0x49, 0x78, 0x2f, 0x0d, 0x86, 0x8b, 0xa1, 276 0x53, 0xa9, 0x81, 0x20, 0x79, 0xe7, 0x07, 0x77, 277 0xb6, 0xac, 0x5e, 0xd2, 0x05, 0xcd, 0xe9, 0xdb, 278 0x8a, 0x94, 0x82, 0x8a, 0x23, 0xb9, 0x3d, 0x1c, 279 0xa9, 0x7d, 0x72, 0x4a, 0xed, 0x33, 0xa3, 0xdb, 280 0x21, 0xa7, 0x86, 0x33, 0x45, 0xa5, 0xaa, 0x56, 281 0x45, 0xb5, 0x83, 0x29, 0x40, 0x47, 0x79, 0x04, 282 0x6e, 0xb9, 0x95, 0xd0, 0x81, 0x77, 0x2d, 0x48, 283 0x1e, 0xfe, 0xc3, 0xc2, 0x1e, 0xe5, 0xf2, 0xbe, 284 0xfd, 0x3b, 0x94, 0x9f, 0xc4, 0xc4, 0x26, 0x9d, 285 0xe4, 0x66, 0x1e, 0x19, 0xee, 0x6c, 0x79, 0x97, 286 0x11, 0x31, 0x4b, 0x0d, 0x01, 0xcb, 0xde, 0xa8, 287 0xf6, 0x6d, 0x7c, 0x39, 0x46, 0x4e, 0x7e, 0x3f, 288 0x94, 0x17, 0xdf, 0xa1, 0x7d, 0xd9, 0x1c, 0x8e, 289 0xbc, 0x7d, 0x33, 0x7d, 0xe3, 0x12, 0x40, 0xca, 290 0xab, 0x37, 0x11, 0x46, 0xd4, 0xae, 0xef, 0x44, 291 0xa2, 0xb3, 0x6a, 0x66, 0x0e, 0x0c, 0x90, 0x7f, 292 0xdf, 0x5c, 0x66, 0x5f, 0xf2, 0x94, 0x9f, 0xa6, 293 0x73, 0x4f, 0xeb, 0x0d, 0xad, 0xbf, 0xc0, 0x63, 294 0x5c, 0xdc, 0x46, 0x51, 0xe8, 0x8e, 0x90, 0x19, 295 0xa8, 0xa4, 0x3c, 0x91, 0x79, 0xfa, 0x7e, 0x58, 296 0x85, 0x13, 0x55, 0xc5, 0x19, 0x82, 0x37, 0x1b, 297 0x0a, 0x02, 0x1f, 0x99, 0x6b, 0x18, 0xf1, 0x28, 298 0x08, 0xa2, 0x73, 0xb8, 0x0f, 0x2e, 0xcd, 0xbf, 299 0xf3, 0x86, 0x7f, 0xea, 0xef, 0xd0, 0xbb, 0xa6, 300 0x21, 0xdf, 0x49, 0x73, 0x51, 0xcc, 0x36, 0xd3, 301 0x3e, 0xa0, 0xf8, 0x44, 0xdf, 0xd3, 0xa6, 0xbe, 302 0x8a, 0xd4, 0x57, 0xdd, 0x72, 0x94, 0x61, 0x0f, 303 0x82, 0xd1, 0x07, 0xb8, 0x7c, 0x18, 0x83, 0xdf, 304 0x3a, 0xe5, 0x50, 0x6a, 0x82, 0x20, 0xac, 0xa9, 305 0xa8, 0xff, 0xd9, 0xf3, 0x77, 0x33, 0x5a, 0x9e, 306 0x7f, 0x6d, 0xfe, 0x5d, 0x33, 0x41, 0x42, 0xe7, 307 0x6c, 0x19, 0xe0, 0x44, 0x8a, 0x15, 0xf6, 0x70, 308 0x98, 0xb7, 0x68, 0x4d, 0xfa, 0x97, 0x39, 0xb0, 309 0x8e, 0xe8, 0x84, 0x8b, 0x75, 0x30, 0xb7, 0x7d, 310 0x92, 0x69, 0x20, 0x9c, 0x81, 0xfb, 0x4b, 0xf4, 311 0x01, 0x50, 0xeb, 0xce, 0x0c, 0x1c, 0x6c, 0xb5, 312 0x4a, 0xd7, 0x27, 0x0c, 0xce, 0xbb, 0xe5, 0x85, 313 0xf0, 0xb6, 0xee, 0xd5, 0x70, 0xdd, 0x3b, 0xfc, 314 0xd4, 0x99, 0xf1, 0x33, 0xdd, 0x8b, 0xc4, 0x2f, 315 0xae, 0xab, 0x74, 0x96, 0x32, 0xc7, 0x4c, 0x56, 316 0x3c, 0x89, 0x0f, 0x96, 0x0b, 0x42, 0xc0, 0xcb, 317 0xee, 0x0f, 0x0b, 0x8c, 0xfb, 0x7e, 0x47, 0x7b, 318 0x64, 0x48, 0xfd, 0xb2, 0x00, 0x80, 0x89, 0xa5, 319 0x13, 0x55, 0x62, 0xfc, 0x8f, 0xe2, 0x42, 0x03, 320 0xb7, 0x4e, 0x2a, 0x79, 0xb4, 0x82, 0xea, 0x23, 321 0x49, 0xda, 0xaf, 0x52, 0x63, 0x1e, 0x60, 0x03, 322 0x89, 0x06, 0x44, 0x46, 0x08, 0xc3, 0xc4, 0x87, 323 0x70, 0x2e, 0xda, 0x94, 0xad, 0x6b, 0xe0, 0xe4, 324 0xd1, 0x8a, 0x06, 0xc2, 0xa8, 0xc0, 0xa7, 0x43, 325 0x3c, 0x47, 0x52, 0x0e, 0xc3, 0x77, 0x81, 0x11, 326 0x67, 0x0e, 0xa0, 0x70, 0x04, 0x47, 0x29, 0x40, 327 0x86, 0x0d, 0x34, 0x56, 0xa7, 0xc9, 0x35, 0x59, 328 0x68, 0xdc, 0x93, 0x81, 0x70, 0xee, 0x86, 0xd9, 329 0x80, 0x06, 0x40, 0x4f, 0x1a, 0x0d, 0x40, 0x30, 330 0x0b, 0xcb, 0x96, 0x47, 0xc1, 0xb7, 0x52, 0xfd, 331 0x56, 0xe0, 0x72, 0x4b, 0xfb, 0xbd, 0x92, 0x45, 332 0x61, 0x71, 0xc2, 0x33, 0x11, 0xbf, 0x52, 0x83, 333 0x79, 0x26, 0xe0, 0x49, 0x6b, 0xb7, 0x05, 0x8b, 334 0xe8, 0x0e, 0x87, 0x31, 0xd7, 0x9d, 0x8a, 0xf5, 335 0xc0, 0x5f, 0x2e, 0x58, 0x4a, 0xdb, 0x11, 0xb3, 336 0x6c, 0x30, 0x2a, 0x46, 0x19, 0xe3, 0x27, 0x84, 337 0x1f, 0x63, 0x6e, 0xf6, 0x57, 0xc7, 0xc9, 0xd8, 338 0x5e, 0xba, 0xb3, 0x87, 0xd5, 0x83, 0x26, 0x34, 339 0x21, 0x9e, 0x65, 0xde, 0x42, 0xd3, 0xbe, 0x7b, 340 0xbc, 0x91, 0x71, 0x44, 0x4d, 0x99, 0x3b, 0x31, 341 0xe5, 0x3f, 0x11, 0x4e, 0x7f, 0x13, 0x51, 0x3b, 342 0xae, 0x79, 0xc9, 0xd3, 0x81, 0x8e, 0x25, 0x40, 343 0x10, 0xfc, 0x07, 0x1e, 0xf9, 0x7b, 0x9a, 0x4b, 344 0x6c, 0xe3, 0xb3, 0xad, 0x1a, 0x0a, 0xdd, 0x9e, 345 0x59, 0x0c, 0xa2, 0xcd, 0xae, 0x48, 0x4a, 0x38, 346 0x5b, 0x47, 0x41, 0x94, 0x65, 0x6b, 0xbb, 0xeb, 347 0x5b, 0xe3, 0xaf, 0x07, 0x5b, 0xd4, 0x4a, 0xa2, 348 0xc9, 0x5d, 0x2f, 0x64, 0x03, 0xd7, 0x3a, 0x2c, 349 0x6e, 0xce, 0x76, 0x95, 0xb4, 0xb3, 0xc0, 0xf1, 350 0xe2, 0x45, 0x73, 0x7a, 0x5c, 0xab, 0xc1, 0xfc, 351 0x02, 0x8d, 0x81, 0x29, 0xb3, 0xac, 0x07, 0xec, 352 0x40, 0x7d, 0x45, 0xd9, 0x7a, 0x59, 0xee, 0x34, 353 0xf0, 0xe9, 0xd5, 0x7b, 0x96, 0xb1, 0x3d, 0x95, 354 0xcc, 0x86, 0xb5, 0xb6, 0x04, 0x2d, 0xb5, 0x92, 355 0x7e, 0x76, 0xf4, 0x06, 0xa9, 0xa3, 0x12, 0x0f, 356 0xb1, 0xaf, 0x26, 0xba, 0x7c, 0xfc, 0x7e, 0x1c, 357 0xbc, 0x2c, 0x49, 0x97, 0x53, 0x60, 0x13, 0x0b, 358 0xa6, 0x61, 0x83, 0x89, 0x42, 0xd4, 0x17, 0x0c, 359 0x6c, 0x26, 0x52, 0xc3, 0xb3, 0xd4, 0x67, 0xf5, 360 0xe3, 0x04, 0xb7, 0xf4, 0xcb, 0x80, 0xb8, 0xcb, 361 0x77, 0x56, 0x3e, 0xaa, 0x57, 0x54, 0xee, 0xb4, 362 0x2c, 0x67, 0xcf, 0xf2, 0xdc, 0xbe, 0x55, 0xf9, 363 0x43, 0x1f, 0x6e, 0x22, 0x97, 0x67, 0x7f, 0xc4, 364 0xef, 0xb1, 0x26, 0x31, 0x1e, 0x27, 0xdf, 0x41, 365 0x80, 0x47, 0x6c, 0xe2, 0xfa, 0xa9, 0x8c, 0x2a, 366 0xf6, 0xf2, 0xab, 0xf0, 0x15, 0xda, 0x6c, 0xc8, 367 0xfe, 0xb5, 0x23, 0xde, 0xa9, 0x05, 0x3f, 0x06, 368 0x54, 0x4c, 0xcd, 0xe1, 0xab, 0xfc, 0x0e, 0x62, 369 0x33, 0x31, 0x73, 0x2c, 0x76, 0xcb, 0xb4, 0x47, 370 0x1e, 0x20, 0xad, 0xd8, 0xf2, 0x31, 0xdd, 0xc4, 371 0x8b, 0x0c, 0x77, 0xbe, 0xe1, 0x8b, 0x26, 0x00, 372 0x02, 0x58, 0xd6, 0x8d, 0xef, 0xad, 0x74, 0x67, 373 0xab, 0x3f, 0xef, 0xcb, 0x6f, 0xb0, 0xcc, 0x81, 374 0x44, 0x4c, 0xaf, 0xe9, 0x49, 0x4f, 0xdb, 0xa0, 375 0x25, 0xa4, 0xf0, 0x89, 0xf1, 0xbe, 0xd8, 0x10, 376 0xff, 0xb1, 0x3b, 0x4b, 0xfa, 0x98, 0xf5, 0x79, 377 0x6d, 0x1e, 0x69, 0x4d, 0x57, 0xb1, 0xc8, 0x19, 378 0x1b, 0xbd, 0x1e, 0x8c, 0x84, 0xb7, 0x7b, 0xe8, 379 0xd2, 0x2d, 0x09, 0x41, 0x41, 0x37, 0x3d, 0xb1, 380 0x6f, 0x26, 0x5d, 0x71, 0x16, 0x3d, 0xb7, 0x83, 381 0x27, 0x2c, 0xa7, 0xb6, 0x50, 0xbd, 0x91, 0x86, 382 0xab, 0x24, 0xa1, 0x38, 0xfd, 0xea, 0x71, 0x55, 383 0x7e, 0x9a, 0x07, 0x77, 0x4b, 0xfa, 0x61, 0x66, 384 0x20, 0x1e, 0x28, 0x95, 0x18, 0x1b, 0xa4, 0xa0, 385 0xfd, 0xc0, 0x89, 0x72, 0x43, 0xd9, 0x3b, 0x49, 386 0x5a, 0x3f, 0x9d, 0xbf, 0xdb, 0xb4, 0x46, 0xea, 387 0x42, 0x01, 0x77, 0x23, 0x68, 0x95, 0xb6, 0x24, 388 0xb3, 0xa8, 0x6c, 0x28, 0x3b, 0x11, 0x40, 0x7e, 389 0x18, 0x65, 0x6d, 0xd8, 0x24, 0x42, 0x7d, 0x88, 390 0xc0, 0x52, 0xd9, 0x05, 0xe4, 0x95, 0x90, 0x87, 391 0x8c, 0xf4, 0xd0, 0x6b, 0xb9, 0x83, 0x99, 0x34, 392 0x6d, 0xfe, 0x54, 0x40, 0x94, 0x52, 0x21, 0x4f, 393 0x14, 0x25, 0xc5, 0xd6, 0x5e, 0x95, 0xdc, 0x0a, 394 0x2b, 0x89, 0x20, 0x11, 0x84, 0x48, 0xd6, 0x3a, 395 0xcd, 0x5c, 0x24, 0xad, 0x62, 0xe3, 0xb1, 0x93, 396 0x25, 0x8d, 0xcd, 0x7e, 0xfc, 0x27, 0xa3, 0x37, 397 0xfd, 0x84, 0xfc, 0x1b, 0xb2, 0xf1, 0x27, 0x38, 398 0x5a, 0xb7, 0xfc, 0xf2, 0xfa, 0x95, 0x66, 0xd4, 399 0xfb, 0xba, 0xa7, 0xd7, 0xa3, 0x72, 0x69, 0x48, 400 0x48, 0x8c, 0xeb, 0x28, 0x89, 0xfe, 0x33, 0x65, 401 0x5a, 0x36, 0x01, 0x7e, 0x06, 0x79, 0x0a, 0x09, 402 0x3b, 0x74, 0x11, 0x9a, 0x6e, 0xbf, 0xd4, 0x9e, 403 0x58, 0x90, 0x49, 0x4f, 0x4d, 0x08, 0xd4, 0xe5, 404 0x4a, 0x09, 0x21, 0xef, 0x8b, 0xb8, 0x74, 0x3b, 405 0x91, 0xdd, 0x36, 0x85, 0x60, 0x2d, 0xfa, 0xd4, 406 0x45, 0x7b, 0x45, 0x53, 0xf5, 0x47, 0x87, 0x7e, 407 0xa6, 0x37, 0xc8, 0x78, 0x7a, 0x68, 0x9d, 0x8d, 408 0x65, 0x2c, 0x0e, 0x91, 0x5c, 0xa2, 0x60, 0xf0, 409 0x8e, 0x3f, 0xe9, 0x1a, 0xcd, 0xaa, 0xe7, 0xd5, 410 0x77, 0x18, 0xaf, 0xc9, 0xbc, 0x18, 0xea, 0x48, 411 0x1b, 0xfb, 0x22, 0x48, 0x70, 0x16, 0x29, 0x9e, 412 0x5b, 0xc1, 0x2c, 0x66, 0x23, 0xbc, 0xf0, 0x1f, 413 0xef, 0xaf, 0xe4, 0xd6, 0x04, 0x19, 0x82, 0x7a, 414 0x0b, 0xba, 0x4b, 0x46, 0xb1, 0x6a, 0x85, 0x5d, 415 0xb4, 0x73, 0xd6, 0x21, 0xa1, 0x71, 0x60, 0x14, 416 0xee, 0x0a, 0x77, 0xc4, 0x66, 0x2e, 0xf9, 0x69, 417 0x30, 0xaf, 0x41, 0x0b, 0xc8, 0x83, 0x3c, 0x53, 418 0x99, 0x19, 0x27, 0x46, 0xf7, 0x41, 0x6e, 0x56, 419 0xdc, 0x94, 0x28, 0x67, 0x4e, 0xb7, 0x25, 0x48, 420 0x8a, 0xc2, 0xe0, 0x60, 0x96, 0xcc, 0x18, 0xf4, 421 0x84, 0xdd, 0xa7, 0x5e, 0x3e, 0x05, 0x0b, 0x26, 422 0x26, 0xb2, 0x5c, 0x1f, 0x57, 0x1a, 0x04, 0x7e, 423 0x6a, 0xe3, 0x2f, 0xb4, 0x35, 0xb6, 0x38, 0x40, 424 0x40, 0xcd, 0x6f, 0x87, 0x2e, 0xef, 0xa3, 0xd7, 425 0xa9, 0xc2, 0xe8, 0x0d, 0x27, 0xdf, 0x44, 0x62, 426 0x99, 0xa0, 0xfc, 0xcf, 0x81, 0x78, 0xcb, 0xfe, 427 0xe5, 0xa0, 0x03, 0x4e, 0x6c, 0xd7, 0xf4, 0xaf, 428 0x7a, 0xbb, 0x61, 0x82, 0xfe, 0x71, 0x89, 0xb2, 429 0x22, 0x7c, 0x8e, 0x83, 0x04, 0xce, 0xf6, 0x5d, 430 0x84, 0x8f, 0x95, 0x6a, 0x7f, 0xad, 0xfd, 0x32, 431 0x9c, 0x5e, 0xe4, 0x9c, 0x89, 0x60, 0x54, 0xaa, 432 0x96, 0x72, 0xd2, 0xd7, 0x36, 0x85, 0xa9, 0x45, 433 0xd2, 0x2a, 0xa1, 0x81, 0x49, 0x6f, 0x7e, 0x04, 434 0xfa, 0xe2, 0xfe, 0x90, 0x26, 0x77, 0x5a, 0x33, 435 0xb8, 0x04, 0x9a, 0x7a, 0xe6, 0x4c, 0x4f, 0xad, 436 0x72, 0x96, 0x08, 0x28, 0x58, 0x13, 0xf8, 0xc4, 437 0x1c, 0xf0, 0xc3, 0x45, 0x95, 0x49, 0x20, 0x8c, 438 0x9f, 0x39, 0x70, 0xe1, 0x77, 0xfe, 0xd5, 0x4b, 439 0xaf, 0x86, 0xda, 0xef, 0x22, 0x06, 0x83, 0x36, 440 0x29, 0x12, 0x11, 0x40, 0xbc, 0x3b, 0x86, 0xaa, 441 0xaa, 0x65, 0x60, 0xc3, 0x80, 0xca, 0xed, 0xa9, 442 0xf3, 0xb0, 0x79, 0x96, 0xa2, 0x55, 0x27, 0x28, 443 0x55, 0x73, 0x26, 0xa5, 0x50, 0xea, 0x92, 0x4b, 444 0x3c, 0x5c, 0x82, 0x33, 0xf0, 0x01, 0x3f, 0x03, 445 0xc1, 0x08, 0x05, 0xbf, 0x98, 0xf4, 0x9b, 0x6d, 446 0xa5, 0xa8, 0xb4, 0x82, 0x0c, 0x06, 0xfa, 0xff, 447 0x2d, 0x08, 0xf3, 0x05, 0x4f, 0x57, 0x2a, 0x39, 448 0xd4, 0x83, 0x0d, 0x75, 0x51, 0xd8, 0x5b, 0x1b, 449 0xd3, 0x51, 0x5a, 0x32, 0x2a, 0x9b, 0x32, 0xb2, 450 0xf2, 0xa4, 0x96, 0x12, 0xf2, 0xae, 0x40, 0x34, 451 0x67, 0xa8, 0xf5, 0x44, 0xd5, 0x35, 0x53, 0xfe, 452 0xa3, 0x60, 0x96, 0x63, 0x0f, 0x1f, 0x6e, 0xb0, 453 0x5a, 0x42, 0xa6, 0xfc, 0x51, 0x0b, 0x60, 0x27, 454 0xbc, 0x06, 0x71, 0xed, 0x65, 0x5b, 0x23, 0x86, 455 0x4a, 0x07, 0x3b, 0x22, 0x07, 0x46, 0xe6, 0x90, 456 0x3e, 0xf3, 0x25, 0x50, 0x1b, 0x4c, 0x7f, 0x03, 457 0x08, 0xa8, 0x36, 0x6b, 0x87, 0xe5, 0xe3, 0xdb, 458 0x9a, 0x38, 0x83, 0xff, 0x9f, 0x1a, 0x9f, 0x57, 459 0xa4, 0x2a, 0xf6, 0x37, 0xbc, 0x1a, 0xff, 0xc9, 460 0x1e, 0x35, 0x0c, 0xc3, 0x7c, 0xa3, 0xb2, 0xe5, 461 0xd2, 0xc6, 0xb4, 0x57, 0x47, 0xe4, 0x32, 0x16, 462 0x6d, 0xa9, 0xae, 0x64, 0xe6, 0x2d, 0x8d, 0xc5, 463 0x8d, 0x50, 0x8e, 0xe8, 0x1a, 0x22, 0x34, 0x2a, 464 0xd9, 0xeb, 0x51, 0x90, 0x4a, 0xb1, 0x41, 0x7d, 465 0x64, 0xf9, 0xb9, 0x0d, 0xf6, 0x23, 0x33, 0xb0, 466 0x33, 0xf4, 0xf7, 0x3f, 0x27, 0x84, 0xc6, 0x0f, 467 0x54, 0xa5, 0xc0, 0x2e, 0xec, 0x0b, 0x3a, 0x48, 468 0x6e, 0x80, 0x35, 0x81, 0x43, 0x9b, 0x90, 0xb1, 469 0xd0, 0x2b, 0xea, 0x21, 0xdc, 0xda, 0x5b, 0x09, 470 0xf4, 0xcc, 0x10, 0xb4, 0xc7, 0xfe, 0x79, 0x51, 471 0xc3, 0xc5, 0xac, 0x88, 0x74, 0x84, 0x0b, 0x4b, 472 0xca, 0x79, 0x16, 0x29, 0xfb, 0x69, 0x54, 0xdf, 473 0x41, 0x7e, 0xe9, 0xc7, 0x8e, 0xea, 0xa5, 0xfe, 474 0xfc, 0x76, 0x0e, 0x90, 0xc4, 0x92, 0x38, 0xad, 475 0x7b, 0x48, 0xe6, 0x6e, 0xf7, 0x21, 0xfd, 0x4e, 476 0x93, 0x0a, 0x7b, 0x41, 0x83, 0x68, 0xfb, 0x57, 477 0x51, 0x76, 0x34, 0xa9, 0x6c, 0x00, 0xaa, 0x4f, 478 0x66, 0x65, 0x98, 0x4a, 0x4f, 0xa3, 0xa0, 0xef, 479 0x69, 0x3f, 0xe3, 0x1c, 0x92, 0x8c, 0xfd, 0xd8, 480 0xe8, 0xde, 0x7c, 0x7f, 0x3e, 0x84, 0x8e, 0x69, 481 0x3c, 0xf1, 0xf2, 0x05, 0x46, 0xdc, 0x2f, 0x9d, 482 0x5e, 0x6e, 0x4c, 0xfb, 0xb5, 0x99, 0x2a, 0x59, 483 0x63, 0xc1, 0x34, 0xbc, 0x57, 0xc0, 0x0d, 0xb9, 484 0x61, 0x25, 0xf3, 0x33, 0x23, 0x51, 0xb6, 0x0d, 485 0x07, 0xa6, 0xab, 0x94, 0x4a, 0xb7, 0x2a, 0xea, 486 0xee, 0xac, 0xa3, 0xc3, 0x04, 0x8b, 0x0e, 0x56, 487 0xfe, 0x44, 0xa7, 0x39, 0xe2, 0xed, 0xed, 0xb4, 488 0x22, 0x2b, 0xac, 0x12, 0x32, 0x28, 0x91, 0xd8, 489 0xa5, 0xab, 0xff, 0x5f, 0xe0, 0x4b, 0xda, 0x78, 490 0x17, 0xda, 0xf1, 0x01, 0x5b, 0xcd, 0xe2, 0x5f, 491 0x50, 0x45, 0x73, 0x2b, 0xe4, 0x76, 0x77, 0xf4, 492 0x64, 0x1d, 0x43, 0xfb, 0x84, 0x7a, 0xea, 0x91, 493 0xae, 0xf9, 0x9e, 0xb7, 0xb4, 0xb0, 0x91, 0x5f, 494 0x16, 0x35, 0x9a, 0x11, 0xb8, 0xc7, 0xc1, 0x8c, 495 0xc6, 0x10, 0x8d, 0x2f, 0x63, 0x4a, 0xa7, 0x57, 496 0x3a, 0x51, 0xd6, 0x32, 0x2d, 0x64, 0x72, 0xd4, 497 0x66, 0xdc, 0x10, 0xa6, 0x67, 0xd6, 0x04, 0x23, 498 0x9d, 0x0a, 0x11, 0x77, 0xdd, 0x37, 0x94, 0x17, 499 0x3c, 0xbf, 0x8b, 0x65, 0xb0, 0x2e, 0x5e, 0x66, 500 0x47, 0x64, 0xac, 0xdd, 0xf0, 0x84, 0xfd, 0x39, 501 0xfa, 0x15, 0x5d, 0xef, 0xae, 0xca, 0xc1, 0x36, 502 0xa7, 0x5c, 0xbf, 0xc7, 0x08, 0xc2, 0x66, 0x00, 503 0x74, 0x74, 0x4e, 0x27, 0x3f, 0x55, 0x8a, 0xb7, 504 0x38, 0x66, 0x83, 0x6d, 0xcf, 0x99, 0x9e, 0x60, 505 0x8f, 0xdd, 0x2e, 0x62, 0x22, 0x0e, 0xef, 0x0c, 506 0x98, 0xa7, 0x85, 0x74, 0x3b, 0x9d, 0xec, 0x9e, 507 0xa9, 0x19, 0x72, 0xa5, 0x7f, 0x2c, 0x39, 0xb7, 508 0x7d, 0xb7, 0xf1, 0x12, 0x65, 0x27, 0x4b, 0x5a, 509 0xde, 0x17, 0xfe, 0xad, 0x44, 0xf3, 0x20, 0x4d, 510 0xfd, 0xe4, 0x1f, 0xb5, 0x81, 0xb0, 0x36, 0x37, 511 0x08, 0x6f, 0xc3, 0x0c, 0xe9, 0x85, 0x98, 0x82, 512 0xa9, 0x62, 0x0c, 0xc4, 0x97, 0xc0, 0x50, 0xc8, 513 0xa7, 0x3c, 0x50, 0x9f, 0x43, 0xb9, 0xcd, 0x5e, 514 0x4d, 0xfa, 0x1c, 0x4b, 0x0b, 0xa9, 0x98, 0x85, 515 0x38, 0x92, 0xac, 0x8d, 0xe4, 0xad, 0x9b, 0x98, 516 0xab, 0xd9, 0x38, 0xac, 0x62, 0x52, 0xa3, 0x22, 517 0x63, 0x0f, 0xbf, 0x95, 0x48, 0xdf, 0x69, 0xe7, 518 0x8b, 0x33, 0xd5, 0xb2, 0xbd, 0x05, 0x49, 0x49, 519 0x9d, 0x57, 0x73, 0x19, 0x33, 0xae, 0xfa, 0x33, 520 0xf1, 0x19, 0xa8, 0x80, 0xce, 0x04, 0x9f, 0xbc, 521 0x1d, 0x65, 0x82, 0x1b, 0xe5, 0x3a, 0x51, 0xc8, 522 0x1c, 0x21, 0xe3, 0x5d, 0xf3, 0x7d, 0x9b, 0x2f, 523 0x2c, 0x1d, 0x4a, 0x7f, 0x9b, 0x68, 0x35, 0xa3, 524 0xb2, 0x50, 0xf7, 0x62, 0x79, 0xcd, 0xf4, 0x98, 525 0x4f, 0xe5, 0x63, 0x7c, 0x3e, 0x45, 0x31, 0x8c, 526 0x16, 0xa0, 0x12, 0xc8, 0x58, 0xce, 0x39, 0xa6, 527 0xbc, 0x54, 0xdb, 0xc5, 0xe0, 0xd5, 0xba, 0xbc, 528 0xb9, 0x04, 0xf4, 0x8d, 0xe8, 0x2f, 0x15, 0x9d, 529 }; 530 531 /* 100 test cases */ 532 static struct dahash_test { 533 uint16_t start; /* random 12 bit offset in buf */ 534 uint16_t length; /* random 8 bit length of test */ 535 xfs_dahash_t dahash; /* expected dahash result */ 536 } test[] __initdata = 537 { 538 {0x0567, 0x0097, 0x96951389}, 539 {0x0869, 0x0055, 0x6455ab4f}, 540 {0x0c51, 0x00be, 0x8663afde}, 541 {0x044a, 0x00fc, 0x98fbe432}, 542 {0x0f29, 0x0079, 0x42371997}, 543 {0x08ba, 0x0052, 0x942be4f7}, 544 {0x01f2, 0x0013, 0x5262687e}, 545 {0x09e3, 0x00e2, 0x8ffb0908}, 546 {0x007c, 0x0051, 0xb3158491}, 547 {0x0854, 0x001f, 0x83bb20d9}, 548 {0x031b, 0x0008, 0x98970bdf}, 549 {0x0de7, 0x0027, 0xbfbf6f6c}, 550 {0x0f76, 0x0005, 0x906a7105}, 551 {0x092e, 0x00d0, 0x86631850}, 552 {0x0233, 0x0082, 0xdbdd914e}, 553 {0x04c9, 0x0075, 0x5a400a9e}, 554 {0x0b66, 0x0099, 0xae128b45}, 555 {0x000d, 0x00ed, 0xe61c216a}, 556 {0x0a31, 0x003d, 0xf69663b9}, 557 {0x00a3, 0x0052, 0x643c39ae}, 558 {0x0125, 0x00d5, 0x7c310b0d}, 559 {0x0105, 0x004a, 0x06a77e74}, 560 {0x0858, 0x008e, 0x265bc739}, 561 {0x045e, 0x0095, 0x13d6b192}, 562 {0x0dab, 0x003c, 0xc4498704}, 563 {0x00cd, 0x00b5, 0x802a4e2d}, 564 {0x069b, 0x008c, 0x5df60f71}, 565 {0x0454, 0x006c, 0x5f03d8bb}, 566 {0x040e, 0x0032, 0x0ce513b5}, 567 {0x0874, 0x00e2, 0x6a811fb3}, 568 {0x0521, 0x00b4, 0x93296833}, 569 {0x0ddc, 0x00cf, 0xf9305338}, 570 {0x0a70, 0x0023, 0x239549ea}, 571 {0x083e, 0x0027, 0x2d88ba97}, 572 {0x0241, 0x00a7, 0xfe0b32e1}, 573 {0x0dfc, 0x0096, 0x1a11e815}, 574 {0x023e, 0x001e, 0xebc9a1f3}, 575 {0x067e, 0x0066, 0xb1067f81}, 576 {0x09ea, 0x000e, 0x46fd7247}, 577 {0x036b, 0x008c, 0x1a39acdf}, 578 {0x078f, 0x0030, 0x964042ab}, 579 {0x085c, 0x008f, 0x1829edab}, 580 {0x02ec, 0x009f, 0x6aefa72d}, 581 {0x043b, 0x00ce, 0x65642ff5}, 582 {0x0a32, 0x00b8, 0xbd82759e}, 583 {0x0d3c, 0x0087, 0xf4d66d54}, 584 {0x09ec, 0x008a, 0x06bfa1ff}, 585 {0x0902, 0x0015, 0x755025d2}, 586 {0x08fe, 0x000e, 0xf690ce2d}, 587 {0x00fb, 0x00dc, 0xe55f1528}, 588 {0x0eaa, 0x003a, 0x0fe0a8d7}, 589 {0x05fb, 0x0006, 0x86281cfb}, 590 {0x0dd1, 0x00a7, 0x60ab51b4}, 591 {0x0005, 0x001b, 0xf51d969b}, 592 {0x077c, 0x00dd, 0xc2fed268}, 593 {0x0575, 0x00f5, 0x432c0b1a}, 594 {0x05be, 0x0088, 0x78baa04b}, 595 {0x0c89, 0x0068, 0xeda9e428}, 596 {0x0f5c, 0x0068, 0xec143c76}, 597 {0x06a8, 0x0009, 0xd72651ce}, 598 {0x060f, 0x008e, 0x765426cd}, 599 {0x07b1, 0x0047, 0x2cfcfa0c}, 600 {0x04f1, 0x0041, 0x55b172f9}, 601 {0x0e05, 0x00ac, 0x61efde93}, 602 {0x0bf7, 0x0097, 0x05b83eee}, 603 {0x04e9, 0x00f3, 0x9928223a}, 604 {0x023a, 0x0005, 0xdfada9bc}, 605 {0x0acb, 0x000e, 0x2217cecd}, 606 {0x0148, 0x0060, 0xbc3f7405}, 607 {0x0764, 0x0059, 0xcbc201b1}, 608 {0x021f, 0x0059, 0x5d6b2256}, 609 {0x0f1e, 0x006c, 0xdefeeb45}, 610 {0x071c, 0x00b9, 0xb9b59309}, 611 {0x0564, 0x0063, 0xae064271}, 612 {0x0b14, 0x0044, 0xdb867d9b}, 613 {0x0e5a, 0x0055, 0xff06b685}, 614 {0x015e, 0x00ba, 0x1115ccbc}, 615 {0x0379, 0x00e6, 0x5f4e58dd}, 616 {0x013b, 0x0067, 0x4897427e}, 617 {0x0e64, 0x0071, 0x7af2b7a4}, 618 {0x0a11, 0x0050, 0x92105726}, 619 {0x0109, 0x0055, 0xd0d000f9}, 620 {0x00aa, 0x0022, 0x815d229d}, 621 {0x09ac, 0x004f, 0x02f9d985}, 622 {0x0e1b, 0x00ce, 0x5cf92ab4}, 623 {0x08af, 0x00d8, 0x17ca72d1}, 624 {0x0e33, 0x000a, 0xda2dba6b}, 625 {0x0ee3, 0x006a, 0xb00048e5}, 626 {0x0648, 0x001a, 0x2364b8cb}, 627 {0x0315, 0x0085, 0x0596fd0d}, 628 {0x0fbb, 0x003e, 0x298230ca}, 629 {0x0422, 0x006a, 0x78ada4ab}, 630 {0x04ba, 0x0073, 0xced1fbc2}, 631 {0x007d, 0x0061, 0x4b7ff236}, 632 {0x070b, 0x00d0, 0x261cf0ae}, 633 {0x0c1a, 0x0035, 0x8be92ee2}, 634 {0x0af8, 0x0063, 0x824dcf03}, 635 {0x08f8, 0x006d, 0xd289710c}, 636 {0x021b, 0x00ee, 0x6ac1c41d}, 637 {0x05b5, 0x00da, 0x8e52f0e2}, 638 }; 639 640 int __init 641 xfs_dahash_test(void) 642 { 643 unsigned int i; 644 unsigned int errors = 0; 645 646 for (i = 0; i < ARRAY_SIZE(test); i++) { 647 xfs_dahash_t hash; 648 649 hash = xfs_da_hashname(test_buf + test[i].start, 650 test[i].length); 651 if (hash != test[i].dahash) 652 errors++; 653 } 654 655 if (errors) { 656 printk(KERN_ERR "xfs dir/attr hash test failed %u times!", 657 errors); 658 return -ERANGE; 659 } 660 661 return 0; 662 } 663