2 * Authors.....: Jens Steube <jens.steube@gmail.com>
3 * Gabriele Gristina <matrix@hashcat.net>
12 #include "inc_vendor.cl"
13 #include "inc_hash_constants.h"
14 #include "inc_hash_functions.cl"
15 #include "inc_types.cl"
16 #include "inc_common.cl"
17 #include "inc_simd.cl"
22 #define BOX(S,n,i) (S)[(n)][(i)]
24 #define BOX(S,n,i) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1])
26 #define BOX(S,n,i) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3])
28 #define BOX(S,n,i) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7])
30 #define BOX(S,n,i) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf])
33 __constant u32 Ch[8][256] =
36 0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
37 0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
38 0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
39 0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
40 0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
41 0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
42 0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
43 0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
44 0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
45 0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
46 0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
47 0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
48 0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
49 0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
50 0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
51 0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
52 0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
53 0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
54 0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
55 0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
56 0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
57 0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
58 0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
59 0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
60 0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
61 0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
62 0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
63 0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
64 0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
65 0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
66 0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
67 0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
68 0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
69 0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
70 0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
71 0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
72 0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
73 0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
74 0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
75 0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
76 0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
77 0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
78 0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
79 0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
80 0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
81 0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
82 0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
83 0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
84 0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
85 0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
86 0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
87 0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
88 0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
89 0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
90 0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
91 0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
92 0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
93 0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
94 0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
95 0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
96 0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
97 0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
98 0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
99 0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
102 0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
103 0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
104 0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
105 0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
106 0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
107 0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
108 0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
109 0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
110 0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
111 0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
112 0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
113 0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
114 0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
115 0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
116 0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
117 0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
118 0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
119 0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
120 0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
121 0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
122 0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
123 0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
124 0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
125 0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
126 0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
127 0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
128 0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
129 0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
130 0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
131 0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
132 0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
133 0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
134 0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
135 0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
136 0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
137 0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
138 0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
139 0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
140 0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
141 0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
142 0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
143 0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
144 0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
145 0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
146 0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
147 0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
148 0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
149 0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
150 0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
151 0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
152 0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
153 0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
154 0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
155 0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
156 0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
157 0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
158 0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
159 0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
160 0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
161 0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
162 0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
163 0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
164 0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
165 0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
168 0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
169 0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
170 0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
171 0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
172 0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
173 0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
174 0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
175 0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
176 0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
177 0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
178 0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
179 0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
180 0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
181 0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
182 0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
183 0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
184 0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
185 0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
186 0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
187 0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
188 0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
189 0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
190 0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
191 0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
192 0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
193 0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
194 0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
195 0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
196 0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
197 0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
198 0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
199 0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
200 0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
201 0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
202 0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
203 0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
204 0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
205 0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
206 0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
207 0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
208 0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
209 0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
210 0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
211 0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
212 0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
213 0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
214 0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
215 0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
216 0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
217 0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
218 0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
219 0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
220 0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
221 0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
222 0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
223 0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
224 0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
225 0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
226 0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
227 0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
228 0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
229 0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
230 0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
231 0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
234 0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
235 0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
236 0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
237 0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
238 0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
239 0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
240 0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
241 0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
242 0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
243 0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
244 0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
245 0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
246 0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
247 0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
248 0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
249 0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
250 0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
251 0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
252 0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
253 0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
254 0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
255 0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
256 0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
257 0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
258 0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
259 0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
260 0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
261 0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
262 0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
263 0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
264 0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
265 0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
266 0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
267 0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
268 0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
269 0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
270 0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
271 0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
272 0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
273 0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
274 0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
275 0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
276 0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
277 0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
278 0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
279 0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
280 0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
281 0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
282 0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
283 0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
284 0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
285 0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
286 0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
287 0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
288 0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
289 0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
290 0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
291 0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
292 0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
293 0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
294 0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
295 0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
296 0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
297 0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
300 0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
301 0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
302 0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
303 0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
304 0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
305 0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
306 0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
307 0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
308 0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
309 0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
310 0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
311 0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
312 0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
313 0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
314 0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
315 0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
316 0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
317 0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
318 0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
319 0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
320 0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
321 0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
322 0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
323 0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
324 0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
325 0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
326 0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
327 0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
328 0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
329 0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
330 0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
331 0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
332 0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
333 0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
334 0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
335 0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
336 0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
337 0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
338 0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
339 0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
340 0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
341 0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
342 0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
343 0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
344 0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
345 0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
346 0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
347 0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
348 0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
349 0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
350 0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
351 0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
352 0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
353 0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
354 0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
355 0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
356 0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
357 0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
358 0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
359 0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
360 0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
361 0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
362 0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
363 0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
366 0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
367 0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
368 0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
369 0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
370 0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
371 0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
372 0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
373 0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
374 0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
375 0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
376 0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
377 0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
378 0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
379 0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
380 0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
381 0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
382 0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
383 0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
384 0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
385 0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
386 0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
387 0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
388 0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
389 0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
390 0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
391 0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
392 0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
393 0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
394 0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
395 0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
396 0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
397 0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
398 0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
399 0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
400 0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
401 0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
402 0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
403 0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
404 0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
405 0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
406 0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
407 0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
408 0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
409 0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
410 0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
411 0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
412 0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
413 0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
414 0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
415 0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
416 0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
417 0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
418 0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
419 0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
420 0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
421 0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
422 0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
423 0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
424 0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
425 0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
426 0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
427 0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
428 0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
429 0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
432 0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
433 0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
434 0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
435 0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
436 0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
437 0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
438 0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
439 0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
440 0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
441 0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
442 0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
443 0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
444 0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
445 0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
446 0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
447 0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
448 0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
449 0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
450 0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
451 0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
452 0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
453 0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
454 0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
455 0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
456 0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
457 0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
458 0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
459 0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
460 0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
461 0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
462 0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
463 0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
464 0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
465 0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
466 0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
467 0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
468 0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
469 0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
470 0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
471 0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
472 0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
473 0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
474 0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
475 0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
476 0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
477 0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
478 0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
479 0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
480 0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
481 0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
482 0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
483 0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
484 0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
485 0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
486 0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
487 0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
488 0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
489 0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
490 0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
491 0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
492 0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
493 0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
494 0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
495 0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
498 0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
499 0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
500 0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
501 0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
502 0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
503 0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
504 0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
505 0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
506 0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
507 0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
508 0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
509 0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
510 0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
511 0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
512 0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
513 0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
514 0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
515 0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
516 0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
517 0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
518 0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
519 0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
520 0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
521 0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
522 0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
523 0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
524 0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
525 0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
526 0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
527 0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
528 0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
529 0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
530 0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
531 0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
532 0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
533 0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
534 0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
535 0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
536 0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
537 0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
538 0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
539 0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
540 0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
541 0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
542 0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
543 0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
544 0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
545 0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
546 0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
547 0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
548 0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
549 0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
550 0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
551 0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
552 0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
553 0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
554 0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
555 0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
556 0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
557 0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
558 0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
559 0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
560 0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
561 0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
565 __constant u32 Cl[8][256] =
568 0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
569 0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
570 0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
571 0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
572 0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
573 0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
574 0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
575 0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
576 0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
577 0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
578 0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
579 0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
580 0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
581 0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
582 0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
583 0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
584 0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
585 0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
586 0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
587 0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
588 0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
589 0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
590 0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
591 0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
592 0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
593 0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
594 0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
595 0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
596 0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
597 0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
598 0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
599 0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
600 0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
601 0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
602 0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
603 0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
604 0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
605 0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
606 0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
607 0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
608 0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
609 0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
610 0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
611 0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
612 0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
613 0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
614 0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
615 0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
616 0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
617 0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
618 0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
619 0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
620 0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
621 0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
622 0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
623 0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
624 0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
625 0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
626 0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
627 0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
628 0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
629 0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
630 0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
631 0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
634 0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
635 0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
636 0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
637 0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
638 0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
639 0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
640 0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
641 0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
642 0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
643 0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
644 0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
645 0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
646 0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
647 0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
648 0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
649 0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
650 0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
651 0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
652 0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
653 0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
654 0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
655 0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
656 0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
657 0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
658 0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
659 0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
660 0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
661 0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
662 0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
663 0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
664 0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
665 0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
666 0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
667 0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
668 0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
669 0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
670 0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
671 0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
672 0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
673 0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
674 0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
675 0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
676 0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
677 0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
678 0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
679 0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
680 0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
681 0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
682 0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
683 0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
684 0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
685 0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
686 0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
687 0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
688 0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
689 0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
690 0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
691 0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
692 0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
693 0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
694 0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
695 0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
696 0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
697 0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
700 0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
701 0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
702 0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
703 0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
704 0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
705 0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
706 0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
707 0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
708 0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
709 0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
710 0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
711 0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
712 0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
713 0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
714 0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
715 0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
716 0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
717 0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
718 0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
719 0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
720 0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
721 0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
722 0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
723 0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
724 0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
725 0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
726 0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
727 0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
728 0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
729 0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
730 0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
731 0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
732 0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
733 0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
734 0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
735 0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
736 0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
737 0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
738 0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
739 0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
740 0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
741 0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
742 0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
743 0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
744 0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
745 0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
746 0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
747 0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
748 0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
749 0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
750 0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
751 0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
752 0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
753 0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
754 0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
755 0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
756 0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
757 0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
758 0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
759 0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
760 0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
761 0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
762 0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
763 0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
766 0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
767 0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
768 0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
769 0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
770 0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
771 0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
772 0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
773 0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
774 0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
775 0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
776 0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
777 0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
778 0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
779 0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
780 0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
781 0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
782 0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
783 0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
784 0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
785 0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
786 0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
787 0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
788 0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
789 0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
790 0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
791 0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
792 0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
793 0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
794 0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
795 0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
796 0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
797 0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
798 0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
799 0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
800 0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
801 0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
802 0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
803 0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
804 0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
805 0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
806 0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
807 0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
808 0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
809 0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
810 0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
811 0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
812 0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
813 0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
814 0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
815 0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
816 0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
817 0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
818 0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
819 0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
820 0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
821 0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
822 0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
823 0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
824 0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
825 0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
826 0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
827 0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
828 0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
829 0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
832 0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
833 0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
834 0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
835 0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
836 0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
837 0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
838 0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
839 0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
840 0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
841 0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
842 0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
843 0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
844 0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
845 0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
846 0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
847 0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
848 0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
849 0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
850 0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
851 0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
852 0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
853 0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
854 0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
855 0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
856 0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
857 0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
858 0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
859 0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
860 0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
861 0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
862 0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
863 0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
864 0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
865 0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
866 0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
867 0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
868 0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
869 0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
870 0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
871 0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
872 0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
873 0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
874 0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
875 0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
876 0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
877 0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
878 0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
879 0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
880 0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
881 0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
882 0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
883 0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
884 0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
885 0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
886 0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
887 0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
888 0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
889 0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
890 0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
891 0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
892 0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
893 0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
894 0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
895 0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
898 0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
899 0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
900 0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
901 0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
902 0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
903 0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
904 0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
905 0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
906 0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
907 0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
908 0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
909 0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
910 0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
911 0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
912 0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
913 0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
914 0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
915 0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
916 0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
917 0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
918 0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
919 0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
920 0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
921 0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
922 0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
923 0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
924 0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
925 0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
926 0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
927 0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
928 0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
929 0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
930 0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
931 0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
932 0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
933 0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
934 0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
935 0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
936 0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
937 0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
938 0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
939 0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
940 0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
941 0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
942 0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
943 0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
944 0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
945 0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
946 0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
947 0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
948 0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
949 0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
950 0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
951 0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
952 0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
953 0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
954 0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
955 0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
956 0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
957 0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
958 0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
959 0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
960 0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
961 0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
964 0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
965 0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
966 0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
967 0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
968 0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
969 0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
970 0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
971 0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
972 0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
973 0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
974 0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
975 0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
976 0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
977 0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
978 0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
979 0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
980 0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
981 0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
982 0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
983 0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
984 0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
985 0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
986 0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
987 0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
988 0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
989 0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
990 0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
991 0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
992 0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
993 0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
994 0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
995 0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
996 0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
997 0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
998 0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
999 0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
1000 0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
1001 0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
1002 0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
1003 0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
1004 0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
1005 0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
1006 0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
1007 0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
1008 0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
1009 0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
1010 0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
1011 0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
1012 0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
1013 0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
1014 0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
1015 0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
1016 0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
1017 0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
1018 0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
1019 0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
1020 0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
1021 0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
1022 0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
1023 0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
1024 0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
1025 0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
1026 0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
1027 0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
1030 0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
1031 0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
1032 0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
1033 0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
1034 0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
1035 0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
1036 0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
1037 0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
1038 0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
1039 0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
1040 0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
1041 0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
1042 0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
1043 0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
1044 0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
1045 0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
1046 0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
1047 0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
1048 0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
1049 0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
1050 0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
1051 0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
1052 0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
1053 0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
1054 0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
1055 0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
1056 0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
1057 0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
1058 0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
1059 0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
1060 0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
1061 0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
1062 0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
1063 0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
1064 0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
1065 0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
1066 0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
1067 0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
1068 0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
1069 0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
1070 0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
1071 0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
1072 0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
1073 0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
1074 0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
1075 0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
1076 0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
1077 0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
1078 0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
1079 0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
1080 0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
1081 0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
1082 0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
1083 0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
1084 0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
1085 0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
1086 0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
1087 0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
1088 0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
1089 0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
1090 0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
1091 0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
1092 0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
1093 0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
1097 __constant u32 rch[R + 1] =
1112 __constant u32 rcl[R + 1] =
1127 // this is a highly optimized that assumes dgst[16] = { 0 }; only reuse of no 2nd transform is needed
1129 void whirlpool_transform (const u32x w[16], u32x dgst[16], __local u32 (*s_Ch)[256], __local u32 (*s_Cl)[256])
1177 for (int i = 0; i < 8; i++)
1179 const u32x Lp0 = stateh[(i + 8) & 7] >> 24;
1180 const u32x Lp1 = stateh[(i + 7) & 7] >> 16;
1181 const u32x Lp2 = stateh[(i + 6) & 7] >> 8;
1182 const u32x Lp3 = stateh[(i + 5) & 7] >> 0;
1183 const u32x Lp4 = statel[(i + 4) & 7] >> 24;
1184 const u32x Lp5 = statel[(i + 3) & 7] >> 16;
1185 const u32x Lp6 = statel[(i + 2) & 7] >> 8;
1186 const u32x Lp7 = statel[(i + 1) & 7] >> 0;
1188 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1189 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1190 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1191 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1192 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1193 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1194 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1195 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1197 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1198 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1199 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1200 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1201 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1202 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1203 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1204 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1207 stateh[0] = Lh[0] ^ Kh[0];
1208 statel[0] = Ll[0] ^ Kl[0];
1209 stateh[1] = Lh[1] ^ Kh[1];
1210 statel[1] = Ll[1] ^ Kl[1];
1211 stateh[2] = Lh[2] ^ Kh[2];
1212 statel[2] = Ll[2] ^ Kl[2];
1213 stateh[3] = Lh[3] ^ Kh[3];
1214 statel[3] = Ll[3] ^ Kl[3];
1215 stateh[4] = Lh[4] ^ Kh[4];
1216 statel[4] = Ll[4] ^ Kl[4];
1217 stateh[5] = Lh[5] ^ Kh[5];
1218 statel[5] = Ll[5] ^ Kl[5];
1219 stateh[6] = Lh[6] ^ Kh[6];
1220 statel[6] = Ll[6] ^ Kl[6];
1221 stateh[7] = Lh[7] ^ Kh[7];
1222 statel[7] = Ll[7] ^ Kl[7];
1224 for (int r = 2; r <= R; r++)
1232 for (int i = 0; i < 8; i++)
1234 const u32x Lp0 = Kh[(i + 8) & 7] >> 24;
1235 const u32x Lp1 = Kh[(i + 7) & 7] >> 16;
1236 const u32x Lp2 = Kh[(i + 6) & 7] >> 8;
1237 const u32x Lp3 = Kh[(i + 5) & 7] >> 0;
1238 const u32x Lp4 = Kl[(i + 4) & 7] >> 24;
1239 const u32x Lp5 = Kl[(i + 3) & 7] >> 16;
1240 const u32x Lp6 = Kl[(i + 2) & 7] >> 8;
1241 const u32x Lp7 = Kl[(i + 1) & 7] >> 0;
1243 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1244 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1245 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1246 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1247 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1248 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1249 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1250 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1252 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1253 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1254 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1255 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1256 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1257 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1258 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1259 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1262 Kh[0] = Lh[0] ^ rch[r];
1263 Kl[0] = Ll[0] ^ rcl[r];
1282 for (int i = 0; i < 8; i++)
1284 const u32x Lp0 = stateh[(i + 8) & 7] >> 24;
1285 const u32x Lp1 = stateh[(i + 7) & 7] >> 16;
1286 const u32x Lp2 = stateh[(i + 6) & 7] >> 8;
1287 const u32x Lp3 = stateh[(i + 5) & 7] >> 0;
1288 const u32x Lp4 = statel[(i + 4) & 7] >> 24;
1289 const u32x Lp5 = statel[(i + 3) & 7] >> 16;
1290 const u32x Lp6 = statel[(i + 2) & 7] >> 8;
1291 const u32x Lp7 = statel[(i + 1) & 7] >> 0;
1293 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1294 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1295 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1296 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1297 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1298 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1299 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1300 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1302 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1303 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1304 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1305 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1306 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1307 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1308 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1309 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1312 stateh[0] = Lh[0] ^ Kh[0];
1313 statel[0] = Ll[0] ^ Kl[0];
1314 stateh[1] = Lh[1] ^ Kh[1];
1315 statel[1] = Ll[1] ^ Kl[1];
1316 stateh[2] = Lh[2] ^ Kh[2];
1317 statel[2] = Ll[2] ^ Kl[2];
1318 stateh[3] = Lh[3] ^ Kh[3];
1319 statel[3] = Ll[3] ^ Kl[3];
1320 stateh[4] = Lh[4] ^ Kh[4];
1321 statel[4] = Ll[4] ^ Kl[4];
1322 stateh[5] = Lh[5] ^ Kh[5];
1323 statel[5] = Ll[5] ^ Kl[5];
1324 stateh[6] = Lh[6] ^ Kh[6];
1325 statel[6] = Ll[6] ^ Kl[6];
1326 stateh[7] = Lh[7] ^ Kh[7];
1327 statel[7] = Ll[7] ^ Kl[7];
1330 dgst[ 0] = stateh[0] ^ w[ 0];
1331 dgst[ 1] = statel[0] ^ w[ 1];
1332 dgst[ 2] = stateh[1] ^ w[ 2];
1333 dgst[ 3] = statel[1] ^ w[ 3];
1334 dgst[ 4] = stateh[2] ^ w[ 4];
1335 dgst[ 5] = statel[2] ^ w[ 5];
1336 dgst[ 6] = stateh[3] ^ w[ 6];
1337 dgst[ 7] = statel[3] ^ w[ 7];
1338 dgst[ 8] = stateh[4] ^ w[ 8];
1339 dgst[ 9] = statel[4] ^ w[ 9];
1340 dgst[10] = stateh[5] ^ w[10];
1341 dgst[11] = statel[5] ^ w[11];
1342 dgst[12] = stateh[6] ^ w[12];
1343 dgst[13] = statel[6] ^ w[13];
1344 dgst[14] = stateh[7] ^ w[14];
1345 dgst[15] = statel[7] ^ w[15];
1348 __kernel void m06100_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global netntlm_t *netntlm_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1354 const u32 gid = get_global_id (0);
1355 const u32 lid = get_local_id (0);
1356 const u32 lsz = get_local_size (0);
1362 __local u32 s_Ch[8][256];
1363 __local u32 s_Cl[8][256];
1365 for (u32 i = lid; i < 256; i += lsz)
1367 s_Ch[0][i] = Ch[0][i];
1368 s_Ch[1][i] = Ch[1][i];
1369 s_Ch[2][i] = Ch[2][i];
1370 s_Ch[3][i] = Ch[3][i];
1371 s_Ch[4][i] = Ch[4][i];
1372 s_Ch[5][i] = Ch[5][i];
1373 s_Ch[6][i] = Ch[6][i];
1374 s_Ch[7][i] = Ch[7][i];
1376 s_Cl[0][i] = Cl[0][i];
1377 s_Cl[1][i] = Cl[1][i];
1378 s_Cl[2][i] = Cl[2][i];
1379 s_Cl[3][i] = Cl[3][i];
1380 s_Cl[4][i] = Cl[4][i];
1381 s_Cl[5][i] = Cl[5][i];
1382 s_Cl[6][i] = Cl[6][i];
1383 s_Cl[7][i] = Cl[7][i];
1386 barrier (CLK_LOCAL_MEM_FENCE);
1388 if (gid >= gid_max) return;
1397 pw_buf0[0] = pws[gid].i[0];
1398 pw_buf0[1] = pws[gid].i[1];
1399 pw_buf0[2] = pws[gid].i[2];
1400 pw_buf0[3] = pws[gid].i[3];
1401 pw_buf1[0] = pws[gid].i[4];
1402 pw_buf1[1] = pws[gid].i[5];
1403 pw_buf1[2] = pws[gid].i[6];
1404 pw_buf1[3] = pws[gid].i[7];
1406 const u32 pw_l_len = pws[gid].pw_len;
1412 for (u32 il_pos = 0; il_pos < il_cnt; il_pos += VECT_SIZE)
1414 const u32x pw_r_len = pwlenx_create_combt (combs_buf, il_pos);
1416 const u32x pw_len = pw_l_len + pw_r_len;
1419 * concat password candidate
1422 u32x wordl0[4] = { 0 };
1423 u32x wordl1[4] = { 0 };
1424 u32x wordl2[4] = { 0 };
1425 u32x wordl3[4] = { 0 };
1427 wordl0[0] = pw_buf0[0];
1428 wordl0[1] = pw_buf0[1];
1429 wordl0[2] = pw_buf0[2];
1430 wordl0[3] = pw_buf0[3];
1431 wordl1[0] = pw_buf1[0];
1432 wordl1[1] = pw_buf1[1];
1433 wordl1[2] = pw_buf1[2];
1434 wordl1[3] = pw_buf1[3];
1436 u32x wordr0[4] = { 0 };
1437 u32x wordr1[4] = { 0 };
1438 u32x wordr2[4] = { 0 };
1439 u32x wordr3[4] = { 0 };
1441 wordr0[0] = ix_create_combt (combs_buf, il_pos, 0);
1442 wordr0[1] = ix_create_combt (combs_buf, il_pos, 1);
1443 wordr0[2] = ix_create_combt (combs_buf, il_pos, 2);
1444 wordr0[3] = ix_create_combt (combs_buf, il_pos, 3);
1445 wordr1[0] = ix_create_combt (combs_buf, il_pos, 4);
1446 wordr1[1] = ix_create_combt (combs_buf, il_pos, 5);
1447 wordr1[2] = ix_create_combt (combs_buf, il_pos, 6);
1448 wordr1[3] = ix_create_combt (combs_buf, il_pos, 7);
1450 if (combs_mode == COMBINATOR_MODE_BASE_LEFT)
1452 switch_buffer_by_offset_le_VV (wordr0, wordr1, wordr2, wordr3, pw_l_len);
1456 switch_buffer_by_offset_le_VV (wordl0, wordl1, wordl2, wordl3, pw_r_len);
1464 w0[0] = wordl0[0] | wordr0[0];
1465 w0[1] = wordl0[1] | wordr0[1];
1466 w0[2] = wordl0[2] | wordr0[2];
1467 w0[3] = wordl0[3] | wordr0[3];
1468 w1[0] = wordl1[0] | wordr1[0];
1469 w1[1] = wordl1[1] | wordr1[1];
1470 w1[2] = wordl1[2] | wordr1[2];
1471 w1[3] = wordl1[3] | wordr1[3];
1472 w2[0] = wordl2[0] | wordr2[0];
1473 w2[1] = wordl2[1] | wordr2[1];
1474 w2[2] = wordl2[2] | wordr2[2];
1475 w2[3] = wordl2[3] | wordr2[3];
1476 w3[0] = wordl3[0] | wordr3[0];
1477 w3[1] = wordl3[1] | wordr3[1];
1478 w3[2] = wordl3[2] | wordr3[2];
1479 w3[3] = wordl3[3] | wordr3[3];
1483 w[ 0] = swap32 (w0[0]);
1484 w[ 1] = swap32 (w0[1]);
1485 w[ 2] = swap32 (w0[2]);
1486 w[ 3] = swap32 (w0[3]);
1487 w[ 4] = swap32 (w1[0]);
1488 w[ 5] = swap32 (w1[1]);
1489 w[ 6] = swap32 (w1[2]);
1490 w[ 7] = swap32 (w1[3]);
1491 w[ 8] = swap32 (w2[0]);
1492 w[ 9] = swap32 (w2[1]);
1493 w[10] = swap32 (w2[2]);
1494 w[11] = swap32 (w2[3]);
1495 w[12] = swap32 (w3[0]);
1496 w[13] = swap32 (w3[1]);
1523 whirlpool_transform (w, dgst, s_Ch, s_Cl);
1525 COMPARE_M_SIMD (dgst[0], dgst[1], dgst[2], dgst[3]);
1529 __kernel void m06100_m08 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1533 __kernel void m06100_m16 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1537 __kernel void m06100_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global netntlm_t *netntlm_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1543 const u32 gid = get_global_id (0);
1544 const u32 lid = get_local_id (0);
1545 const u32 lsz = get_local_size (0);
1551 __local u32 s_Ch[8][256];
1552 __local u32 s_Cl[8][256];
1554 for (u32 i = lid; i < 256; i += lsz)
1556 s_Ch[0][i] = Ch[0][i];
1557 s_Ch[1][i] = Ch[1][i];
1558 s_Ch[2][i] = Ch[2][i];
1559 s_Ch[3][i] = Ch[3][i];
1560 s_Ch[4][i] = Ch[4][i];
1561 s_Ch[5][i] = Ch[5][i];
1562 s_Ch[6][i] = Ch[6][i];
1563 s_Ch[7][i] = Ch[7][i];
1565 s_Cl[0][i] = Cl[0][i];
1566 s_Cl[1][i] = Cl[1][i];
1567 s_Cl[2][i] = Cl[2][i];
1568 s_Cl[3][i] = Cl[3][i];
1569 s_Cl[4][i] = Cl[4][i];
1570 s_Cl[5][i] = Cl[5][i];
1571 s_Cl[6][i] = Cl[6][i];
1572 s_Cl[7][i] = Cl[7][i];
1575 barrier (CLK_LOCAL_MEM_FENCE);
1577 if (gid >= gid_max) return;
1586 pw_buf0[0] = pws[gid].i[0];
1587 pw_buf0[1] = pws[gid].i[1];
1588 pw_buf0[2] = pws[gid].i[2];
1589 pw_buf0[3] = pws[gid].i[3];
1590 pw_buf1[0] = pws[gid].i[4];
1591 pw_buf1[1] = pws[gid].i[5];
1592 pw_buf1[2] = pws[gid].i[6];
1593 pw_buf1[3] = pws[gid].i[7];
1595 const u32 pw_l_len = pws[gid].pw_len;
1601 const u32 search[4] =
1603 digests_buf[digests_offset].digest_buf[DGST_R0],
1604 digests_buf[digests_offset].digest_buf[DGST_R1],
1605 digests_buf[digests_offset].digest_buf[DGST_R2],
1606 digests_buf[digests_offset].digest_buf[DGST_R3]
1613 for (u32 il_pos = 0; il_pos < il_cnt; il_pos += VECT_SIZE)
1615 const u32x pw_r_len = pwlenx_create_combt (combs_buf, il_pos);
1617 const u32x pw_len = pw_l_len + pw_r_len;
1620 * concat password candidate
1623 u32x wordl0[4] = { 0 };
1624 u32x wordl1[4] = { 0 };
1625 u32x wordl2[4] = { 0 };
1626 u32x wordl3[4] = { 0 };
1628 wordl0[0] = pw_buf0[0];
1629 wordl0[1] = pw_buf0[1];
1630 wordl0[2] = pw_buf0[2];
1631 wordl0[3] = pw_buf0[3];
1632 wordl1[0] = pw_buf1[0];
1633 wordl1[1] = pw_buf1[1];
1634 wordl1[2] = pw_buf1[2];
1635 wordl1[3] = pw_buf1[3];
1637 u32x wordr0[4] = { 0 };
1638 u32x wordr1[4] = { 0 };
1639 u32x wordr2[4] = { 0 };
1640 u32x wordr3[4] = { 0 };
1642 wordr0[0] = ix_create_combt (combs_buf, il_pos, 0);
1643 wordr0[1] = ix_create_combt (combs_buf, il_pos, 1);
1644 wordr0[2] = ix_create_combt (combs_buf, il_pos, 2);
1645 wordr0[3] = ix_create_combt (combs_buf, il_pos, 3);
1646 wordr1[0] = ix_create_combt (combs_buf, il_pos, 4);
1647 wordr1[1] = ix_create_combt (combs_buf, il_pos, 5);
1648 wordr1[2] = ix_create_combt (combs_buf, il_pos, 6);
1649 wordr1[3] = ix_create_combt (combs_buf, il_pos, 7);
1651 if (combs_mode == COMBINATOR_MODE_BASE_LEFT)
1653 switch_buffer_by_offset_le_VV (wordr0, wordr1, wordr2, wordr3, pw_l_len);
1657 switch_buffer_by_offset_le_VV (wordl0, wordl1, wordl2, wordl3, pw_r_len);
1665 w0[0] = wordl0[0] | wordr0[0];
1666 w0[1] = wordl0[1] | wordr0[1];
1667 w0[2] = wordl0[2] | wordr0[2];
1668 w0[3] = wordl0[3] | wordr0[3];
1669 w1[0] = wordl1[0] | wordr1[0];
1670 w1[1] = wordl1[1] | wordr1[1];
1671 w1[2] = wordl1[2] | wordr1[2];
1672 w1[3] = wordl1[3] | wordr1[3];
1673 w2[0] = wordl2[0] | wordr2[0];
1674 w2[1] = wordl2[1] | wordr2[1];
1675 w2[2] = wordl2[2] | wordr2[2];
1676 w2[3] = wordl2[3] | wordr2[3];
1677 w3[0] = wordl3[0] | wordr3[0];
1678 w3[1] = wordl3[1] | wordr3[1];
1679 w3[2] = wordl3[2] | wordr3[2];
1680 w3[3] = wordl3[3] | wordr3[3];
1684 w[ 0] = swap32 (w0[0]);
1685 w[ 1] = swap32 (w0[1]);
1686 w[ 2] = swap32 (w0[2]);
1687 w[ 3] = swap32 (w0[3]);
1688 w[ 4] = swap32 (w1[0]);
1689 w[ 5] = swap32 (w1[1]);
1690 w[ 6] = swap32 (w1[2]);
1691 w[ 7] = swap32 (w1[3]);
1692 w[ 8] = swap32 (w2[0]);
1693 w[ 9] = swap32 (w2[1]);
1694 w[10] = swap32 (w2[2]);
1695 w[11] = swap32 (w2[3]);
1696 w[12] = swap32 (w3[0]);
1697 w[13] = swap32 (w3[1]);
1724 whirlpool_transform (w, dgst, s_Ch, s_Cl);
1726 COMPARE_S_SIMD (dgst[0], dgst[1], dgst[2], dgst[3]);
1730 __kernel void m06100_s08 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1734 __kernel void m06100_s16 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV0_buf, __global u32 *d_scryptV1_buf, __global u32 *d_scryptV2_buf, __global u32 *d_scryptV3_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)