tigertest.bas
Code: Select all
#include "crt.bi"
#define ITERATIONS 500
declare sub tiger(as byte ptr, as ulongint, as ulongint ptr)
dim as ubyte buffer(65536-1)
dim as long t1, t2
dim as double rate
dim as integer i
dim as ulongint res(3-1)
#macro hash(str_)
tiger(cast(byte ptr, @str_), len(str_), @res(0))
printf(!"Hash of \"%s\":\n\t%08X%08X %08X%08X %08X%08X\n", _
cast(byte ptr, @str_), _
cast(uinteger, res(0) shr 32), _
cast(uinteger, res(0)), _
cast(uinteger, res(1) shr 32), _
cast(uinteger, res(1)), _
cast(uinteger, res(2) shr 32), _
cast(uinteger, res(2)) )
#endmacro
/' Hash of short strings '/
hash("")
hash("abc")
hash("Tiger")
/' Hash of 512-bit strings '/
hash("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-")
hash("ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789")
hash("Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham")
/' Hash of two-block strings strings '/
hash("Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge.")
hash("Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge, 1996.")
hash("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-")
/' Hash of a 64K byte string '/
for i = 0 to 65536-1
buffer(i) = i and &hFF
next
tiger(@buffer(0), 65536, @res(0))
printf(!"Hash of a 64K-byte string:\n\t%08X%08X %08X%08X %08X%08X\n", _
cast(uinteger, res(0) shr 32), _
cast(uinteger, res(0)), _
cast(uinteger, res(1) shr 32), _
cast(uinteger, res(1)), _
cast(uinteger, res(2) shr 32), _
cast(uinteger, res(2)) )
t1 = timer
for i = 0 to ITERATIONS-1
tiger(@buffer(0), 65536, @res(0))
next
t2 = timer
rate = cast(double, ITERATIONS)*65556.0*8.0/cast(double, t2 - t1)
printf(!"rate = %lf bit/s\n", rate)
Code: Select all
#define PASSES 3
extern as ulongint table(4*256-1)
#define t1 cast(ulongint ptr, @table(0))
#define t2 cast(ulongint ptr, @table(256))
#define t3 cast(ulongint ptr, @table(256*2))
#define t4 cast(ulongint ptr, @table(256*3))
#macro tiger__save_abc()
aa = a
bb = b
cc = c
#endmacro
#macro tiger__round(a, b, c, x, mul)
c xor= x
a -= t1[cast(ubyte, (c))] xor _
t2[cast(ubyte, cast(uinteger, (c)) shr (2*8))] xor _
t3[cast(ubyte, (c) shr (4*8))] xor _
t4[cast(ubyte, cast(uinteger, (c) shr (4*8)) shr (2*8))]
b += t4[cast(ubyte, cast(uinteger, (c)) shr (1*8))] xor _
t3[cast(ubyte, cast(uinteger, (c)) shr (3*8))] xor _
t2[cast(ubyte, cast(uinteger, (c) shr (4*8)) shr (1*8))] xor _
t1[cast(ubyte, cast(uinteger, (c) shr (4*8)) shr (3*8))]
b *= mul
#endmacro
#macro tiger__pass(a, b, c, mul)
tiger__round((a), (b), (c), x0, (mul))
tiger__round((b), (c), (a), x1, (mul))
tiger__round((c), (a), (b), x2, (mul))
tiger__round((a), (b), (c), x3, (mul))
tiger__round((b), (c), (a), x4, (mul))
tiger__round((c), (a), (b), x5, (mul))
tiger__round((a), (b), (c), x6, (mul))
tiger__round((b), (c), (a), x7, (mul))
#endmacro
#macro tiger__key_schedule()
x0 -= x7 xor &hA5A5A5A5A5A5A5A5ULL
x1 xor= x0
x2 += x1
x3 -= x2 xor ((not x1) shl 19)
x4 xor= x3
x5 += x4
x6 -= x5 xor ((not x4) shr 23)
x7 xor= x6
x0 += x7
x1 -= x0 xor ((not x7) shl 19)
x2 xor= x1
x3 += x2
x4 -= x3 xor ((not x2) shr 23)
x5 xor= x4
x6 += x5
x7 -= x6 xor &h0123456789ABCDEFULL
#endmacro
#macro tiger__feedforward()
a xor= aa
b -= bb
c += cc
#endmacro
#macro tiger__compress()
tiger__save_abc()
for pass_no = 0 to PASSES-1
if (pass_no <> 0) then
tiger__key_schedule()
end if
tiger__pass(a, b, c, iif(pass_no = 0, 5, iif(pass_no = 1, 7, 9)))
tmpa = a : a = c : c = b : b = tmpa
next
tiger__feedforward()
#endmacro
#macro tiger_compress_macro(str_, state)
scope
dim as ulongint a, b, c, tmpa
dim as ulongint aa, bb, cc
dim as ulongint x0, x1, x2, x3, x4, x5, x6, x7
dim as uinteger i
dim as integer pass_no
a = state[0]
b = state[1]
c = state[2]
x0 = str_[0] : x1 = str_[1] : x2 = str_[2] : x3=str_[3]
x4 = str_[4] : x5 = str_[5] : x6 = str_[6] : x7=str_[7]
tiger__compress()
state[0] = a
state[1] = b
state[2] = c
end scope
#endmacro
/' The compress function is a function. Requires smaller cache? '/
sub tiger_compress(str_ as ulongint ptr, state as ulongint ptr)
tiger_compress_macro(str_, state)
end sub
sub tiger(str_ as ulongint ptr, length as ulongint, res as ulongint ptr)
dim as ulongint i, j
dim as ubyte temp(64-1)
res[0] = &h0123456789ABCDEFULL
res[1] = &hFEDCBA9876543210ULL
res[2] = &hF096A5B4C3B2E187ULL
i = length
do while i >= 64
tiger_compress(str_, res)
str_ += 8
i -= 64
loop
j = 0 : do while j < i
temp(j) = cast(ubyte ptr, str_)[j]
j += 1
loop
temp(j) = &h01 : j += 1
do while j and 7
temp(j) = 0
j += 1
loop
if (j > 56) then
do while j < 64
temp(j) = 0
j += 1
loop
tiger_compress(cast(ulongint ptr, @temp(0)), res)
j = 0
end if
do while j < 56
temp(j) = 0
j += 1
loop
cast(ulongint ptr, @(temp(56)))[0] = cast(ulongint, length) shl 3
tiger_compress(cast(ulongint ptr, @temp(0)), res)
end sub
Code: Select all
extern as ulongint table(4*256-1)
dim as ulongint table(4*256-1) = { _
&h02AAB17CF7E90C5EULL /' 0 '/, &hAC424B03E243A8ECULL /' 1 '/, _
&h72CD5BE30DD5FCD3ULL /' 2 '/, &h6D019B93F6F97F3AULL /' 3 '/, _
&hCD9978FFD21F9193ULL /' 4 '/, &h7573A1C9708029E2ULL /' 5 '/, _
&hB164326B922A83C3ULL /' 6 '/, &h46883EEE04915870ULL /' 7 '/, _
&hEAACE3057103ECE6ULL /' 8 '/, &hC54169B808A3535CULL /' 9 '/, _
&h4CE754918DDEC47CULL /' 10 '/, &h0AA2F4DFDC0DF40CULL /' 11 '/, _
&h10B76F18A74DBEFAULL /' 12 '/, &hC6CCB6235AD1AB6AULL /' 13 '/, _
&h13726121572FE2FFULL /' 14 '/, &h1A488C6F199D921EULL /' 15 '/, _
&h4BC9F9F4DA0007CAULL /' 16 '/, &h26F5E6F6E85241C7ULL /' 17 '/, _
&h859079DBEA5947B6ULL /' 18 '/, &h4F1885C5C99E8C92ULL /' 19 '/, _
&hD78E761EA96F864BULL /' 20 '/, &h8E36428C52B5C17DULL /' 21 '/, _
&h69CF6827373063C1ULL /' 22 '/, &hB607C93D9BB4C56EULL /' 23 '/, _
&h7D820E760E76B5EAULL /' 24 '/, &h645C9CC6F07FDC42ULL /' 25 '/, _
&hBF38A078243342E0ULL /' 26 '/, &h5F6B343C9D2E7D04ULL /' 27 '/, _
&hF2C28AEB600B0EC6ULL /' 28 '/, &h6C0ED85F7254BCACULL /' 29 '/, _
&h71592281A4DB4FE5ULL /' 30 '/, &h1967FA69CE0FED9FULL /' 31 '/, _
&hFD5293F8B96545DBULL /' 32 '/, &hC879E9D7F2A7600BULL /' 33 '/, _
&h860248920193194EULL /' 34 '/, &hA4F9533B2D9CC0B3ULL /' 35 '/, _
&h9053836C15957613ULL /' 36 '/, &hDB6DCF8AFC357BF1ULL /' 37 '/, _
&h18BEEA7A7A370F57ULL /' 38 '/, &h037117CA50B99066ULL /' 39 '/, _
&h6AB30A9774424A35ULL /' 40 '/, &hF4E92F02E325249BULL /' 41 '/, _
&h7739DB07061CCAE1ULL /' 42 '/, &hD8F3B49CECA42A05ULL /' 43 '/, _
&hBD56BE3F51382F73ULL /' 44 '/, &h45FAED5843B0BB28ULL /' 45 '/, _
&h1C813D5C11BF1F83ULL /' 46 '/, &h8AF0E4B6D75FA169ULL /' 47 '/, _
&h33EE18A487AD9999ULL /' 48 '/, &h3C26E8EAB1C94410ULL /' 49 '/, _
&hB510102BC0A822F9ULL /' 50 '/, &h141EEF310CE6123BULL /' 51 '/, _
&hFC65B90059DDB154ULL /' 52 '/, &hE0158640C5E0E607ULL /' 53 '/, _
&h884E079826C3A3CFULL /' 54 '/, &h930D0D9523C535FDULL /' 55 '/, _
&h35638D754E9A2B00ULL /' 56 '/, &h4085FCCF40469DD5ULL /' 57 '/, _
&hC4B17AD28BE23A4CULL /' 58 '/, &hCAB2F0FC6A3E6A2EULL /' 59 '/, _
&h2860971A6B943FCDULL /' 60 '/, &h3DDE6EE212E30446ULL /' 61 '/, _
&h6222F32AE01765AEULL /' 62 '/, &h5D550BB5478308FEULL /' 63 '/, _
&hA9EFA98DA0EDA22AULL /' 64 '/, &hC351A71686C40DA7ULL /' 65 '/, _
&h1105586D9C867C84ULL /' 66 '/, &hDCFFEE85FDA22853ULL /' 67 '/, _
&hCCFBD0262C5EEF76ULL /' 68 '/, &hBAF294CB8990D201ULL /' 69 '/, _
&hE69464F52AFAD975ULL /' 70 '/, &h94B013AFDF133E14ULL /' 71 '/, _
&h06A7D1A32823C958ULL /' 72 '/, &h6F95FE5130F61119ULL /' 73 '/, _
&hD92AB34E462C06C0ULL /' 74 '/, &hED7BDE33887C71D2ULL /' 75 '/, _
&h79746D6E6518393EULL /' 76 '/, &h5BA419385D713329ULL /' 77 '/, _
&h7C1BA6B948A97564ULL /' 78 '/, &h31987C197BFDAC67ULL /' 79 '/, _
&hDE6C23C44B053D02ULL /' 80 '/, &h581C49FED002D64DULL /' 81 '/, _
&hDD474D6338261571ULL /' 82 '/, &hAA4546C3E473D062ULL /' 83 '/, _
&h928FCE349455F860ULL /' 84 '/, &h48161BBACAAB94D9ULL /' 85 '/, _
&h63912430770E6F68ULL /' 86 '/, &h6EC8A5E602C6641CULL /' 87 '/, _
&h87282515337DDD2BULL /' 88 '/, &h2CDA6B42034B701BULL /' 89 '/, _
&hB03D37C181CB096DULL /' 90 '/, &hE108438266C71C6FULL /' 91 '/, _
&h2B3180C7EB51B255ULL /' 92 '/, &hDF92B82F96C08BBCULL /' 93 '/, _
&h5C68C8C0A632F3BAULL /' 94 '/, &h5504CC861C3D0556ULL /' 95 '/, _
&hABBFA4E55FB26B8FULL /' 96 '/, &h41848B0AB3BACEB4ULL /' 97 '/, _
&hB334A273AA445D32ULL /' 98 '/, &hBCA696F0A85AD881ULL /' 99 '/, _
&h24F6EC65B528D56CULL /' 100 '/, &h0CE1512E90F4524AULL /' 101 '/, _
&h4E9DD79D5506D35AULL /' 102 '/, &h258905FAC6CE9779ULL /' 103 '/, _
&h2019295B3E109B33ULL /' 104 '/, &hF8A9478B73A054CCULL /' 105 '/, _
&h2924F2F934417EB0ULL /' 106 '/, &h3993357D536D1BC4ULL /' 107 '/, _
&h38A81AC21DB6FF8BULL /' 108 '/, &h47C4FBF17D6016BFULL /' 109 '/, _
&h1E0FAADD7667E3F5ULL /' 110 '/, &h7ABCFF62938BEB96ULL /' 111 '/, _
&hA78DAD948FC179C9ULL /' 112 '/, &h8F1F98B72911E50DULL /' 113 '/, _
&h61E48EAE27121A91ULL /' 114 '/, &h4D62F7AD31859808ULL /' 115 '/, _
&hECEBA345EF5CEAEBULL /' 116 '/, &hF5CEB25EBC9684CEULL /' 117 '/, _
&hF633E20CB7F76221ULL /' 118 '/, &hA32CDF06AB8293E4ULL /' 119 '/, _
&h985A202CA5EE2CA4ULL /' 120 '/, &hCF0B8447CC8A8FB1ULL /' 121 '/, _
&h9F765244979859A3ULL /' 122 '/, &hA8D516B1A1240017ULL /' 123 '/, _
&h0BD7BA3EBB5DC726ULL /' 124 '/, &hE54BCA55B86ADB39ULL /' 125 '/, _
&h1D7A3AFD6C478063ULL /' 126 '/, &h519EC608E7669EDDULL /' 127 '/, _
&h0E5715A2D149AA23ULL /' 128 '/, &h177D4571848FF194ULL /' 129 '/, _
&hEEB55F3241014C22ULL /' 130 '/, &h0F5E5CA13A6E2EC2ULL /' 131 '/, _
&h8029927B75F5C361ULL /' 132 '/, &hAD139FABC3D6E436ULL /' 133 '/, _
&h0D5DF1A94CCF402FULL /' 134 '/, &h3E8BD948BEA5DFC8ULL /' 135 '/, _
&hA5A0D357BD3FF77EULL /' 136 '/, &hA2D12E251F74F645ULL /' 137 '/, _
&h66FD9E525E81A082ULL /' 138 '/, &h2E0C90CE7F687A49ULL /' 139 '/, _
&hC2E8BCBEBA973BC5ULL /' 140 '/, &h000001BCE509745FULL /' 141 '/, _
&h423777BBE6DAB3D6ULL /' 142 '/, &hD1661C7EAEF06EB5ULL /' 143 '/, _
&hA1781F354DAACFD8ULL /' 144 '/, &h2D11284A2B16AFFCULL /' 145 '/, _
&hF1FC4F67FA891D1FULL /' 146 '/, &h73ECC25DCB920ADAULL /' 147 '/, _
&hAE610C22C2A12651ULL /' 148 '/, &h96E0A810D356B78AULL /' 149 '/, _
&h5A9A381F2FE7870FULL /' 150 '/, &hD5AD62EDE94E5530ULL /' 151 '/, _
&hD225E5E8368D1427ULL /' 152 '/, &h65977B70C7AF4631ULL /' 153 '/, _
&h99F889B2DE39D74FULL /' 154 '/, &h233F30BF54E1D143ULL /' 155 '/, _
&h9A9675D3D9A63C97ULL /' 156 '/, &h5470554FF334F9A8ULL /' 157 '/, _
&h166ACB744A4F5688ULL /' 158 '/, &h70C74CAAB2E4AEADULL /' 159 '/, _
&hF0D091646F294D12ULL /' 160 '/, &h57B82A89684031D1ULL /' 161 '/, _
&hEFD95A5A61BE0B6BULL /' 162 '/, &h2FBD12E969F2F29AULL /' 163 '/, _
&h9BD37013FEFF9FE8ULL /' 164 '/, &h3F9B0404D6085A06ULL /' 165 '/, _
&h4940C1F3166CFE15ULL /' 166 '/, &h09542C4DCDF3DEFBULL /' 167 '/, _
&hB4C5218385CD5CE3ULL /' 168 '/, &hC935B7DC4462A641ULL /' 169 '/, _
&h3417F8A68ED3B63FULL /' 170 '/, &hB80959295B215B40ULL /' 171 '/, _
&hF99CDAEF3B8C8572ULL /' 172 '/, &h018C0614F8FCB95DULL /' 173 '/, _
&h1B14ACCD1A3ACDF3ULL /' 174 '/, &h84D471F200BB732DULL /' 175 '/, _
&hC1A3110E95E8DA16ULL /' 176 '/, &h430A7220BF1A82B8ULL /' 177 '/, _
&hB77E090D39DF210EULL /' 178 '/, &h5EF4BD9F3CD05E9DULL /' 179 '/, _
&h9D4FF6DA7E57A444ULL /' 180 '/, &hDA1D60E183D4A5F8ULL /' 181 '/, _
&hB287C38417998E47ULL /' 182 '/, &hFE3EDC121BB31886ULL /' 183 '/, _
&hC7FE3CCC980CCBEFULL /' 184 '/, &hE46FB590189BFD03ULL /' 185 '/, _
&h3732FD469A4C57DCULL /' 186 '/, &h7EF700A07CF1AD65ULL /' 187 '/, _
&h59C64468A31D8859ULL /' 188 '/, &h762FB0B4D45B61F6ULL /' 189 '/, _
&h155BAED099047718ULL /' 190 '/, &h68755E4C3D50BAA6ULL /' 191 '/, _
&hE9214E7F22D8B4DFULL /' 192 '/, &h2ADDBF532EAC95F4ULL /' 193 '/, _
&h32AE3909B4BD0109ULL /' 194 '/, &h834DF537B08E3450ULL /' 195 '/, _
&hFA209DA84220728DULL /' 196 '/, &h9E691D9B9EFE23F7ULL /' 197 '/, _
&h0446D288C4AE8D7FULL /' 198 '/, &h7B4CC524E169785BULL /' 199 '/, _
&h21D87F0135CA1385ULL /' 200 '/, &hCEBB400F137B8AA5ULL /' 201 '/, _
&h272E2B66580796BEULL /' 202 '/, &h3612264125C2B0DEULL /' 203 '/, _
&h057702BDAD1EFBB2ULL /' 204 '/, &hD4BABB8EACF84BE9ULL /' 205 '/, _
&h91583139641BC67BULL /' 206 '/, &h8BDC2DE08036E024ULL /' 207 '/, _
&h603C8156F49F68EDULL /' 208 '/, &hF7D236F7DBEF5111ULL /' 209 '/, _
&h9727C4598AD21E80ULL /' 210 '/, &hA08A0896670A5FD7ULL /' 211 '/, _
&hCB4A8F4309EBA9CBULL /' 212 '/, &h81AF564B0F7036A1ULL /' 213 '/, _
&hC0B99AA778199ABDULL /' 214 '/, &h959F1EC83FC8E952ULL /' 215 '/, _
&h8C505077794A81B9ULL /' 216 '/, &h3ACAAF8F056338F0ULL /' 217 '/, _
&h07B43F50627A6778ULL /' 218 '/, &h4A44AB49F5ECCC77ULL /' 219 '/, _
&h3BC3D6E4B679EE98ULL /' 220 '/, &h9CC0D4D1CF14108CULL /' 221 '/, _
&h4406C00B206BC8A0ULL /' 222 '/, &h82A18854C8D72D89ULL /' 223 '/, _
&h67E366B35C3C432CULL /' 224 '/, &hB923DD61102B37F2ULL /' 225 '/, _
&h56AB2779D884271DULL /' 226 '/, &hBE83E1B0FF1525AFULL /' 227 '/, _
&hFB7C65D4217E49A9ULL /' 228 '/, &h6BDBE0E76D48E7D4ULL /' 229 '/, _
&h08DF828745D9179EULL /' 230 '/, &h22EA6A9ADD53BD34ULL /' 231 '/, _
&hE36E141C5622200AULL /' 232 '/, &h7F805D1B8CB750EEULL /' 233 '/, _
&hAFE5C7A59F58E837ULL /' 234 '/, &hE27F996A4FB1C23CULL /' 235 '/, _
&hD3867DFB0775F0D0ULL /' 236 '/, &hD0E673DE6E88891AULL /' 237 '/, _
&h123AEB9EAFB86C25ULL /' 238 '/, &h30F1D5D5C145B895ULL /' 239 '/, _
&hBB434A2DEE7269E7ULL /' 240 '/, &h78CB67ECF931FA38ULL /' 241 '/, _
&hF33B0372323BBF9CULL /' 242 '/, &h52D66336FB279C74ULL /' 243 '/, _
&h505F33AC0AFB4EAAULL /' 244 '/, &hE8A5CD99A2CCE187ULL /' 245 '/, _
&h534974801E2D30BBULL /' 246 '/, &h8D2D5711D5876D90ULL /' 247 '/, _
&h1F1A412891BC038EULL /' 248 '/, &hD6E2E71D82E56648ULL /' 249 '/, _
&h74036C3A497732B7ULL /' 250 '/, &h89B67ED96361F5ABULL /' 251 '/, _
&hFFED95D8F1EA02A2ULL /' 252 '/, &hE72B3BD61464D43DULL /' 253 '/, _
&hA6300F170BDC4820ULL /' 254 '/, &hEBC18760ED78A77AULL /' 255 '/, _
&hE6A6BE5A05A12138ULL /' 256 '/, &hB5A122A5B4F87C98ULL /' 257 '/, _
&h563C6089140B6990ULL /' 258 '/, &h4C46CB2E391F5DD5ULL /' 259 '/, _
&hD932ADDBC9B79434ULL /' 260 '/, &h08EA70E42015AFF5ULL /' 261 '/, _
&hD765A6673E478CF1ULL /' 262 '/, &hC4FB757EAB278D99ULL /' 263 '/, _
&hDF11C6862D6E0692ULL /' 264 '/, &hDDEB84F10D7F3B16ULL /' 265 '/, _
&h6F2EF604A665EA04ULL /' 266 '/, &h4A8E0F0FF0E0DFB3ULL /' 267 '/, _
&hA5EDEEF83DBCBA51ULL /' 268 '/, &hFC4F0A2A0EA4371EULL /' 269 '/, _
&hE83E1DA85CB38429ULL /' 270 '/, &hDC8FF882BA1B1CE2ULL /' 271 '/, _
&hCD45505E8353E80DULL /' 272 '/, &h18D19A00D4DB0717ULL /' 273 '/, _
&h34A0CFEDA5F38101ULL /' 274 '/, &h0BE77E518887CAF2ULL /' 275 '/, _
&h1E341438B3C45136ULL /' 276 '/, &hE05797F49089CCF9ULL /' 277 '/, _
&hFFD23F9DF2591D14ULL /' 278 '/, &h543DDA228595C5CDULL /' 279 '/, _
&h661F81FD99052A33ULL /' 280 '/, &h8736E641DB0F7B76ULL /' 281 '/, _
&h15227725418E5307ULL /' 282 '/, &hE25F7F46162EB2FAULL /' 283 '/, _
&h48A8B2126C13D9FEULL /' 284 '/, &hAFDC541792E76EEAULL /' 285 '/, _
&h03D912BFC6D1898FULL /' 286 '/, &h31B1AAFA1B83F51BULL /' 287 '/, _
&hF1AC2796E42AB7D9ULL /' 288 '/, &h40A3A7D7FCD2EBACULL /' 289 '/, _
&h1056136D0AFBBCC5ULL /' 290 '/, &h7889E1DD9A6D0C85ULL /' 291 '/, _
&hD33525782A7974AAULL /' 292 '/, &hA7E25D09078AC09BULL /' 293 '/, _
&hBD4138B3EAC6EDD0ULL /' 294 '/, &h920ABFBE71EB9E70ULL /' 295 '/, _
&hA2A5D0F54FC2625CULL /' 296 '/, &hC054E36B0B1290A3ULL /' 297 '/, _
&hF6DD59FF62FE932BULL /' 298 '/, &h3537354511A8AC7DULL /' 299 '/, _
&hCA845E9172FADCD4ULL /' 300 '/, &h84F82B60329D20DCULL /' 301 '/, _
&h79C62CE1CD672F18ULL /' 302 '/, &h8B09A2ADD124642CULL /' 303 '/, _
&hD0C1E96A19D9E726ULL /' 304 '/, &h5A786A9B4BA9500CULL /' 305 '/, _
&h0E020336634C43F3ULL /' 306 '/, &hC17B474AEB66D822ULL /' 307 '/, _
&h6A731AE3EC9BAAC2ULL /' 308 '/, &h8226667AE0840258ULL /' 309 '/, _
&h67D4567691CAECA5ULL /' 310 '/, &h1D94155C4875ADB5ULL /' 311 '/, _
&h6D00FD985B813FDFULL /' 312 '/, &h51286EFCB774CD06ULL /' 313 '/, _
&h5E8834471FA744AFULL /' 314 '/, &hF72CA0AEE761AE2EULL /' 315 '/, _
&hBE40E4CDAEE8E09AULL /' 316 '/, &hE9970BBB5118F665ULL /' 317 '/, _
&h726E4BEB33DF1964ULL /' 318 '/, &h703B000729199762ULL /' 319 '/, _
&h4631D816F5EF30A7ULL /' 320 '/, &hB880B5B51504A6BEULL /' 321 '/, _
&h641793C37ED84B6CULL /' 322 '/, &h7B21ED77F6E97D96ULL /' 323 '/, _
&h776306312EF96B73ULL /' 324 '/, &hAE528948E86FF3F4ULL /' 325 '/, _
&h53DBD7F286A3F8F8ULL /' 326 '/, &h16CADCE74CFC1063ULL /' 327 '/, _
&h005C19BDFA52C6DDULL /' 328 '/, &h68868F5D64D46AD3ULL /' 329 '/, _
&h3A9D512CCF1E186AULL /' 330 '/, &h367E62C2385660AEULL /' 331 '/, _
&hE359E7EA77DCB1D7ULL /' 332 '/, &h526C0773749ABE6EULL /' 333 '/, _
&h735AE5F9D09F734BULL /' 334 '/, &h493FC7CC8A558BA8ULL /' 335 '/, _
&hB0B9C1533041AB45ULL /' 336 '/, &h321958BA470A59BDULL /' 337 '/, _
&h852DB00B5F46C393ULL /' 338 '/, &h91209B2BD336B0E5ULL /' 339 '/, _
&h6E604F7D659EF19FULL /' 340 '/, &hB99A8AE2782CCB24ULL /' 341 '/, _
&hCCF52AB6C814C4C7ULL /' 342 '/, &h4727D9AFBE11727BULL /' 343 '/, _
&h7E950D0C0121B34DULL /' 344 '/, &h756F435670AD471FULL /' 345 '/, _
&hF5ADD442615A6849ULL /' 346 '/, &h4E87E09980B9957AULL /' 347 '/, _
&h2ACFA1DF50AEE355ULL /' 348 '/, &hD898263AFD2FD556ULL /' 349 '/, _
&hC8F4924DD80C8FD6ULL /' 350 '/, &hCF99CA3D754A173AULL /' 351 '/, _
&hFE477BACAF91BF3CULL /' 352 '/, &hED5371F6D690C12DULL /' 353 '/, _
&h831A5C285E687094ULL /' 354 '/, &hC5D3C90A3708A0A4ULL /' 355 '/, _
&h0F7F903717D06580ULL /' 356 '/, &h19F9BB13B8FDF27FULL /' 357 '/, _
&hB1BD6F1B4D502843ULL /' 358 '/, &h1C761BA38FFF4012ULL /' 359 '/, _
&h0D1530C4E2E21F3BULL /' 360 '/, &h8943CE69A7372C8AULL /' 361 '/, _
&hE5184E11FEB5CE66ULL /' 362 '/, &h618BDB80BD736621ULL /' 363 '/, _
&h7D29BAD68B574D0BULL /' 364 '/, &h81BB613E25E6FE5BULL /' 365 '/, _
&h071C9C10BC07913FULL /' 366 '/, &hC7BEEB7909AC2D97ULL /' 367 '/, _
&hC3E58D353BC5D757ULL /' 368 '/, &hEB017892F38F61E8ULL /' 369 '/, _
&hD4EFFB9C9B1CC21AULL /' 370 '/, &h99727D26F494F7ABULL /' 371 '/, _
&hA3E063A2956B3E03ULL /' 372 '/, &h9D4A8B9A4AA09C30ULL /' 373 '/, _
&h3F6AB7D500090FB4ULL /' 374 '/, &h9CC0F2A057268AC0ULL /' 375 '/, _
&h3DEE9D2DEDBF42D1ULL /' 376 '/, &h330F49C87960A972ULL /' 377 '/, _
&hC6B2720287421B41ULL /' 378 '/, &h0AC59EC07C00369CULL /' 379 '/, _
&hEF4EAC49CB353425ULL /' 380 '/, &hF450244EEF0129D8ULL /' 381 '/, _
&h8ACC46E5CAF4DEB6ULL /' 382 '/, &h2FFEAB63989263F7ULL /' 383 '/, _
&h8F7CB9FE5D7A4578ULL /' 384 '/, &h5BD8F7644E634635ULL /' 385 '/, _
&h427A7315BF2DC900ULL /' 386 '/, &h17D0C4AA2125261CULL /' 387 '/, _
&h3992486C93518E50ULL /' 388 '/, &hB4CBFEE0A2D7D4C3ULL /' 389 '/, _
&h7C75D6202C5DDD8DULL /' 390 '/, &hDBC295D8E35B6C61ULL /' 391 '/, _
&h60B369D302032B19ULL /' 392 '/, &hCE42685FDCE44132ULL /' 393 '/, _
&h06F3DDB9DDF65610ULL /' 394 '/, &h8EA4D21DB5E148F0ULL /' 395 '/, _
&h20B0FCE62FCD496FULL /' 396 '/, &h2C1B912358B0EE31ULL /' 397 '/, _
&hB28317B818F5A308ULL /' 398 '/, &hA89C1E189CA6D2CFULL /' 399 '/, _
&h0C6B18576AAADBC8ULL /' 400 '/, &hB65DEAA91299FAE3ULL /' 401 '/, _
&hFB2B794B7F1027E7ULL /' 402 '/, &h04E4317F443B5BEBULL /' 403 '/, _
&h4B852D325939D0A6ULL /' 404 '/, &hD5AE6BEEFB207FFCULL /' 405 '/, _
&h309682B281C7D374ULL /' 406 '/, &hBAE309A194C3B475ULL /' 407 '/, _
&h8CC3F97B13B49F05ULL /' 408 '/, &h98A9422FF8293967ULL /' 409 '/, _
&h244B16B01076FF7CULL /' 410 '/, &hF8BF571C663D67EEULL /' 411 '/, _
&h1F0D6758EEE30DA1ULL /' 412 '/, &hC9B611D97ADEB9B7ULL /' 413 '/, _
&hB7AFD5887B6C57A2ULL /' 414 '/, &h6290AE846B984FE1ULL /' 415 '/, _
&h94DF4CDEACC1A5FDULL /' 416 '/, &h058A5BD1C5483AFFULL /' 417 '/, _
&h63166CC142BA3C37ULL /' 418 '/, &h8DB8526EB2F76F40ULL /' 419 '/, _
&hE10880036F0D6D4EULL /' 420 '/, &h9E0523C9971D311DULL /' 421 '/, _
&h45EC2824CC7CD691ULL /' 422 '/, &h575B8359E62382C9ULL /' 423 '/, _
&hFA9E400DC4889995ULL /' 424 '/, &hD1823ECB45721568ULL /' 425 '/, _
&hDAFD983B8206082FULL /' 426 '/, &hAA7D29082386A8CBULL /' 427 '/, _
&h269FCD4403B87588ULL /' 428 '/, &h1B91F5F728BDD1E0ULL /' 429 '/, _
&hE4669F39040201F6ULL /' 430 '/, &h7A1D7C218CF04ADEULL /' 431 '/, _
&h65623C29D79CE5CEULL /' 432 '/, &h2368449096C00BB1ULL /' 433 '/, _
&hAB9BF1879DA503BAULL /' 434 '/, &hBC23ECB1A458058EULL /' 435 '/, _
&h9A58DF01BB401ECCULL /' 436 '/, &hA070E868A85F143DULL /' 437 '/, _
&h4FF188307DF2239EULL /' 438 '/, &h14D565B41A641183ULL /' 439 '/, _
&hEE13337452701602ULL /' 440 '/, &h950E3DCF3F285E09ULL /' 441 '/, _
&h59930254B9C80953ULL /' 442 '/, &h3BF299408930DA6DULL /' 443 '/, _
&hA955943F53691387ULL /' 444 '/, &hA15EDECAA9CB8784ULL /' 445 '/, _
&h29142127352BE9A0ULL /' 446 '/, &h76F0371FFF4E7AFBULL /' 447 '/, _
&h0239F450274F2228ULL /' 448 '/, &hBB073AF01D5E868BULL /' 449 '/, _
&hBFC80571C10E96C1ULL /' 450 '/, &hD267088568222E23ULL /' 451 '/, _
&h9671A3D48E80B5B0ULL /' 452 '/, &h55B5D38AE193BB81ULL /' 453 '/, _
&h693AE2D0A18B04B8ULL /' 454 '/, &h5C48B4ECADD5335FULL /' 455 '/, _
&hFD743B194916A1CAULL /' 456 '/, &h2577018134BE98C4ULL /' 457 '/, _
&hE77987E83C54A4ADULL /' 458 '/, &h28E11014DA33E1B9ULL /' 459 '/, _
&h270CC59E226AA213ULL /' 460 '/, &h71495F756D1A5F60ULL /' 461 '/, _
&h9BE853FB60AFEF77ULL /' 462 '/, &hADC786A7F7443DBFULL /' 463 '/, _
&h0904456173B29A82ULL /' 464 '/, &h58BC7A66C232BD5EULL /' 465 '/, _
&hF306558C673AC8B2ULL /' 466 '/, &h41F639C6B6C9772AULL /' 467 '/, _
&h216DEFE99FDA35DAULL /' 468 '/, &h11640CC71C7BE615ULL /' 469 '/, _
&h93C43694565C5527ULL /' 470 '/, &hEA038E6246777839ULL /' 471 '/, _
&hF9ABF3CE5A3E2469ULL /' 472 '/, &h741E768D0FD312D2ULL /' 473 '/, _
&h0144B883CED652C6ULL /' 474 '/, &hC20B5A5BA33F8552ULL /' 475 '/, _
&h1AE69633C3435A9DULL /' 476 '/, &h97A28CA4088CFDECULL /' 477 '/, _
&h8824A43C1E96F420ULL /' 478 '/, &h37612FA66EEEA746ULL /' 479 '/, _
&h6B4CB165F9CF0E5AULL /' 480 '/, &h43AA1C06A0ABFB4AULL /' 481 '/, _
&h7F4DC26FF162796BULL /' 482 '/, &h6CBACC8E54ED9B0FULL /' 483 '/, _
&hA6B7FFEFD2BB253EULL /' 484 '/, &h2E25BC95B0A29D4FULL /' 485 '/, _
&h86D6A58BDEF1388CULL /' 486 '/, &hDED74AC576B6F054ULL /' 487 '/, _
&h8030BDBC2B45805DULL /' 488 '/, &h3C81AF70E94D9289ULL /' 489 '/, _
&h3EFF6DDA9E3100DBULL /' 490 '/, &hB38DC39FDFCC8847ULL /' 491 '/, _
&h123885528D17B87EULL /' 492 '/, &hF2DA0ED240B1B642ULL /' 493 '/, _
&h44CEFADCD54BF9A9ULL /' 494 '/, &h1312200E433C7EE6ULL /' 495 '/, _
&h9FFCC84F3A78C748ULL /' 496 '/, &hF0CD1F72248576BBULL /' 497 '/, _
&hEC6974053638CFE4ULL /' 498 '/, &h2BA7B67C0CEC4E4CULL /' 499 '/, _
&hAC2F4DF3E5CE32EDULL /' 500 '/, &hCB33D14326EA4C11ULL /' 501 '/, _
&hA4E9044CC77E58BCULL /' 502 '/, &h5F513293D934FCEFULL /' 503 '/, _
&h5DC9645506E55444ULL /' 504 '/, &h50DE418F317DE40AULL /' 505 '/, _
&h388CB31A69DDE259ULL /' 506 '/, &h2DB4A83455820A86ULL /' 507 '/, _
&h9010A91E84711AE9ULL /' 508 '/, &h4DF7F0B7B1498371ULL /' 509 '/, _
&hD62A2EABC0977179ULL /' 510 '/, &h22FAC097AA8D5C0EULL /' 511 '/, _
&hF49FCC2FF1DAF39BULL /' 512 '/, &h487FD5C66FF29281ULL /' 513 '/, _
&hE8A30667FCDCA83FULL /' 514 '/, &h2C9B4BE3D2FCCE63ULL /' 515 '/, _
&hDA3FF74B93FBBBC2ULL /' 516 '/, &h2FA165D2FE70BA66ULL /' 517 '/, _
&hA103E279970E93D4ULL /' 518 '/, &hBECDEC77B0E45E71ULL /' 519 '/, _
&hCFB41E723985E497ULL /' 520 '/, &hB70AAA025EF75017ULL /' 521 '/, _
&hD42309F03840B8E0ULL /' 522 '/, &h8EFC1AD035898579ULL /' 523 '/, _
&h96C6920BE2B2ABC5ULL /' 524 '/, &h66AF4163375A9172ULL /' 525 '/, _
&h2174ABDCCA7127FBULL /' 526 '/, &hB33CCEA64A72FF41ULL /' 527 '/, _
&hF04A4933083066A5ULL /' 528 '/, &h8D970ACDD7289AF5ULL /' 529 '/, _
&h8F96E8E031C8C25EULL /' 530 '/, &hF3FEC02276875D47ULL /' 531 '/, _
&hEC7BF310056190DDULL /' 532 '/, &hF5ADB0AEBB0F1491ULL /' 533 '/, _
&h9B50F8850FD58892ULL /' 534 '/, &h4975488358B74DE8ULL /' 535 '/, _
&hA3354FF691531C61ULL /' 536 '/, &h0702BBE481D2C6EEULL /' 537 '/, _
&h89FB24057DEDED98ULL /' 538 '/, &hAC3075138596E902ULL /' 539 '/, _
&h1D2D3580172772EDULL /' 540 '/, &hEB738FC28E6BC30DULL /' 541 '/, _
&h5854EF8F63044326ULL /' 542 '/, &h9E5C52325ADD3BBEULL /' 543 '/, _
&h90AA53CF325C4623ULL /' 544 '/, &hC1D24D51349DD067ULL /' 545 '/, _
&h2051CFEEA69EA624ULL /' 546 '/, &h13220F0A862E7E4FULL /' 547 '/, _
&hCE39399404E04864ULL /' 548 '/, &hD9C42CA47086FCB7ULL /' 549 '/, _
&h685AD2238A03E7CCULL /' 550 '/, &h066484B2AB2FF1DBULL /' 551 '/, _
&hFE9D5D70EFBF79ECULL /' 552 '/, &h5B13B9DD9C481854ULL /' 553 '/, _
&h15F0D475ED1509ADULL /' 554 '/, &h0BEBCD060EC79851ULL /' 555 '/, _
&hD58C6791183AB7F8ULL /' 556 '/, &hD1187C5052F3EEE4ULL /' 557 '/, _
&hC95D1192E54E82FFULL /' 558 '/, &h86EEA14CB9AC6CA2ULL /' 559 '/, _
&h3485BEB153677D5DULL /' 560 '/, &hDD191D781F8C492AULL /' 561 '/, _
&hF60866BAA784EBF9ULL /' 562 '/, &h518F643BA2D08C74ULL /' 563 '/, _
&h8852E956E1087C22ULL /' 564 '/, &hA768CB8DC410AE8DULL /' 565 '/, _
&h38047726BFEC8E1AULL /' 566 '/, &hA67738B4CD3B45AAULL /' 567 '/, _
&hAD16691CEC0DDE19ULL /' 568 '/, &hC6D4319380462E07ULL /' 569 '/, _
&hC5A5876D0BA61938ULL /' 570 '/, &h16B9FA1FA58FD840ULL /' 571 '/, _
&h188AB1173CA74F18ULL /' 572 '/, &hABDA2F98C99C021FULL /' 573 '/, _
&h3E0580AB134AE816ULL /' 574 '/, &h5F3B05B773645ABBULL /' 575 '/, _
&h2501A2BE5575F2F6ULL /' 576 '/, &h1B2F74004E7E8BA9ULL /' 577 '/, _
&h1CD7580371E8D953ULL /' 578 '/, &h7F6ED89562764E30ULL /' 579 '/, _
&hB15926FF596F003DULL /' 580 '/, &h9F65293DA8C5D6B9ULL /' 581 '/, _
&h6ECEF04DD690F84CULL /' 582 '/, &h4782275FFF33AF88ULL /' 583 '/, _
&hE41433083F820801ULL /' 584 '/, &hFD0DFE409A1AF9B5ULL /' 585 '/, _
&h4325A3342CDB396BULL /' 586 '/, &h8AE77E62B301B252ULL /' 587 '/, _
&hC36F9E9F6655615AULL /' 588 '/, &h85455A2D92D32C09ULL /' 589 '/, _
&hF2C7DEA949477485ULL /' 590 '/, &h63CFB4C133A39EBAULL /' 591 '/, _
&h83B040CC6EBC5462ULL /' 592 '/, &h3B9454C8FDB326B0ULL /' 593 '/, _
&h56F56A9E87FFD78CULL /' 594 '/, &h2DC2940D99F42BC6ULL /' 595 '/, _
&h98F7DF096B096E2DULL /' 596 '/, &h19A6E01E3AD852BFULL /' 597 '/, _
&h42A99CCBDBD4B40BULL /' 598 '/, &hA59998AF45E9C559ULL /' 599 '/, _
&h366295E807D93186ULL /' 600 '/, &h6B48181BFAA1F773ULL /' 601 '/, _
&h1FEC57E2157A0A1DULL /' 602 '/, &h4667446AF6201AD5ULL /' 603 '/, _
&hE615EBCACFB0F075ULL /' 604 '/, &hB8F31F4F68290778ULL /' 605 '/, _
&h22713ED6CE22D11EULL /' 606 '/, &h3057C1A72EC3C93BULL /' 607 '/, _
&hCB46ACC37C3F1F2FULL /' 608 '/, &hDBB893FD02AAF50EULL /' 609 '/, _
&h331FD92E600B9FCFULL /' 610 '/, &hA498F96148EA3AD6ULL /' 611 '/, _
&hA8D8426E8B6A83EAULL /' 612 '/, &hA089B274B7735CDCULL /' 613 '/, _
&h87F6B3731E524A11ULL /' 614 '/, &h118808E5CBC96749ULL /' 615 '/, _
&h9906E4C7B19BD394ULL /' 616 '/, &hAFED7F7E9B24A20CULL /' 617 '/, _
&h6509EADEEB3644A7ULL /' 618 '/, &h6C1EF1D3E8EF0EDEULL /' 619 '/, _
&hB9C97D43E9798FB4ULL /' 620 '/, &hA2F2D784740C28A3ULL /' 621 '/, _
&h7B8496476197566FULL /' 622 '/, &h7A5BE3E6B65F069DULL /' 623 '/, _
&hF96330ED78BE6F10ULL /' 624 '/, &hEEE60DE77A076A15ULL /' 625 '/, _
&h2B4BEE4AA08B9BD0ULL /' 626 '/, &h6A56A63EC7B8894EULL /' 627 '/, _
&h02121359BA34FEF4ULL /' 628 '/, &h4CBF99F8283703FCULL /' 629 '/, _
&h398071350CAF30C8ULL /' 630 '/, &hD0A77A89F017687AULL /' 631 '/, _
&hF1C1A9EB9E423569ULL /' 632 '/, &h8C7976282DEE8199ULL /' 633 '/, _
&h5D1737A5DD1F7ABDULL /' 634 '/, &h4F53433C09A9FA80ULL /' 635 '/, _
&hFA8B0C53DF7CA1D9ULL /' 636 '/, &h3FD9DCBC886CCB77ULL /' 637 '/, _
&hC040917CA91B4720ULL /' 638 '/, &h7DD00142F9D1DCDFULL /' 639 '/, _
&h8476FC1D4F387B58ULL /' 640 '/, &h23F8E7C5F3316503ULL /' 641 '/, _
&h032A2244E7E37339ULL /' 642 '/, &h5C87A5D750F5A74BULL /' 643 '/, _
&h082B4CC43698992EULL /' 644 '/, &hDF917BECB858F63CULL /' 645 '/, _
&h3270B8FC5BF86DDAULL /' 646 '/, &h10AE72BB29B5DD76ULL /' 647 '/, _
&h576AC94E7700362BULL /' 648 '/, &h1AD112DAC61EFB8FULL /' 649 '/, _
&h691BC30EC5FAA427ULL /' 650 '/, &hFF246311CC327143ULL /' 651 '/, _
&h3142368E30E53206ULL /' 652 '/, &h71380E31E02CA396ULL /' 653 '/, _
&h958D5C960AAD76F1ULL /' 654 '/, &hF8D6F430C16DA536ULL /' 655 '/, _
&hC8FFD13F1BE7E1D2ULL /' 656 '/, &h7578AE66004DDBE1ULL /' 657 '/, _
&h05833F01067BE646ULL /' 658 '/, &hBB34B5AD3BFE586DULL /' 659 '/, _
&h095F34C9A12B97F0ULL /' 660 '/, &h247AB64525D60CA8ULL /' 661 '/, _
&hDCDBC6F3017477D1ULL /' 662 '/, &h4A2E14D4DECAD24DULL /' 663 '/, _
&hBDB5E6D9BE0A1EEBULL /' 664 '/, &h2A7E70F7794301ABULL /' 665 '/, _
&hDEF42D8A270540FDULL /' 666 '/, &h01078EC0A34C22C1ULL /' 667 '/, _
&hE5DE511AF4C16387ULL /' 668 '/, &h7EBB3A52BD9A330AULL /' 669 '/, _
&h77697857AA7D6435ULL /' 670 '/, &h004E831603AE4C32ULL /' 671 '/, _
&hE7A21020AD78E312ULL /' 672 '/, &h9D41A70C6AB420F2ULL /' 673 '/, _
&h28E06C18EA1141E6ULL /' 674 '/, &hD2B28CBD984F6B28ULL /' 675 '/, _
&h26B75F6C446E9D83ULL /' 676 '/, &hBA47568C4D418D7FULL /' 677 '/, _
&hD80BADBFE6183D8EULL /' 678 '/, &h0E206D7F5F166044ULL /' 679 '/, _
&hE258A43911CBCA3EULL /' 680 '/, &h723A1746B21DC0BCULL /' 681 '/, _
&hC7CAA854F5D7CDD3ULL /' 682 '/, &h7CAC32883D261D9CULL /' 683 '/, _
&h7690C26423BA942CULL /' 684 '/, &h17E55524478042B8ULL /' 685 '/, _
&hE0BE477656A2389FULL /' 686 '/, &h4D289B5E67AB2DA0ULL /' 687 '/, _
&h44862B9C8FBBFD31ULL /' 688 '/, &hB47CC8049D141365ULL /' 689 '/, _
&h822C1B362B91C793ULL /' 690 '/, &h4EB14655FB13DFD8ULL /' 691 '/, _
&h1ECBBA0714E2A97BULL /' 692 '/, &h6143459D5CDE5F14ULL /' 693 '/, _
&h53A8FBF1D5F0AC89ULL /' 694 '/, &h97EA04D81C5E5B00ULL /' 695 '/, _
&h622181A8D4FDB3F3ULL /' 696 '/, &hE9BCD341572A1208ULL /' 697 '/, _
&h1411258643CCE58AULL /' 698 '/, &h9144C5FEA4C6E0A4ULL /' 699 '/, _
&h0D33D06565CF620FULL /' 700 '/, &h54A48D489F219CA1ULL /' 701 '/, _
&hC43E5EAC6D63C821ULL /' 702 '/, &hA9728B3A72770DAFULL /' 703 '/, _
&hD7934E7B20DF87EFULL /' 704 '/, &hE35503B61A3E86E5ULL /' 705 '/, _
&hCAE321FBC819D504ULL /' 706 '/, &h129A50B3AC60BFA6ULL /' 707 '/, _
&hCD5E68EA7E9FB6C3ULL /' 708 '/, &hB01C90199483B1C7ULL /' 709 '/, _
&h3DE93CD5C295376CULL /' 710 '/, &hAED52EDF2AB9AD13ULL /' 711 '/, _
&h2E60F512C0A07884ULL /' 712 '/, &hBC3D86A3E36210C9ULL /' 713 '/, _
&h35269D9B163951CEULL /' 714 '/, &h0C7D6E2AD0CDB5FAULL /' 715 '/, _
&h59E86297D87F5733ULL /' 716 '/, &h298EF221898DB0E7ULL /' 717 '/, _
&h55000029D1A5AA7EULL /' 718 '/, &h8BC08AE1B5061B45ULL /' 719 '/, _
&hC2C31C2B6C92703AULL /' 720 '/, &h94CC596BAF25EF42ULL /' 721 '/, _
&h0A1D73DB22540456ULL /' 722 '/, &h04B6A0F9D9C4179AULL /' 723 '/, _
&hEFFDAFA2AE3D3C60ULL /' 724 '/, &hF7C8075BB49496C4ULL /' 725 '/, _
&h9CC5C7141D1CD4E3ULL /' 726 '/, &h78BD1638218E5534ULL /' 727 '/, _
&hB2F11568F850246AULL /' 728 '/, &hEDFABCFA9502BC29ULL /' 729 '/, _
&h796CE5F2DA23051BULL /' 730 '/, &hAAE128B0DC93537CULL /' 731 '/, _
&h3A493DA0EE4B29AEULL /' 732 '/, &hB5DF6B2C416895D7ULL /' 733 '/, _
&hFCABBD25122D7F37ULL /' 734 '/, &h70810B58105DC4B1ULL /' 735 '/, _
&hE10FDD37F7882A90ULL /' 736 '/, &h524DCAB5518A3F5CULL /' 737 '/, _
&h3C9E85878451255BULL /' 738 '/, &h4029828119BD34E2ULL /' 739 '/, _
&h74A05B6F5D3CECCBULL /' 740 '/, &hB610021542E13ECAULL /' 741 '/, _
&h0FF979D12F59E2ACULL /' 742 '/, &h6037DA27E4F9CC50ULL /' 743 '/, _
&h5E92975A0DF1847DULL /' 744 '/, &hD66DE190D3E623FEULL /' 745 '/, _
&h5032D6B87B568048ULL /' 746 '/, &h9A36B7CE8235216EULL /' 747 '/, _
&h80272A7A24F64B4AULL /' 748 '/, &h93EFED8B8C6916F7ULL /' 749 '/, _
&h37DDBFF44CCE1555ULL /' 750 '/, &h4B95DB5D4B99BD25ULL /' 751 '/, _
&h92D3FDA169812FC0ULL /' 752 '/, &hFB1A4A9A90660BB6ULL /' 753 '/, _
&h730C196946A4B9B2ULL /' 754 '/, &h81E289AA7F49DA68ULL /' 755 '/, _
&h64669A0F83B1A05FULL /' 756 '/, &h27B3FF7D9644F48BULL /' 757 '/, _
&hCC6B615C8DB675B3ULL /' 758 '/, &h674F20B9BCEBBE95ULL /' 759 '/, _
&h6F31238275655982ULL /' 760 '/, &h5AE488713E45CF05ULL /' 761 '/, _
&hBF619F9954C21157ULL /' 762 '/, &hEABAC46040A8EAE9ULL /' 763 '/, _
&h454C6FE9F2C0C1CDULL /' 764 '/, &h419CF6496412691CULL /' 765 '/, _
&hD3DC3BEF265B0F70ULL /' 766 '/, &h6D0E60F5C3578A9EULL /' 767 '/, _
&h5B0E608526323C55ULL /' 768 '/, &h1A46C1A9FA1B59F5ULL /' 769 '/, _
&hA9E245A17C4C8FFAULL /' 770 '/, &h65CA5159DB2955D7ULL /' 771 '/, _
&h05DB0A76CE35AFC2ULL /' 772 '/, &h81EAC77EA9113D45ULL /' 773 '/, _
&h528EF88AB6AC0A0DULL /' 774 '/, &hA09EA253597BE3FFULL /' 775 '/, _
&h430DDFB3AC48CD56ULL /' 776 '/, &hC4B3A67AF45CE46FULL /' 777 '/, _
&h4ECECFD8FBE2D05EULL /' 778 '/, &h3EF56F10B39935F0ULL /' 779 '/, _
&h0B22D6829CD619C6ULL /' 780 '/, &h17FD460A74DF2069ULL /' 781 '/, _
&h6CF8CC8E8510ED40ULL /' 782 '/, &hD6C824BF3A6ECAA7ULL /' 783 '/, _
&h61243D581A817049ULL /' 784 '/, &h048BACB6BBC163A2ULL /' 785 '/, _
&hD9A38AC27D44CC32ULL /' 786 '/, &h7FDDFF5BAAF410ABULL /' 787 '/, _
&hAD6D495AA804824BULL /' 788 '/, &hE1A6A74F2D8C9F94ULL /' 789 '/, _
&hD4F7851235DEE8E3ULL /' 790 '/, &hFD4B7F886540D893ULL /' 791 '/, _
&h247C20042AA4BFDAULL /' 792 '/, &h096EA1C517D1327CULL /' 793 '/, _
&hD56966B4361A6685ULL /' 794 '/, &h277DA5C31221057DULL /' 795 '/, _
&h94D59893A43ACFF7ULL /' 796 '/, &h64F0C51CCDC02281ULL /' 797 '/, _
&h3D33BCC4FF6189DBULL /' 798 '/, &hE005CB184CE66AF1ULL /' 799 '/, _
&hFF5CCD1D1DB99BEAULL /' 800 '/, &hB0B854A7FE42980FULL /' 801 '/, _
&h7BD46A6A718D4B9FULL /' 802 '/, &hD10FA8CC22A5FD8CULL /' 803 '/, _
&hD31484952BE4BD31ULL /' 804 '/, &hC7FA975FCB243847ULL /' 805 '/, _
&h4886ED1E5846C407ULL /' 806 '/, &h28CDDB791EB70B04ULL /' 807 '/, _
&hC2B00BE2F573417FULL /' 808 '/, &h5C9590452180F877ULL /' 809 '/, _
&h7A6BDDFFF370EB00ULL /' 810 '/, &hCE509E38D6D9D6A4ULL /' 811 '/, _
&hEBEB0F00647FA702ULL /' 812 '/, &h1DCC06CF76606F06ULL /' 813 '/, _
&hE4D9F28BA286FF0AULL /' 814 '/, &hD85A305DC918C262ULL /' 815 '/, _
&h475B1D8732225F54ULL /' 816 '/, &h2D4FB51668CCB5FEULL /' 817 '/, _
&hA679B9D9D72BBA20ULL /' 818 '/, &h53841C0D912D43A5ULL /' 819 '/, _
&h3B7EAA48BF12A4E8ULL /' 820 '/, &h781E0E47F22F1DDFULL /' 821 '/, _
&hEFF20CE60AB50973ULL /' 822 '/, &h20D261D19DFFB742ULL /' 823 '/, _
&h16A12B03062A2E39ULL /' 824 '/, &h1960EB2239650495ULL /' 825 '/, _
&h251C16FED50EB8B8ULL /' 826 '/, &h9AC0C330F826016EULL /' 827 '/, _
&hED152665953E7671ULL /' 828 '/, &h02D63194A6369570ULL /' 829 '/, _
&h5074F08394B1C987ULL /' 830 '/, &h70BA598C90B25CE1ULL /' 831 '/, _
&h794A15810B9742F6ULL /' 832 '/, &h0D5925E9FCAF8C6CULL /' 833 '/, _
&h3067716CD868744EULL /' 834 '/, &h910AB077E8D7731BULL /' 835 '/, _
&h6A61BBDB5AC42F61ULL /' 836 '/, &h93513EFBF0851567ULL /' 837 '/, _
&hF494724B9E83E9D5ULL /' 838 '/, &hE887E1985C09648DULL /' 839 '/, _
&h34B1D3C675370CFDULL /' 840 '/, &hDC35E433BC0D255DULL /' 841 '/, _
&hD0AAB84234131BE0ULL /' 842 '/, &h08042A50B48B7EAFULL /' 843 '/, _
&h9997C4EE44A3AB35ULL /' 844 '/, &h829A7B49201799D0ULL /' 845 '/, _
&h263B8307B7C54441ULL /' 846 '/, &h752F95F4FD6A6CA6ULL /' 847 '/, _
&h927217402C08C6E5ULL /' 848 '/, &h2A8AB754A795D9EEULL /' 849 '/, _
&hA442F7552F72943DULL /' 850 '/, &h2C31334E19781208ULL /' 851 '/, _
&h4FA98D7CEAEE6291ULL /' 852 '/, &h55C3862F665DB309ULL /' 853 '/, _
&hBD0610175D53B1F3ULL /' 854 '/, &h46FE6CB840413F27ULL /' 855 '/, _
&h3FE03792DF0CFA59ULL /' 856 '/, &hCFE700372EB85E8FULL /' 857 '/, _
&hA7BE29E7ADBCE118ULL /' 858 '/, &hE544EE5CDE8431DDULL /' 859 '/, _
&h8A781B1B41F1873EULL /' 860 '/, &hA5C94C78A0D2F0E7ULL /' 861 '/, _
&h39412E2877B60728ULL /' 862 '/, &hA1265EF3AFC9A62CULL /' 863 '/, _
&hBCC2770C6A2506C5ULL /' 864 '/, &h3AB66DD5DCE1CE12ULL /' 865 '/, _
&hE65499D04A675B37ULL /' 866 '/, &h7D8F523481BFD216ULL /' 867 '/, _
&h0F6F64FCEC15F389ULL /' 868 '/, &h74EFBE618B5B13C8ULL /' 869 '/, _
&hACDC82B714273E1DULL /' 870 '/, &hDD40BFE003199D17ULL /' 871 '/, _
&h37E99257E7E061F8ULL /' 872 '/, &hFA52626904775AAAULL /' 873 '/, _
&h8BBBF63A463D56F9ULL /' 874 '/, &hF0013F1543A26E64ULL /' 875 '/, _
&hA8307E9F879EC898ULL /' 876 '/, &hCC4C27A4150177CCULL /' 877 '/, _
&h1B432F2CCA1D3348ULL /' 878 '/, &hDE1D1F8F9F6FA013ULL /' 879 '/, _
&h606602A047A7DDD6ULL /' 880 '/, &hD237AB64CC1CB2C7ULL /' 881 '/, _
&h9B938E7225FCD1D3ULL /' 882 '/, &hEC4E03708E0FF476ULL /' 883 '/, _
&hFEB2FBDA3D03C12DULL /' 884 '/, &hAE0BCED2EE43889AULL /' 885 '/, _
&h22CB8923EBFB4F43ULL /' 886 '/, &h69360D013CF7396DULL /' 887 '/, _
&h855E3602D2D4E022ULL /' 888 '/, &h073805BAD01F784CULL /' 889 '/, _
&h33E17A133852F546ULL /' 890 '/, &hDF4874058AC7B638ULL /' 891 '/, _
&hBA92B29C678AA14AULL /' 892 '/, &h0CE89FC76CFAADCDULL /' 893 '/, _
&h5F9D4E0908339E34ULL /' 894 '/, &hF1AFE9291F5923B9ULL /' 895 '/, _
&h6E3480F60F4A265FULL /' 896 '/, &hEEBF3A2AB29B841CULL /' 897 '/, _
&hE21938A88F91B4ADULL /' 898 '/, &h57DFEFF845C6D3C3ULL /' 899 '/, _
&h2F006B0BF62CAAF2ULL /' 900 '/, &h62F479EF6F75EE78ULL /' 901 '/, _
&h11A55AD41C8916A9ULL /' 902 '/, &hF229D29084FED453ULL /' 903 '/, _
&h42F1C27B16B000E6ULL /' 904 '/, &h2B1F76749823C074ULL /' 905 '/, _
&h4B76ECA3C2745360ULL /' 906 '/, &h8C98F463B91691BDULL /' 907 '/, _
&h14BCC93CF1ADE66AULL /' 908 '/, &h8885213E6D458397ULL /' 909 '/, _
&h8E177DF0274D4711ULL /' 910 '/, &hB49B73B5503F2951ULL /' 911 '/, _
&h10168168C3F96B6BULL /' 912 '/, &h0E3D963B63CAB0AEULL /' 913 '/, _
&h8DFC4B5655A1DB14ULL /' 914 '/, &hF789F1356E14DE5CULL /' 915 '/, _
&h683E68AF4E51DAC1ULL /' 916 '/, &hC9A84F9D8D4B0FD9ULL /' 917 '/, _
&h3691E03F52A0F9D1ULL /' 918 '/, &h5ED86E46E1878E80ULL /' 919 '/, _
&h3C711A0E99D07150ULL /' 920 '/, &h5A0865B20C4E9310ULL /' 921 '/, _
&h56FBFC1FE4F0682EULL /' 922 '/, &hEA8D5DE3105EDF9BULL /' 923 '/, _
&h71ABFDB12379187AULL /' 924 '/, &h2EB99DE1BEE77B9CULL /' 925 '/, _
&h21ECC0EA33CF4523ULL /' 926 '/, &h59A4D7521805C7A1ULL /' 927 '/, _
&h3896F5EB56AE7C72ULL /' 928 '/, &hAA638F3DB18F75DCULL /' 929 '/, _
&h9F39358DABE9808EULL /' 930 '/, &hB7DEFA91C00B72ACULL /' 931 '/, _
&h6B5541FD62492D92ULL /' 932 '/, &h6DC6DEE8F92E4D5BULL /' 933 '/, _
&h353F57ABC4BEEA7EULL /' 934 '/, &h735769D6DA5690CEULL /' 935 '/, _
&h0A234AA642391484ULL /' 936 '/, &hF6F9508028F80D9DULL /' 937 '/, _
&hB8E319A27AB3F215ULL /' 938 '/, &h31AD9C1151341A4DULL /' 939 '/, _
&h773C22A57BEF5805ULL /' 940 '/, &h45C7561A07968633ULL /' 941 '/, _
&hF913DA9E249DBE36ULL /' 942 '/, &hDA652D9B78A64C68ULL /' 943 '/, _
&h4C27A97F3BC334EFULL /' 944 '/, &h76621220E66B17F4ULL /' 945 '/, _
&h967743899ACD7D0BULL /' 946 '/, &hF3EE5BCAE0ED6782ULL /' 947 '/, _
&h409F753600C879FCULL /' 948 '/, &h06D09A39B5926DB6ULL /' 949 '/, _
&h6F83AEB0317AC588ULL /' 950 '/, &h01E6CA4A86381F21ULL /' 951 '/, _
&h66FF3462D19F3025ULL /' 952 '/, &h72207C24DDFD3BFBULL /' 953 '/, _
&h4AF6B6D3E2ECE2EBULL /' 954 '/, &h9C994DBEC7EA08DEULL /' 955 '/, _
&h49ACE597B09A8BC4ULL /' 956 '/, &hB38C4766CF0797BAULL /' 957 '/, _
&h131B9373C57C2A75ULL /' 958 '/, &hB1822CCE61931E58ULL /' 959 '/, _
&h9D7555B909BA1C0CULL /' 960 '/, &h127FAFDD937D11D2ULL /' 961 '/, _
&h29DA3BADC66D92E4ULL /' 962 '/, &hA2C1D57154C2ECBCULL /' 963 '/, _
&h58C5134D82F6FE24ULL /' 964 '/, &h1C3AE3515B62274FULL /' 965 '/, _
&hE907C82E01CB8126ULL /' 966 '/, &hF8ED091913E37FCBULL /' 967 '/, _
&h3249D8F9C80046C9ULL /' 968 '/, &h80CF9BEDE388FB63ULL /' 969 '/, _
&h1881539A116CF19EULL /' 970 '/, &h5103F3F76BD52457ULL /' 971 '/, _
&h15B7E6F5AE47F7A8ULL /' 972 '/, &hDBD7C6DED47E9CCFULL /' 973 '/, _
&h44E55C410228BB1AULL /' 974 '/, &hB647D4255EDB4E99ULL /' 975 '/, _
&h5D11882BB8AAFC30ULL /' 976 '/, &hF5098BBB29D3212AULL /' 977 '/, _
&h8FB5EA14E90296B3ULL /' 978 '/, &h677B942157DD025AULL /' 979 '/, _
&hFB58E7C0A390ACB5ULL /' 980 '/, &h89D3674C83BD4A01ULL /' 981 '/, _
&h9E2DA4DF4BF3B93BULL /' 982 '/, &hFCC41E328CAB4829ULL /' 983 '/, _
&h03F38C96BA582C52ULL /' 984 '/, &hCAD1BDBD7FD85DB2ULL /' 985 '/, _
&hBBB442C16082AE83ULL /' 986 '/, &hB95FE86BA5DA9AB0ULL /' 987 '/, _
&hB22E04673771A93FULL /' 988 '/, &h845358C9493152D8ULL /' 989 '/, _
&hBE2A488697B4541EULL /' 990 '/, &h95A2DC2DD38E6966ULL /' 991 '/, _
&hC02C11AC923C852BULL /' 992 '/, &h2388B1990DF2A87BULL /' 993 '/, _
&h7C8008FA1B4F37BEULL /' 994 '/, &h1F70D0C84D54E503ULL /' 995 '/, _
&h5490ADEC7ECE57D4ULL /' 996 '/, &h002B3C27D9063A3AULL /' 997 '/, _
&h7EAEA3848030A2BFULL /' 998 '/, &hC602326DED2003C0ULL /' 999 '/, _
&h83A7287D69A94086ULL /' 1000 '/, &hC57A5FCB30F57A8AULL /' 1001 '/, _
&hB56844E479EBE779ULL /' 1002 '/, &hA373B40F05DCBCE9ULL /' 1003 '/, _
&hD71A786E88570EE2ULL /' 1004 '/, &h879CBACDBDE8F6A0ULL /' 1005 '/, _
&h976AD1BCC164A32FULL /' 1006 '/, &hAB21E25E9666D78BULL /' 1007 '/, _
&h901063AAE5E5C33CULL /' 1008 '/, &h9818B34448698D90ULL /' 1009 '/, _
&hE36487AE3E1E8ABBULL /' 1010 '/, &hAFBDF931893BDCB4ULL /' 1011 '/, _
&h6345A0DC5FBBD519ULL /' 1012 '/, &h8628FE269B9465CAULL /' 1013 '/, _
&h1E5D01603F9C51ECULL /' 1014 '/, &h4DE44006A15049B7ULL /' 1015 '/, _
&hBF6C70E5F776CBB1ULL /' 1016 '/, &h411218F2EF552BEDULL /' 1017 '/, _
&hCB0C0708705A36A3ULL /' 1018 '/, &hE74D14754F986044ULL /' 1019 '/, _
&hCD56D9430EA8280EULL /' 1020 '/, &hC12591D7535F5065ULL /' 1021 '/, _
&hC83223F1720AEF96ULL /' 1022 '/, &hC3A0396F7363A51FULL /' 1023 '/}
edit: added link to wikipedia article