36D杯CTF Re WP

测试文件:https://lanzous.com/b07rkpdud

签到

代码分析

int __cdecl main(int argc, const char **argv, const char **envp)
{
  __int64 v3; // rdx
  __int64 v4; // rcx
  int v6; // [rsp+4h] [rbp-8Ch]
  unsigned int v7; // [rsp+8h] [rbp-88h]
  int v8; // [rsp+Ch] [rbp-84h]
  int v9; // [rsp+10h] [rbp-80h]
  int v10; // [rsp+14h] [rbp-7Ch]
  int v11; // [rsp+18h] [rbp-78h]
  int v12; // [rsp+1Ch] [rbp-74h]
  int v13; // [rsp+20h] [rbp-70h]
  int v14; // [rsp+24h] [rbp-6Ch]
  int v15; // [rsp+28h] [rbp-68h]
  int v16; // [rsp+2Ch] [rbp-64h]
  int v17; // [rsp+30h] [rbp-60h]
  int v18; // [rsp+34h] [rbp-5Ch]
  int v19; // [rsp+38h] [rbp-58h]
  int v20; // [rsp+3Ch] [rbp-54h]
  int v21; // [rsp+40h] [rbp-50h]
  int v22; // [rsp+44h] [rbp-4Ch]
  int v23; // [rsp+48h] [rbp-48h]
  int v24; // [rsp+4Ch] [rbp-44h]
  int v25; // [rsp+50h] [rbp-40h]
  int v26; // [rsp+54h] [rbp-3Ch]
  int v27; // [rsp+58h] [rbp-38h]
  int v28; // [rsp+5Ch] [rbp-34h]
  int v29; // [rsp+60h] [rbp-30h]
  int v30; // [rsp+64h] [rbp-2Ch]
  int v31; // [rsp+68h] [rbp-28h]
  int v32; // [rsp+6Ch] [rbp-24h]
  int v33; // [rsp+70h] [rbp-20h]
  int v34; // [rsp+74h] [rbp-1Ch]
  int v35; // [rsp+78h] [rbp-18h]
  int v36; // [rsp+7Ch] [rbp-14h]
  int v37; // [rsp+80h] [rbp-10h]
  int v38; // [rsp+84h] [rbp-Ch]
  int v39; // [rsp+88h] [rbp-8h]
  char v40; // [rsp+8Ch] [rbp-4h]

  v9 = 102;
  v10 = 109;
  v11 = 99;
  v12 = 98;
  v13 = 127;
  v14 = 58;
  v15 = 85;
  v16 = 106;
  v17 = 57;
  v18 = 82;
  v19 = 122;
  v20 = 55;
  v21 = 81;
  v22 = 19;
  v23 = 51;
  v24 = 35;
  v25 = 67;
  v26 = 70;
  v27 = 41;
  v28 = 61;
  v29 = 41;
  v30 = 32;
  v31 = 127;
  v32 = 28;
  v33 = 38;
  v34 = 77;
  v35 = 49;
  v36 = 20;
  v37 = 80;
  v38 = 94;
  v39 = -24;
  sub_4007F8(&v40, 0LL, 4LL);
  v7 = 0;
  v6 = 0;
  sub_400808(aFlag);
  do
  {
    v8 = sub_400818(aFlag, 0LL);                // v8 = 0x66
    v6 |= v8 ^ v7 ^ (v7 + (v7 ^ *(&v9 + (signed int)v7)));
    v4 = v7++;
  }
  while ( v8 && v8 != 10 && v8 != -1 );
  if ( v6 )
    sub_400828((__int64)aFailed, 0LL, v3, v4);
  else
    sub_400828((__int64)aCorrect, 0LL, v3, v4); // v6必须为0
  return 0;
}

了解这么几件事就行

  • v8是我们输入的flag(重头开始循环取一个字符)
  • v6必须为0,才能输出correct

脚本

# -*- coding:utf-8 -*-

model = [102, 109, 99, 98, 127, 58, 85, 106, 57, 82, 122, 55, 81, 19, 51, 35, 67, 70, 41, 61, 41, 32, 127, 28, 38, 77,
         49, 20, 80, 94]
flag = ''

for i, val in enumerate(model):
    flag += chr(0 ^ i ^ (i + (i ^ val)))
print (flag)

get flag!

flag{A_s1mpLe&E4sy_RE_i5Nt_1t}

神光

代码分析

 1 int __usercall sub_415C10@<eax>(int a1@<xmm0>)
 2 {
 3   int v1; // eax
 4   int v2; // edx
 5   int v3; // ecx
 6   int v4; // eax
 7   int v5; // edx
 8   int v6; // ecx
 9   int v7; // eax
10   int v8; // edx
11   int v9; // ecx
12   int v10; // edx
13   int v11; // ST0C_4
14   int v12; // ST08_4
15   char v14; // [esp+0h] [ebp-ECh]
16   char Str1; // [esp+D0h] [ebp-1Ch]
17   int v16; // [esp+E8h] [ebp-4h]
18   int savedregs; // [esp+ECh] [ebp+0h]
19 
20   sub_41122B((int)&unk_41C032);
21   sub_411406();
22   while ( 1 )
23   {
24     puts_0((int)"请输入key:
", v14);
25     scanf(a1, (const char *)&unk_417B40, (unsigned int)&Str1, 20);
26     sub_4113B1(a1, &Str1);
27     if ( dword_41A4E0 )
28       break;
29     v1 = puts("系统错误,请再试一次
");
30     sub_411235(v3, v2, &v14 == &v14, v1, a1);
31   }
32   sub_41141A(a1);
33   v4 = MessageBoxA(0, "认证成功,离flag又近了一步", "恭喜", 0);
34   sub_411235(v6, v5, &v14 == &v14, v4, a1);
35   sub_4113CF(&Str1);
36   v7 = system("pause");
37   sub_411235(v9, v8, &v14 == &v14, v7, a1);
38   v11 = v10;
39   sub_411258(&savedregs, dword_415D18, 0);
40   return sub_411235((unsigned int)&savedregs ^ v16, v11, 1, v12, a1);
41 }

while循环中,主要注意对输入字符串操作的sub_4113B1函数,和对结果判断的dword_41A4E0,这里dword_41A4E0显然要非0。打开函数

int __usercall sub_415B10@<eax>(int a1@<xmm0>, char *Str1)
{
  int v2; // eax
  int v3; // edx
  int v4; // eax
  int v5; // edx
  int v6; // ecx
  int v7; // eax
  __int64 v8; // rtt
  int v9; // ST04_4
  int v10; // ST00_4
  int v12; // [esp+0h] [ebp-E8h]
  char Str2; // [esp+D0h] [ebp-18h]
  char v14; // [esp+D1h] [ebp-17h]
  char v15; // [esp+D2h] [ebp-16h]
  char v16; // [esp+D3h] [ebp-15h]
  char v17; // [esp+D4h] [ebp-14h]
  char v18; // [esp+D5h] [ebp-13h]
  char v19; // [esp+D6h] [ebp-12h]
  char v20; // [esp+D7h] [ebp-11h]
  char v21; // [esp+D8h] [ebp-10h]
  char v22; // [esp+D9h] [ebp-Fh]
  char v23; // [esp+DAh] [ebp-Eh]
  char v24; // [esp+DBh] [ebp-Dh]
  char v25; // [esp+DCh] [ebp-Ch]
  char v26; // [esp+DDh] [ebp-Bh]
  char v27; // [esp+DEh] [ebp-Ah]
  int v28; // [esp+E4h] [ebp-4h]
  int savedregs; // [esp+E8h] [ebp+0h]

  sub_41122B((int)&unk_41C032);
  Str2 = 'w';
  v14 = 'a';
  v15 = 'n';
  v16 = 'g';
  v17 = 'z';
  v18 = 'h';
  v19 = 'e';
  v20 = 'r';
  v21 = 'o';
  v22 = 'n';
  v23 = 'g';
  v24 = 'y';
  v25 = 'a';
  v26 = 'o';
  v27 = 0;
  v2 = j_strcmp(Str1, &Str2);
  if ( v2 )
  {
    dword_41A4E0 = 0;
  }
  else
  {
    v4 = rand();
    v7 = sub_411235(v6, v5, &v12 == &v12, v4, a1);
    v8 = v7;
    v2 = v7 / 10;
    v3 = v8 % 10;
    dword_41A4E0 = v8 % 10;
  }
  v9 = v3;
  sub_411258(&savedregs, dword_415BEC, v2);
  return sub_411235((unsigned int)&savedregs ^ v28, v9, 1, v10, a1);
}

这里就是个赋值,将"wangzherongyao"赋值给Str1,失败dword_41A4E0赋值为0,成功赋值非0.

因此,我们只需要输入"wangzherongyao"就行,但是在IDA动态调试,得到的是一个乱码输出的弹窗,使用OD输入,得到flag。flag拿的莫名其妙...

get flag!

flag{9969e2ddd64088f71af0caa891b4dc63}

BBBigEqSet

代码分析

打开后我们看到,就是一堆相乘后相加,再与一个数比较,这里flag未知,因此这里就是解多元一次方程。

流程:

  1. 读取每一条汇编指令,主要处理imul和cmp操作数
  2. 对imul,imul有双操作数和三操作数,因此分开读取系数,得到矩阵a。
  3. 对cmp,直接读取值就行,作为方程的值,得到矩阵b。

IDA Python参考:https://blog.csdn.net/oShuangYue12/article/details/85675751

脚本

beg_addr = 0x11c7
end_addr = 0x4963c
coef = []
val = []
a = []
b = []
while beg_addr <= end_addr:
    if(idc.GetMnem(beg_addr) == 'imul'):
        if(idc.GetOpType(beg_addr,1) == 5): # 分析类型
            coef.append(GetOperandValue(beg_addr,1))
        else:
            coef.append(GetOperandValue(beg_addr,2))
    if(idc.GetMnem(beg_addr) == 'cmp'):
        val.append(GetOperandValue(beg_addr,1))
        a.append(coef)
        b.append(val)
        coef = []
        val = []
    beg_addr = idc.NextHead(beg_addr) # 下一条汇编指令
print a
print b

a,b矩阵太长就不单独贴出来了。对矩阵a,b稍微处理一下,就能够使用numpy解出答案。

但是会出现一个问题,答案为浮点型,而直接使用int将float转换,会使得小数部分直接被舍去,因此我是这样处理:val%1 >= 0.5,则val = val + 1;否则val = int(val)。

# -*- coding:utf-8 -*-

import numpy as np

a = [[37921, 24781, 19407, 27938, 32494, 57038, 40870, 61052, 39355, 40829, 19052, 27472, 36126, 60067, 48128, 38707, 54055, 43022, 18066, 21129, 21824, 42549, 49412, 59321, 46112, 27153, 21211, 20132, 41765, 40252, 18243, 46190, 38419, 44487, 46722, 50282, 51121, 18530, 60307, 60412, 18329, 42900, 64538, 31920, 50401, 37799, 65272, 52454, 32992, 37835, 56440, 33044, 61803, 37429, 31970, 20664, 28781, 42180, 32548, 31270, 45920, 29121, 44983, 24443, 63499, 51756, 49484, 40989, 40181, 49578, 42837, 52847, 56121, 28905, 36772, 49425, 42226, 57710, 39486, 36226, 39294, 59818, 31417, 33991, 24771, 47359, 37562, 62356, 53803, 54297, 31717, 26026, 40171, 30764, 58791, 49762, 22287, 47589, 28952, 49466, 55426, 54352, 37567, 65257, 51708, 61554, 50929, 57244, 63505, 52094, 24492, 20060, 28817, 21676, 56821, 52880, 58206, 57189, 64090, 51316, 61681, 37148, 58990, 30665, 65067, 18203, 48499, 33908], [36154, 51170, 16489, 28830, 64948, 43194, 37989, 58626, 62427, 50426, 64775, 34235, 24651, 53391, 19348, 65327, 27716, 19875, 22998, 51578, 31568, 26088, 31455, 31456, 46751, 40584, 59464, 18319, 28805, 41822, 63580, 39308, 19096, 56381, 43398, 20676, 31869, 62105, 51187, 25534, 54926, 36470, 23697, 59112, 46829, 30583, 21402, 33112, 45715, 40250, 55785, 59323, 33905, 45014, 58434, 33375, 54722, 62845, 56452, 58753, 28358, 54010, 50799, 18139, 57265, 38851, 21666, 52087, 43490, 53098, 39158, 27467, 34871, 24924, 62602, 49922, 63752, 17614, 23473, 18057, 26159, 64583, 18273, 36755, 29080, 61638, 31324, 52493, 24394, 22021, 46781, 48052, 30116, 17196, 54666, 62958, 49743, 34784, 45665, 22889, 26298, 39951, 45096, 61741, 60930, 28317, 62900, 38395, 44365, 39765, 20845, 29353, 36076, 17503, 64275, 55676, 32760, 22418, 32899, 50609, 47716, 60971, 57794, 29273, 33112, 35474, 43301, 60604], [21917, 28060, 22692, 28399, 31304, 39323, 58032, 42453, 63018, 19334, 43428, 43907, 24996, 19263, 24264, 65336, 50155, 16920, 55331, 48170, 26964, 41381, 45040, 46428, 54193, 37247, 59916, 19330, 46688, 16890, 32243, 20371, 26126, 29290, 40870, 29510, 43918, 46965, 30192, 44573, 32650, 56741, 52238, 20563, 45106, 55630, 63485, 58631, 50594, 56173, 55167, 60629, 22269, 48427, 16881, 29839, 47697, 58480, 58106, 29407, 37390, 56546, 57044, 26259, 33050, 60015, 63676, 40895, 34403, 22081, 50610, 24764, 50673, 26190, 49590, 24041, 36808, 20944, 62927, 26216, 56713, 58724, 20794, 21248, 23237, 16429, 18659, 25038, 55991, 36669, 23281, 37728, 42029, 52612, 58565, 16683, 49370, 64174, 47621, 54041, 17756, 17084, 35716, 32607, 17073, 42948, 40597, 58603, 61887, 39776, 33544, 37639, 62850, 28404, 20014, 22141, 18487, 27632, 63942, 57043, 16855, 54151, 47738, 49824, 60130, 57692, 56742, 32685], [36334, 38846, 60493, 61474, 25442, 24896, 19692, 60474, 42966, 57850, 46224, 31445, 25190, 47258, 53791, 34530, 32238, 45121, 38831, 41545, 63216, 18816, 39860, 59142, 21708, 61592, 25091, 46921, 46839, 61846, 52390, 50339, 17127, 38760, 53693, 43496, 18520, 43153, 32594, 55223, 26086, 31958, 52432, 38835, 25638, 18830, 31476, 21740, 61977, 45880, 36544, 50481, 20557, 22465, 21036, 50149, 49642, 45357, 17864, 45617, 53766, 38061, 19361, 38699, 49012, 19192, 27708, 36650, 30854, 31337, 63467, 37665, 20475, 48490, 63019, 54739, 41831, 60380, 29910, 20415, 31052, 50886, 31229, 49767, 55942, 32573, 36041, 35685, 58998, 17190, 60136, 56246, 19923, 19324, 19336, 17856, 45891, 19079, 26283, 22894, 35715, 21971, 34689, 58509, 32296, 33880, 23177, 52937, 38784, 54658, 34067, 49297, 28894, 59649, 32263, 24779, 49393, 30419, 27233, 32490, 51581, 36554, 32821, 24711, 43977, 33896, 40496, 55797], [41561, 60972, 22264, 20703, 19161, 25230, 26452, 59183, 61443, 31175, 64036, 36555, 50706, 18450, 53024, 54422, 31885, 24590, 45129, 53074, 52117, 33277, 49139, 46375, 29598, 19731, 22811, 16691, 51751, 43477, 58337, 17889, 30299, 45436, 24675, 56101, 60666, 50135, 62462, 51912, 63296, 28834, 60907, 37478, 52780, 38546, 17427, 54729, 22983, 31774, 31678, 30129, 42025, 33315, 55870, 24031, 21518, 50431, 58131, 49081, 31741, 54864, 52586, 35874, 50278, 16679, 41364, 54505, 29232, 63401, 31889, 45302, 53469, 44212, 21808, 32987, 33396, 17640, 57643, 57311, 21253, 34182, 33948, 58640, 58717, 21517, 48667, 25751, 60026, 18696, 17503, 59973, 50763, 26330, 28440, 55939, 17964, 41524, 22198, 30580, 41443, 26935, 37734, 29565, 17712, 58307, 54490, 45480, 17872, 59951, 57593, 25039, 30121, 31289, 55772, 45605, 41870, 22739, 30913, 35300, 20566, 62918, 27789, 29055, 46676, 34518, 29220, 50399], [54006, 48721, 37572, 21058, 39500, 36902, 38827, 43946, 43085, 21834, 25970, 18216, 41586, 49558, 37184, 55512, 25291, 20428, 20791, 48291, 35511, 54494, 58930, 62175, 64621, 42315, 52843, 28556, 45537, 37672, 62680, 21364, 63482, 23800, 34312, 38957, 47731, 38574, 42522, 33945, 18868, 63887, 23566, 37249, 57117, 45451, 48702, 17183, 56795, 36874, 48735, 30505, 54502, 25665, 44886, 51698, 44088, 37198, 28593, 40262, 30693, 21089, 24988, 17852, 36103, 35398, 27065, 49110, 34230, 56046, 53619, 56771, 54235, 27898, 22216, 35114, 31391, 31861, 43554, 47137, 46995, 50115, 49593, 20284, 17710, 64887, 58337, 43072, 38220, 18492, 36775, 22467, 42995, 65473, 36924, 45398, 27915, 20644, 24038, 31028, 27029, 17153, 34634, 36559, 22347, 25142, 28201, 47483, 51357, 60801, 37249, 33952, 43007, 28294, 51137, 42923, 27601, 36939, 31989, 34749, 55160, 41169, 33995, 18673, 19603, 62584, 24211, 27199], [29178, 64168, 20126, 27250, 29414, 50888, 27223, 49812, 19203, 55460, 18659, 30795, 46516, 59570, 54107, 60001, 64415, 40749, 61869, 46022, 34082, 38502, 59336, 53434, 58908, 46452, 47255, 57920, 18850, 54481, 17028, 36326, 49119, 23702, 59410, 52335, 33136, 17143, 54738, 19590, 64598, 22425, 29703, 50794, 22765, 47867, 38013, 42066, 46882, 27258, 20414, 26286, 57449, 17837, 27309, 48443, 33612, 52833, 56168, 59516, 40248, 42176, 60938, 35231, 19942, 43803, 33704, 26395, 33877, 49761, 63327, 28024, 63504, 60966, 49925, 45000, 53559, 19176, 20556, 34078, 64237, 43251, 50378, 38585, 39451, 38327, 64171, 34826, 27087, 24278, 44354, 23862, 33861, 28488, 62214, 48084, 59503, 61727, 39509, 63090, 57490, 30839, 63985, 21593, 39427, 29797, 24484, 63186, 56478, 35851, 20939, 59559, 19795, 44895, 54512, 26636, 27203, 41763, 60542, 27669, 60705, 36122, 30924, 58408, 25737, 51250, 17039, 22562], [58321, 62322, 23313, 22821, 22449, 26719, 41481, 59203, 33532, 54230, 47572, 61811, 56648, 38683, 46064, 20243, 22705, 41711, 28979, 26150, 18413, 36383, 33879, 64816, 47702, 47303, 35430, 37066, 59544, 51547, 55072, 46556, 54280, 53993, 49789, 49303, 30930, 37245, 27020, 61047, 38476, 51233, 20102, 54812, 36977, 58063, 44165, 59546, 21052, 28306, 20184, 22832, 40024, 29373, 31430, 19400, 16916, 46906, 46304, 42419, 34557, 54229, 38874, 18211, 55242, 25658, 47256, 41731, 21699, 47580, 46560, 31343, 46528, 50843, 33562, 29470, 17200, 46439, 29885, 21124, 63832, 47324, 40083, 56608, 25169, 48423, 47958, 57450, 27136, 61189, 36006, 18042, 26012, 53270, 21135, 58143, 32783, 33176, 36451, 49545, 40449, 35010, 43409, 50606, 30010, 36187, 34893, 35543, 22230, 48753, 63934, 62431, 35635, 46418, 25309, 25111, 64446, 17544, 35208, 52349, 53756, 17871, 43642, 30201, 22507, 47312, 30915, 45892], [40634, 18118, 46147, 33631, 47659, 19945, 16478, 45665, 19525, 60706, 22101, 28103, 16762, 50406, 35108, 59201, 63268, 19425, 29727, 55128, 49621, 36774, 39806, 62523, 27404, 24506, 17425, 44860, 65157, 39913, 52218, 38455, 33640, 47215, 19360, 17423, 37458, 50305, 16563, 64280, 64395, 55018, 40112, 28968, 57736, 60668, 54863, 40063, 20673, 44483, 17504, 43420, 63895, 20985, 49908, 30662, 33912, 43500, 28111, 61905, 62491, 18635, 48718, 54799, 62050, 56819, 47541, 54876, 23888, 29825, 44029, 30899, 56369, 61816, 38158, 19381, 39839, 25016, 27906, 45201, 43777, 18260, 53694, 50584, 28836, 31134, 63165, 23207, 64062, 39920, 64777, 21641, 47688, 60785, 47062, 27556, 30260, 44220, 64449, 59287, 25038, 60639, 41140, 56626, 59856, 38744, 45959, 63323, 43247, 47594, 33672, 25445, 33046, 60230, 63609, 24107, 51556, 57054, 20167, 19850, 20718, 48745, 49491, 46594, 41235, 44542, 38243, 37674], [46013, 43557, 19930, 60522, 19839, 40233, 56112, 26699, 37128, 40029, 54749, 31135, 25156, 46708, 48925, 54234, 38156, 39299, 45261, 31888, 39263, 49199, 54596, 61996, 21778, 56780, 34798, 42130, 48182, 48205, 43156, 32482, 23227, 39563, 49763, 28074, 37675, 29322, 20590, 55451, 17148, 52556, 55244, 22987, 44972, 61582, 35280, 21186, 31309, 64191, 35563, 56357, 53601, 46580, 19196, 51520, 30973, 51298, 52913, 64368, 32622, 49107, 44937, 40460, 21119, 44649, 37595, 58219, 48702, 19400, 24792, 31102, 52524, 32976, 18515, 60010, 34420, 49189, 56708, 31379, 24768, 21011, 35944, 59599, 48604, 33196, 48961, 42586, 56037, 23506, 64415, 28113, 31670, 38035, 25540, 60996, 63112, 16984, 21211, 30175, 58659, 24860, 38634, 33748, 64885, 48242, 45587, 43293, 57858, 60548, 26276, 21356, 49540, 44668, 51357, 21442, 36782, 41299, 47770, 26079, 34443, 29867, 49324, 57497, 33115, 40783, 31928, 35135], [57704, 62490, 61358, 42739, 38646, 41197, 36600, 49373, 21160, 21989, 56114, 51404, 22795, 49002, 21523, 60185, 36375, 62820, 38891, 20397, 35620, 45050, 47511, 42729, 32983, 62583, 27193, 51168, 55922, 32907, 38720, 36037, 59979, 49942, 48927, 46500, 31642, 40007, 29667, 33595, 41942, 24628, 36657, 25480, 40444, 28525, 60587, 19545, 35526, 34179, 45377, 22293, 38495, 55150, 30086, 27735, 55786, 38165, 26874, 45395, 30615, 53841, 42744, 42386, 37771, 36197, 47966, 60180, 23202, 49381, 40767, 42086, 42449, 25368, 37580, 30050, 45519, 51678, 30957, 33325, 34479, 51749, 17230, 25545, 49436, 42486, 45599, 63027, 54287, 62988, 63310, 57699, 51213, 64935, 25466, 36488, 40575, 28056, 51418, 38451, 41986, 54172, 34177, 53503, 27059, 44675, 49926, 36136, 33927, 34300, 53978, 34554, 62823, 64744, 31059, 25502, 64554, 28816, 48492, 40708, 19790, 18623, 33657, 37052, 60033, 45290, 47139, 38014], [63709, 28176, 27334, 60871, 28094, 59969, 60339, 18986, 60339, 19967, 34955, 19626, 52229, 54836, 17895, 23235, 55508, 54046, 55074, 32147, 35799, 55991, 64215, 19903, 52032, 56110, 21719, 26946, 48548, 47345, 62920, 25946, 60333, 62634, 38770, 27327, 49622, 27918, 63343, 33712, 18589, 44063, 40950, 59084, 32036, 22976, 39137, 31447, 17181, 47779, 44027, 54556, 20266, 34311, 64089, 44637, 63234, 30904, 19783, 49211, 28162, 35510, 52300, 43009, 20554, 36557, 25656, 40623, 58638, 32546, 26635, 19851, 48694, 45723, 26357, 52727, 50482, 34350, 21758, 43062, 40089, 37725, 29149, 62177, 62715, 42432, 57240, 59057, 20019, 24037, 46916, 18625, 48171, 46209, 25949, 58831, 24276, 29412, 25106, 37982, 47525, 23178, 39412, 32307, 22821, 56725, 51417, 24743, 26563, 35389, 48983, 36207, 57808, 60221, 62987, 64148, 40778, 22339, 31742, 20045, 16918, 22879, 18477, 42122, 24351, 65412, 42639, 28827], [52468, 48157, 65120, 41806, 55290, 34564, 54634, 22780, 32990, 33179, 21524, 51603, 40021, 48314, 26695, 40694, 24932, 58237, 50116, 41785, 33389, 60331, 36894, 30430, 29071, 58307, 44073, 36112, 21957, 33685, 58044, 61760, 37635, 51622, 49579, 39958, 59108, 23819, 35668, 22774, 44292, 61503, 53148, 42100, 29672, 48071, 54458, 19215, 40101, 57669, 41186, 30810, 59491, 60371, 41945, 44881, 22063, 38304, 43987, 23573, 56605, 34302, 42217, 38216, 58426, 46097, 60439, 17289, 54799, 46416, 22252, 16674, 25889, 29541, 60137, 52207, 46621, 26413, 29467, 44077, 51239, 18321, 45442, 64828, 46932, 39127, 34021, 51639, 65261, 19658, 20576, 37291, 36976, 26452, 62157, 42945, 21310, 46723, 37066, 45088, 62452, 30476, 47796, 52843, 55228, 43244, 39860, 37331, 27315, 42982, 63706, 22863, 45052, 22929, 30370, 35100, 48088, 65374, 58219, 47015, 17067, 48767, 25273, 31698, 59754, 32054, 35973, 58700], [47803, 49208, 43420, 51820, 19956, 31704, 63096, 53309, 60903, 27606, 18992, 64258, 43754, 58371, 20953, 23443, 50292, 19428, 40260, 53587, 23014, 44428, 45667, 51207, 39683, 18673, 31814, 44835, 25853, 19528, 16985, 44639, 51735, 22015, 47040, 25014, 50528, 55676, 58189, 64312, 43734, 60433, 60729, 51533, 46243, 34557, 54819, 35169, 35563, 41070, 39898, 32127, 23937, 23304, 44727, 47631, 57893, 62136, 22965, 19633, 47317, 17549, 38596, 19742, 27471, 52516, 41461, 43604, 20001, 46702, 18868, 41356, 25145, 40292, 18296, 30540, 21799, 23412, 52363, 49032, 18165, 40513, 49147, 21180, 65265, 21029, 63614, 45660, 50807, 38552, 35044, 42231, 64296, 29944, 39897, 51803, 35772, 42695, 55591, 47514, 40372, 23395, 49934, 54109, 31075, 19757, 37410, 43775, 22519, 36802, 64458, 65507, 42663, 33828, 50102, 23557, 39089, 36437, 27749, 34840, 61950, 57668, 26972, 38533, 42611, 40069, 38148, 32934], [20245, 30810, 24587, 36506, 64265, 65447, 59238, 16534, 55167, 64977, 20443, 42149, 41755, 57390, 22232, 51902, 44663, 59308, 31228, 39765, 23474, 28221, 29836, 55761, 19545, 21098, 21090, 23700, 52829, 24595, 48021, 42603, 43985, 44060, 38701, 61229, 43318, 52761, 50816, 43946, 18870, 19719, 23007, 62056, 52297, 20063, 18934, 45632, 29438, 27114, 40178, 25014, 23488, 36161, 59875, 21751, 16624, 50572, 50830, 57298, 30663, 18035, 56091, 33928, 57183, 17307, 29258, 44774, 41719, 63150, 23835, 63755, 45630, 53036, 58818, 31239, 52489, 61681, 64516, 50693, 56923, 35156, 33599, 33989, 19612, 53428, 46569, 27958, 29494, 63022, 53912, 28971, 34217, 25945, 61290, 45376, 47727, 22882, 41853, 51341, 52470, 22049, 21798, 51978, 45673, 32688, 43360, 36932, 40683, 49348, 52643, 46190, 39107, 62829, 43854, 34846, 39391, 32031, 52791, 36999, 27327, 53371, 64670, 34012, 28214, 20046, 52215, 49937], [39031, 36612, 44026, 29803, 45536, 30427, 29495, 41738, 22503, 45710, 31913, 24635, 29339, 34876, 28406, 45355, 39393, 39245, 30560, 64773, 47369, 58082, 52340, 19262, 27223, 46365, 22458, 52291, 49029, 30708, 47579, 51021, 60912, 42154, 22256, 53983, 58236, 29630, 21090, 18412, 39542, 55522, 54265, 31563, 38844, 63863, 59768, 40505, 46551, 17683, 49101, 37933, 16799, 36122, 28168, 58932, 40361, 60815, 26622, 47397, 48275, 36613, 48686, 44422, 37838, 47258, 44073, 48858, 26934, 61896, 43813, 17784, 45680, 23055, 30956, 55000, 25414, 58406, 40487, 46605, 53456, 55633, 43697, 31591, 29404, 38356, 33804, 26318, 31071, 30813, 39922, 49661, 18230, 31599, 19349, 62523, 36045, 29347, 48813, 23877, 26867, 39954, 35887, 18789, 19612, 46831, 32853, 42021, 47035, 40754, 24993, 50616, 47189, 59026, 58272, 57217, 52684, 61237, 29071, 63791, 35408, 54415, 60404, 46439, 39130, 52005, 23490, 49577], [34881, 27685, 48703, 55940, 61667, 20905, 32219, 30275, 48547, 20143, 54473, 26599, 55905, 21453, 28801, 61135, 48771, 21042, 22838, 20860, 23069, 39398, 35497, 22674, 18574, 22724, 17639, 48479, 44009, 27861, 18365, 56772, 33450, 40443, 44272, 21784, 47048, 45844, 64309, 37191, 41935, 22308, 32989, 60025, 53395, 40128, 47257, 46867, 56223, 16610, 49975, 36693, 48155, 35095, 43487, 32654, 53161, 49870, 28585, 18115, 23000, 51874, 53540, 55016, 28858, 64120, 40119, 24178, 58949, 40115, 22284, 49286, 60315, 30771, 17011, 40519, 33771, 20953, 27305, 21166, 46550, 19096, 52576, 57371, 55345, 22456, 45063, 57201, 18343, 51003, 51294, 18203, 40089, 61884, 27734, 59925, 47321, 61860, 44542, 57113, 18123, 23025, 46581, 21108, 47728, 18881, 19802, 59368, 22173, 39108, 28530, 32232, 17157, 29349, 28819, 17300, 44346, 18679, 20840, 20569, 57364, 61478, 41563, 55990, 57181, 38594, 63465, 17800], [31215, 59883, 34356, 22252, 55308, 34190, 61250, 29474, 28940, 27177, 45350, 24614, 58925, 57705, 63000, 41607, 42872, 38803, 23110, 20498, 21191, 17019, 38763, 26772, 57173, 36373, 20591, 29166, 40918, 33853, 54667, 34344, 40477, 22878, 46005, 24201, 29393, 64143, 31308, 49213, 51268, 49880, 58910, 38574, 25894, 47496, 58314, 38674, 21281, 29293, 49716, 59500, 44560, 34193, 35148, 20111, 57554, 36128, 29501, 45382, 27600, 23830, 58311, 65108, 18631, 46321, 55323, 43462, 47853, 63446, 25323, 36736, 21852, 43631, 51957, 42768, 62823, 21918, 25372, 17758, 26532, 48122, 22689, 55275, 17993, 56325, 27703, 29633, 40748, 40650, 53356, 16703, 31601, 50884, 42934, 41489, 57102, 62052, 50059, 47623, 30765, 58637, 27675, 55610, 35154, 40970, 56112, 32681, 59314, 36086, 23041, 17193, 40693, 31252, 43667, 26786, 27505, 50638, 32165, 38937, 45731, 38506, 50713, 49827, 21003, 46218, 17050, 25010], [24936, 16395, 30087, 28504, 43722, 36120, 44417, 51862, 55583, 63579, 60866, 45453, 37196, 32309, 37823, 31700, 58619, 62098, 60624, 50518, 64614, 55111, 56282, 41820, 24122, 20313, 59709, 26088, 37099, 52234, 61591, 50782, 26991, 21679, 30299, 64592, 58117, 34897, 29754, 44226, 46940, 37970, 42654, 45173, 35477, 54487, 47505, 39813, 63801, 60991, 18831, 55566, 41980, 28297, 64653, 65220, 20713, 18435, 25589, 46162, 41734, 52869, 40338, 52233, 28535, 53540, 37805, 51192, 30828, 42735, 25801, 17183, 21708, 47377, 20905, 34283, 31986, 59126, 28295, 61265, 53623, 22151, 44207, 20304, 48545, 28923, 34273, 47461, 18850, 55885, 37776, 16587, 59728, 37771, 54870, 48623, 45295, 46246, 24902, 50069, 42660, 35500, 49876, 45062, 28021, 63734, 50225, 42481, 61663, 49621, 57745, 47907, 65291, 41235, 25237, 64407, 32108, 47986, 18231, 39940, 41866, 46930, 29663, 52746, 57016, 60997, 63037, 41346], [22449, 29283, 32345, 61784, 27966, 38025, 62628, 62115, 45804, 61839, 46179, 32228, 37476, 30553, 45670, 18232, 55397, 34130, 22297, 30461, 24485, 31651, 54279, 35762, 36104, 52624, 27880, 38179, 17518, 34345, 65410, 26773, 31475, 36514, 61478, 29740, 17828, 33106, 35746, 50729, 22061, 56068, 42628, 63762, 53676, 31165, 53578, 59018, 31704, 37059, 38991, 26706, 52611, 23934, 41944, 41365, 35574, 44609, 62768, 34588, 56223, 22610, 26844, 53774, 29743, 24529, 48297, 42869, 42027, 16846, 24891, 37485, 19182, 20507, 54638, 30035, 23248, 55550, 56586, 41840, 19391, 51532, 40372, 27459, 43474, 62100, 21137, 34204, 30519, 51749, 19553, 24406, 19068, 30237, 40192, 44994, 47408, 23462, 40898, 41005, 22335, 47372, 21054, 33853, 43480, 39359, 59811, 53575, 49984, 29461, 24961, 33200, 58532, 65350, 64845, 62698, 39497, 48884, 42899, 60568, 46263, 42225, 63361, 50384, 30714, 39873, 32389, 43992], [53010, 59211, 27937, 20437, 52551, 43646, 21009, 41058, 63038, 41396, 47010, 47659, 34779, 50957, 60155, 50532, 56373, 47260, 57993, 53349, 47942, 54408, 42939, 19099, 38427, 17640, 34591, 35922, 60408, 45403, 38713, 62334, 28638, 60323, 46145, 65415, 53032, 59338, 26562, 30997, 46119, 48243, 54395, 39135, 59039, 38147, 41265, 55994, 45691, 29342, 34347, 19911, 61175, 29082, 25511, 28831, 39902, 39251, 26844, 50500, 24547, 61037, 60162, 54023, 35439, 55376, 47092, 49422, 31046, 17636, 37586, 41555, 37101, 22244, 26432, 41606, 42050, 64461, 60192, 44209, 52198, 54909, 24845, 62235, 62486, 35667, 55349, 48098, 34669, 42466, 39208, 30552, 26981, 55581, 30677, 35952, 49725, 53981, 47797, 62351, 63678, 37646, 42327, 22428, 46258, 59834, 63143, 56468, 25616, 42212, 17437, 60355, 27331, 30784, 22565, 50424, 44030, 22029, 26411, 61390, 29069, 39022, 41195, 53894, 52612, 35795, 44366, 59835], [27973, 26377, 47852, 32230, 51595, 36729, 33421, 30477, 50796, 35268, 25559, 48521, 35478, 60009, 61826, 55579, 49477, 42659, 61165, 55336, 62879, 56226, 62239, 36414, 63068, 31423, 38210, 18058, 24766, 28182, 41822, 36305, 42271, 40712, 17569, 30527, 31897, 34301, 44009, 22575, 16965, 24604, 51495, 52378, 64478, 30540, 45907, 45134, 46559, 47108, 35890, 60186, 38127, 33649, 26343, 47087, 47340, 37494, 54403, 53573, 31153, 34428, 57967, 45485, 19716, 61170, 28835, 45638, 65243, 65171, 17383, 47494, 51816, 63249, 44025, 40619, 45446, 39342, 34991, 36469, 49485, 17575, 65479, 19598, 25389, 23052, 59808, 35589, 20871, 33513, 33499, 28988, 55223, 24980, 65448, 24844, 25291, 32272, 27852, 54820, 55751, 55015, 31583, 58400, 24139, 29433, 54830, 36511, 28648, 18797, 63715, 31440, 47957, 41554, 52733, 37223, 56769, 36582, 38674, 47188, 46803, 52463, 20547, 61637, 42178, 30144, 38511, 30333], [27808, 31668, 25231, 46661, 37505, 47393, 41349, 36384, 43860, 32554, 33490, 20023, 30222, 23461, 25173, 62824, 49547, 20804, 40970, 25104, 56690, 26033, 16453, 44132, 32787, 16879, 28161, 53120, 21098, 28407, 26602, 33311, 35693, 35581, 42253, 58379, 58357, 56356, 22709, 63881, 58916, 62127, 54103, 26129, 59600, 55975, 37506, 18974, 54547, 29278, 46966, 48599, 56149, 64654, 58098, 33583, 40382, 58264, 45996, 50598, 57594, 40405, 44545, 65399, 63974, 47919, 21980, 30037, 33005, 41224, 42794, 17712, 33157, 22963, 55496, 31107, 49137, 35719, 58402, 57378, 26047, 30150, 64705, 34127, 20261, 28676, 39474, 31366, 25970, 18079, 65205, 25940, 49320, 39262, 26430, 36089, 56866, 21872, 38788, 22642, 34757, 31802, 61790, 16647, 31014, 17808, 31690, 60926, 32601, 35255, 46727, 23620, 58114, 62897, 39098, 59026, 32826, 51204, 29686, 54171, 49451, 21764, 35642, 42939, 24365, 43900, 41327, 24672], [58161, 32278, 53341, 22405, 19074, 43272, 34132, 20248, 30797, 25768, 47653, 45699, 52372, 35781, 56801, 24215, 41784, 52537, 52050, 24123, 63682, 45286, 53048, 55010, 40822, 41266, 25663, 61070, 35655, 28426, 40950, 24368, 42223, 25760, 17248, 52606, 17947, 52719, 60574, 27371, 53123, 52462, 59411, 42742, 47543, 17698, 37553, 63259, 58501, 60323, 40323, 30812, 31466, 23101, 33943, 40200, 46322, 37109, 53223, 54519, 47601, 21640, 40502, 33546, 43178, 26801, 64500, 57555, 65252, 19142, 56422, 57832, 36759, 46392, 35092, 38378, 48845, 24904, 20211, 62091, 31770, 62156, 53981, 24173, 45504, 26191, 50105, 63043, 22723, 19576, 59293, 56665, 49425, 50484, 30277, 44204, 22598, 36438, 33888, 18230, 43983, 63138, 33530, 32459, 20211, 63500, 46816, 39870, 18404, 59628, 24336, 34670, 46436, 29567, 37386, 44148, 17273, 35178, 24943, 27770, 27281, 47627, 28603, 55811, 61133, 26673, 55084, 49972], [52547, 49082, 19857, 18325, 28900, 59997, 49737, 49335, 22714, 47432, 51411, 25953, 59787, 18322, 17632, 48370, 45658, 28121, 40718, 43774, 56219, 21450, 55799, 30373, 41105, 53208, 52670, 32748, 51251, 42071, 49901, 55428, 53553, 57770, 40780, 63076, 31540, 18461, 55241, 40255, 50864, 58314, 41590, 58636, 27465, 52380, 43169, 57601, 30050, 27835, 27371, 51968, 16478, 23347, 46924, 33223, 65165, 59241, 28772, 38789, 42997, 55341, 30875, 40102, 57098, 56925, 59162, 57268, 20377, 62227, 39185, 64000, 23882, 36656, 43933, 64093, 34847, 30832, 35171, 47314, 17739, 44697, 27904, 37862, 41075, 21330, 45689, 61436, 65309, 32968, 24230, 30350, 31134, 46430, 22558, 64347, 51411, 57161, 39366, 28178, 52433, 54735, 58144, 38546, 27094, 17810, 42447, 39222, 23058, 63037, 34230, 17399, 36452, 31025, 44351, 39426, 39286, 56889, 62656, 41710, 19709, 22383, 45726, 49596, 59191, 63063, 52575, 49706], [16477, 59159, 18653, 54828, 19506, 36149, 31133, 46464, 60635, 34077, 55371, 34497, 19552, 48895, 21670, 44636, 30470, 31131, 47050, 36991, 52336, 39021, 33543, 64944, 45045, 47916, 25538, 34421, 49643, 30198, 27204, 17775, 54020, 63050, 53777, 20318, 42486, 18229, 32203, 64559, 31462, 44997, 18809, 31622, 38602, 54176, 29018, 20494, 50416, 41241, 32514, 19036, 22710, 28159, 43391, 43313, 16773, 56351, 61549, 18583, 24697, 41744, 51871, 57772, 37915, 37907, 35880, 57629, 44565, 29115, 59579, 31593, 47789, 18777, 55606, 24677, 21675, 25099, 27615, 40220, 46687, 61289, 57900, 57809, 60478, 35236, 33909, 42507, 35511, 48019, 27630, 27584, 35140, 18582, 61330, 53095, 40339, 18075, 55651, 64832, 19685, 24892, 24854, 25519, 28410, 65225, 47590, 27767, 31587, 61850, 61567, 21079, 26338, 60805, 43634, 60316, 44319, 30880, 64536, 49207, 29255, 53045, 19203, 17282, 60025, 58485, 57719, 55635], [63695, 27807, 19291, 30466, 34059, 60829, 21510, 49186, 64054, 37033, 42864, 24913, 39309, 18558, 52685, 39888, 43889, 28177, 21743, 19962, 18689, 38185, 51867, 26816, 27695, 44558, 46329, 18520, 54566, 49165, 43906, 52730, 40229, 61548, 44127, 40428, 47271, 34680, 63522, 62368, 57669, 60031, 48614, 23668, 16954, 64124, 51031, 65280, 42085, 47396, 58272, 24658, 63104, 45740, 29796, 45883, 52194, 54430, 16975, 58652, 53934, 22658, 56453, 27688, 53960, 57455, 61210, 46685, 25239, 43620, 38263, 48693, 24928, 25525, 30296, 19060, 63972, 41206, 19574, 60892, 32986, 51771, 43672, 64884, 50363, 52192, 20649, 17337, 50878, 24223, 53381, 55183, 52084, 56954, 30824, 26285, 58895, 54859, 34591, 47504, 41862, 29924, 16777, 42128, 43916, 26885, 48277, 16519, 19359, 55730, 18602, 37410, 64438, 19523, 30710, 33986, 44078, 22272, 37550, 23084, 50106, 30220, 39730, 18215, 30174, 50111, 32687, 20249], [39058, 45411, 57298, 37051, 46133, 35110, 35846, 42677, 41284, 60823, 54342, 62492, 64797, 36944, 52303, 51462, 36018, 22035, 44365, 19862, 20796, 26760, 57264, 49873, 55024, 18151, 41550, 24200, 61682, 33821, 35241, 18923, 51226, 22476, 50600, 59272, 30377, 61113, 49033, 57086, 25275, 17785, 28571, 58184, 37746, 63545, 53615, 26518, 34853, 52974, 17111, 29837, 53893, 20307, 48567, 51853, 26496, 36895, 34068, 49560, 24231, 51495, 45044, 24082, 44487, 51211, 34291, 28824, 27260, 28874, 59972, 42071, 36577, 29090, 60057, 60387, 29460, 22267, 40009, 47317, 45688, 27979, 39677, 63504, 32439, 35103, 27137, 27098, 48033, 51788, 25504, 28849, 48162, 45510, 60344, 44620, 24534, 37071, 63431, 44760, 53422, 49110, 18254, 26288, 47920, 56479, 45840, 31736, 42650, 31655, 25199, 29396, 22965, 46078, 52322, 33014, 29788, 17039, 61408, 36264, 43341, 48993, 54178, 65473, 35000, 34839, 18323, 53461], [35013, 20552, 60206, 21341, 30962, 39604, 32953, 59578, 45433, 22260, 31674, 46107, 47166, 46365, 18643, 57784, 36873, 61607, 32102, 62558, 25350, 35315, 55974, 47738, 44581, 52091, 62851, 63749, 39784, 21106, 29147, 22072, 54803, 31023, 53653, 65182, 30634, 50709, 53490, 30152, 54405, 55709, 33043, 21670, 35040, 36608, 27878, 54675, 30726, 56228, 64917, 23854, 17900, 39468, 20545, 33250, 22425, 42912, 48117, 45908, 33299, 30392, 18334, 20721, 36789, 49100, 34145, 31168, 55664, 24886, 19012, 64503, 22179, 54879, 29529, 35296, 25560, 17256, 24259, 50098, 36186, 16786, 61520, 58691, 20017, 33148, 38953, 55363, 24133, 25484, 43296, 24127, 52367, 29883, 38698, 61341, 35083, 62752, 28893, 50696, 63830, 19051, 51303, 44460, 53275, 54248, 35178, 41304, 23927, 61486, 42267, 28418, 46079, 38227, 51850, 44602, 55127, 47948, 58940, 19117, 56911, 63414, 51913, 26843, 44049, 48452, 61291, 29407], [33210, 18251, 35641, 28300, 44263, 49116, 40496, 36006, 55474, 58312, 54721, 61780, 24598, 58549, 25587, 51704, 35650, 48357, 52144, 51226, 26235, 25579, 55773, 51093, 50529, 40450, 17398, 30445, 48704, 31443, 32051, 62635, 20721, 26282, 36331, 37367, 58665, 19559, 56462, 48639, 63470, 25156, 17791, 25855, 36015, 28462, 47667, 24092, 43178, 29742, 52573, 47260, 31559, 64488, 63439, 41327, 28917, 55385, 39975, 25724, 56315, 44773, 47068, 40078, 48247, 37779, 34120, 27370, 36989, 25084, 47924, 63617, 21449, 49105, 64106, 35894, 47134, 17929, 54973, 40118, 38422, 58942, 34659, 38123, 54721, 54438, 52881, 24106, 34096, 43889, 41319, 40616, 57935, 31751, 59698, 43490, 60743, 24689, 47096, 35832, 48542, 21089, 51526, 46576, 18202, 25675, 50235, 21060, 42929, 25320, 58910, 54137, 35706, 24935, 49091, 63051, 39436, 16630, 46561, 47867, 22542, 40923, 40702, 64801, 17562, 50609, 47960, 30788], [57821, 55154, 39158, 35321, 31584, 63619, 64068, 53422, 31997, 55584, 30644, 59849, 19674, 44185, 32875, 59307, 34494, 44751, 48677, 38538, 56398, 26234, 47469, 17081, 17942, 28791, 28229, 28277, 24804, 41337, 16397, 40147, 40763, 31823, 57323, 52117, 54085, 59791, 33755, 35382, 40399, 51949, 23903, 18686, 60838, 45190, 27540, 29762, 22551, 24052, 48154, 41713, 25538, 30681, 65430, 63903, 60772, 47850, 31464, 54491, 23989, 41007, 47408, 30088, 16703, 41956, 23323, 60597, 34797, 48460, 41053, 35460, 52959, 58674, 54405, 40354, 63175, 31278, 51840, 29381, 40638, 29137, 50791, 18951, 29062, 34098, 64562, 27521, 60373, 17708, 47433, 33998, 52224, 43698, 23791, 36596, 46473, 49387, 36094, 26272, 31452, 39865, 20768, 42720, 55733, 37419, 19204, 21629, 48896, 48870, 49003, 49187, 19298, 57712, 58328, 41460, 55798, 20290, 57706, 31717, 51160, 21886, 62783, 55876, 61135, 27162, 19380, 63655], [21216, 47478, 31925, 46512, 22103, 34400, 29781, 24649, 46333, 35043, 45204, 41150, 58235, 19686, 25458, 24012, 23725, 27044, 39670, 22284, 23623, 45798, 63228, 22587, 22322, 64267, 50998, 17331, 40475, 20373, 61109, 58472, 30128, 49301, 49088, 41157, 29858, 20646, 45515, 39677, 61289, 59450, 44295, 51375, 44526, 42879, 60492, 32895, 40139, 64644, 47642, 39832, 59431, 34917, 40734, 28977, 54221, 20137, 27636, 61182, 59872, 52165, 25086, 47188, 64008, 47781, 62452, 63629, 58218, 50542, 27608, 19607, 53793, 27216, 55164, 57512, 30814, 61685, 16536, 48902, 57614, 21924, 42343, 44760, 20895, 37427, 20761, 63979, 47933, 36348, 21463, 48584, 46533, 24212, 58967, 35603, 34617, 24722, 27118, 43198, 23644, 41130, 31172, 55372, 51924, 53511, 31809, 43945, 63595, 47268, 40170, 58815, 21020, 20245, 19472, 48949, 64408, 64687, 44042, 55591, 52832, 49638, 42841, 19035, 19300, 35976, 33974, 29021], [53375, 21643, 44329, 50912, 24660, 40746, 19291, 48192, 17306, 64777, 21899, 27942, 27488, 33491, 40432, 32126, 51941, 26418, 38612, 57288, 25510, 60700, 49557, 55598, 39806, 23776, 24067, 29884, 17457, 28347, 44212, 29833, 42361, 45936, 17172, 41631, 27762, 28397, 63132, 42579, 49397, 43446, 18270, 58740, 20159, 23476, 39062, 55145, 43435, 53532, 24563, 18044, 51130, 62646, 51073, 48896, 25726, 63216, 19556, 43660, 31322, 37477, 27675, 58829, 38388, 52888, 57943, 25342, 46661, 64690, 16827, 56811, 35527, 18359, 25196, 60746, 29750, 52410, 23933, 48361, 30975, 57256, 34407, 47707, 64625, 48168, 20093, 35205, 28121, 58323, 45950, 19947, 24201, 59051, 29287, 43036, 43977, 55351, 28421, 24008, 31942, 17824, 32636, 29771, 17678, 52878, 18478, 26217, 57398, 38866, 37016, 57783, 40677, 43633, 57734, 42970, 30295, 18834, 35498, 45774, 26502, 59927, 34503, 62628, 22338, 62267, 29879, 22400], [48991, 23177, 63280, 24573, 17151, 53102, 33318, 22434, 40512, 44826, 35638, 54336, 64681, 27238, 49307, 63512, 29073, 39508, 62820, 24377, 65440, 62580, 59514, 65363, 16585, 56502, 47708, 24497, 59866, 17703, 38527, 36728, 37518, 55024, 30760, 34612, 60794, 25750, 25127, 23036, 35290, 31252, 40071, 40275, 34201, 62995, 18877, 29959, 45808, 44371, 56195, 25152, 55757, 49293, 24883, 32088, 34906, 47837, 20164, 19248, 19528, 41700, 41632, 32012, 35250, 24961, 61240, 58987, 17054, 37084, 42258, 46938, 47400, 23430, 39834, 21488, 20799, 32697, 61292, 34238, 21563, 43349, 46301, 23468, 20295, 44113, 62635, 58643, 60793, 24190, 37009, 28856, 58913, 17225, 46080, 64671, 48126, 32704, 36655, 31683, 63270, 38210, 17519, 47890, 62955, 41604, 29993, 65276, 33970, 30821, 29797, 35767, 36887, 21660, 18069, 28173, 64170, 49116, 65222, 26532, 47035, 39122, 50773, 20423, 24334, 47838, 30377, 24829], [36252, 52665, 59157, 25176, 38163, 49454, 43472, 58305, 32539, 56403, 64552, 55902, 34757, 35433, 55885, 36130, 30373, 29995, 44740, 35729, 43851, 24097, 22272, 40232, 50287, 45338, 59999, 26545, 38257, 52006, 48227, 59277, 30762, 24566, 57754, 52435, 60624, 54216, 37191, 60359, 36129, 18679, 52358, 31838, 38217, 20052, 65327, 24519, 60233, 56582, 40203, 53789, 65119, 22782, 37694, 48914, 21468, 18732, 59544, 47188, 26312, 57078, 44695, 20868, 20876, 53393, 64742, 29911, 53516, 31503, 53289, 37664, 17010, 28259, 38280, 41308, 39351, 46922, 48963, 43762, 35239, 20195, 51765, 50769, 27902, 49078, 21364, 27184, 53359, 63493, 42534, 30451, 56770, 53148, 34994, 51813, 17719, 18409, 30401, 25947, 22674, 33014, 32411, 41022, 52069, 62898, 57284, 53898, 65456, 60961, 25364, 46211, 34091, 50901, 44904, 33652, 43529, 20131, 61711, 52085, 42911, 44832, 18402, 55869, 35013, 43493, 59995, 47377], [41877, 64600, 30216, 52496, 31453, 64129, 25634, 48307, 22366, 52531, 47139, 49192, 26113, 57553, 24327, 26714, 29092, 64027, 49596, 24531, 27769, 40132, 62215, 25259, 19415, 26753, 28896, 63941, 47969, 44293, 40320, 62662, 59286, 40345, 61594, 49229, 36236, 41507, 32608, 55224, 46128, 22198, 61591, 44528, 24967, 21841, 25659, 60144, 36835, 31600, 29042, 44446, 51983, 21803, 62427, 24334, 58099, 19134, 43785, 42310, 44396, 59556, 52621, 18679, 62057, 25876, 18095, 54724, 41545, 35051, 31423, 41115, 53977, 27156, 28949, 54163, 47317, 24320, 30794, 24590, 49489, 26490, 43627, 47048, 36482, 33548, 54206, 33165, 61973, 40807, 55433, 34170, 16634, 28047, 46514, 40945, 41293, 36939, 43979, 37514, 45341, 61238, 18728, 51673, 50227, 53821, 23069, 22807, 35427, 53647, 36937, 60592, 19958, 31292, 36543, 19756, 39984, 21929, 53589, 56362, 58424, 34621, 31685, 36847, 60544, 24755, 58063, 22227], [56229, 57451, 42124, 48578, 63190, 30592, 40330, 59031, 55139, 27866, 17632, 24421, 22668, 26725, 50329, 43398, 52781, 23367, 61864, 40834, 38409, 24929, 22022, 29794, 37090, 56477, 28947, 19618, 26261, 19190, 62728, 20422, 41051, 61381, 52841, 24825, 30224, 55133, 17787, 38103, 51238, 54232, 20880, 18511, 34862, 17156, 39172, 27398, 38840, 25472, 27693, 43238, 40287, 49626, 65136, 62022, 18102, 38828, 55045, 55082, 43795, 25771, 35539, 56553, 53808, 36157, 52725, 32379, 59796, 63633, 31005, 31153, 33139, 55552, 24091, 37622, 29821, 55876, 56235, 46668, 41765, 51101, 41775, 47421, 22432, 28111, 33809, 50495, 28583, 26185, 26936, 51985, 56965, 16825, 52762, 38080, 18461, 16995, 42318, 25129, 42762, 62609, 48028, 61331, 40866, 61474, 29923, 51882, 47991, 41275, 19235, 64966, 30235, 43668, 23686, 63158, 52379, 53402, 35527, 44330, 19861, 30030, 25253, 65364, 31615, 43172, 19027, 27512], [26503, 44898, 35387, 51399, 57035, 52898, 20431, 27787, 28427, 63382, 19915, 52125, 46490, 33206, 36133, 49972, 57534, 63285, 38470, 48159, 37507, 22973, 63843, 50094, 41269, 61269, 30697, 60831, 50802, 23611, 34777, 49976, 20146, 47625, 45613, 50383, 40913, 31886, 26494, 64342, 16651, 17308, 45400, 63502, 24714, 20104, 33968, 16628, 64266, 56861, 46878, 49063, 53470, 60204, 63110, 38301, 58997, 57770, 32670, 59035, 48930, 44744, 29207, 53566, 43179, 48354, 53524, 64969, 20553, 29863, 25736, 64786, 31377, 37844, 28320, 53089, 51443, 59658, 43170, 57691, 19213, 38168, 43788, 60220, 29217, 26598, 27627, 53177, 39531, 54317, 40567, 37713, 28558, 17545, 44413, 60793, 61509, 50241, 61540, 41663, 19279, 33885, 42360, 37673, 51806, 33298, 46327, 23121, 56580, 53377, 47474, 44756, 49859, 16932, 19955, 52100, 45662, 19361, 61254, 45127, 17300, 60689, 55530, 50140, 64956, 28184, 25139, 46068], [60595, 51307, 49040, 20097, 51975, 42334, 61607, 23159, 44200, 26097, 56485, 37282, 38885, 16893, 19444, 25354, 32821, 48635, 58580, 22229, 65049, 49010, 36691, 51688, 35548, 39027, 62114, 64168, 34803, 24605, 19923, 58884, 48466, 52739, 61201, 64210, 64218, 53396, 23411, 41135, 17125, 26515, 40036, 36550, 39224, 63149, 23844, 60833, 34684, 30459, 51156, 16859, 27207, 64304, 48928, 49699, 57166, 54656, 63935, 63453, 44762, 27831, 32160, 23559, 64214, 55707, 54948, 44072, 61207, 60316, 22212, 33291, 31600, 31297, 17374, 29961, 56841, 17194, 46396, 47873, 50146, 29123, 34621, 56709, 52683, 17546, 34936, 47642, 23449, 54795, 43767, 52106, 54509, 61751, 43256, 35797, 53104, 28401, 52034, 33355, 53840, 51558, 25216, 20198, 58623, 42270, 64452, 36686, 45258, 19864, 34549, 62894, 41925, 58471, 42049, 36179, 53451, 45179, 36252, 26429, 65156, 52268, 30251, 40815, 34574, 61488, 31145, 51162], [22790, 31571, 35103, 37345, 34936, 25598, 29571, 47475, 61073, 23792, 57780, 61932, 56313, 61929, 28619, 24568, 41370, 17463, 47623, 39699, 37531, 20779, 41578, 39668, 29022, 20273, 44740, 37036, 19922, 46570, 19604, 55855, 49006, 24140, 18912, 36721, 44434, 53224, 50817, 24551, 41065, 30575, 36052, 62209, 47612, 39835, 35359, 49011, 46409, 20256, 49470, 20754, 53387, 22196, 26304, 27301, 55354, 46411, 57888, 53602, 52629, 31819, 40988, 39126, 29990, 51995, 32878, 28767, 34233, 30963, 28412, 57535, 60684, 20895, 63079, 27261, 35932, 22509, 60560, 36295, 37468, 28019, 49322, 55786, 16674, 34560, 22398, 61549, 35620, 61819, 52626, 32161, 29973, 46237, 35252, 26407, 42017, 60790, 40821, 41009, 21896, 24053, 37518, 61490, 24743, 53023, 17825, 27400, 19422, 47959, 18279, 37413, 40139, 47647, 26044, 53625, 28444, 56467, 63915, 63690, 62035, 31903, 26033, 37757, 22663, 63304, 60759, 35201], [22040, 39642, 19759, 26237, 56288, 64640, 42738, 43567, 49742, 29970, 55836, 52689, 30535, 48059, 26253, 49831, 43379, 55312, 22809, 21681, 59583, 52504, 26055, 29870, 39232, 28200, 27135, 55900, 55047, 63408, 63583, 36552, 24586, 28572, 20966, 35352, 18302, 33057, 45275, 46499, 32330, 19541, 52339, 21521, 25441, 25311, 52601, 53875, 53598, 44559, 25786, 44095, 57501, 44302, 43306, 31628, 43825, 44875, 48632, 62533, 34915, 50868, 55552, 26505, 63059, 17333, 28786, 32648, 19673, 58185, 36341, 26021, 53560, 25873, 47255, 28677, 19648, 47015, 46401, 52735, 29133, 61529, 16433, 28144, 49955, 45887, 19663, 35733, 58962, 35880, 40482, 57110, 36710, 53632, 42322, 60208, 49824, 19954, 36014, 27030, 19408, 42021, 17518, 61604, 21001, 52834, 63377, 64184, 24213, 46251, 41697, 18528, 45015, 17644, 65329, 60814, 44782, 48706, 54672, 44580, 38379, 16442, 25951, 47840, 21524, 46210, 45426, 58689], [38712, 56640, 52707, 41487, 53487, 40086, 17347, 52194, 42727, 49297, 50860, 35386, 31402, 49613, 50010, 63913, 30114, 63230, 30597, 19274, 32697, 17321, 27203, 19760, 64820, 31354, 31554, 24646, 43426, 43761, 38314, 24083, 22718, 52274, 17347, 62481, 53206, 62938, 24683, 26907, 55522, 47656, 52494, 52970, 59465, 25710, 34933, 40002, 50073, 18667, 46641, 19770, 17596, 59267, 56756, 56847, 34655, 51531, 56447, 53753, 48728, 24271, 34595, 38938, 41826, 56068, 18308, 53151, 61207, 64636, 37187, 65079, 63067, 21501, 26760, 19526, 47035, 18359, 19335, 19296, 27732, 27814, 30085, 51171, 40903, 58934, 47065, 27546, 44285, 52818, 39997, 20758, 56631, 19501, 62353, 44532, 25311, 46642, 28327, 42539, 62767, 22604, 34948, 60631, 34841, 38026, 19538, 41188, 54024, 52509, 51324, 48458, 62787, 28945, 23867, 63947, 41247, 24649, 47060, 33681, 56979, 62466, 41995, 64820, 33511, 31802, 20732, 52417], [29801, 52887, 60338, 63697, 29776, 43803, 58850, 32029, 26720, 35785, 60539, 56420, 54633, 16612, 34813, 37006, 32214, 41173, 34402, 62441, 56602, 56169, 63301, 58448, 24121, 20037, 34548, 61443, 28322, 61329, 63297, 32206, 63375, 63467, 44385, 35364, 23504, 50355, 27238, 20162, 37442, 38814, 64294, 19709, 19506, 21685, 35306, 50096, 29039, 22617, 31977, 36558, 24489, 31864, 34038, 32304, 28195, 33014, 46999, 43370, 50399, 45522, 58591, 16533, 60258, 56264, 44604, 62766, 62488, 52268, 37395, 58076, 30685, 60958, 54153, 21976, 63970, 41880, 25988, 40728, 32858, 20005, 36292, 37125, 22110, 35493, 20444, 58799, 20638, 16776, 55756, 52397, 53148, 56593, 60888, 19667, 34030, 43504, 58540, 37885, 39483, 49740, 40335, 39180, 46541, 45265, 37820, 63588, 27392, 35690, 26209, 32239, 43677, 62725, 17590, 31065, 42772, 36318, 25138, 34197, 45732, 45944, 28275, 39711, 35786, 30897, 55693, 37831], [48479, 60210, 30457, 41089, 59960, 38004, 50877, 29190, 35797, 39883, 60553, 36808, 44543, 33107, 60531, 20499, 61518, 40051, 28099, 37099, 26735, 59339, 55952, 47174, 19182, 59280, 34607, 22656, 64747, 28068, 43685, 64550, 42267, 28229, 24519, 21995, 27458, 29746, 17287, 40268, 58887, 57862, 51304, 32948, 44898, 28324, 21798, 63014, 21169, 31683, 47752, 35269, 30311, 43905, 31690, 63562, 64621, 28736, 19399, 46648, 22404, 29390, 19875, 37505, 48163, 36081, 41344, 53524, 56929, 33954, 23680, 23411, 34499, 56474, 34052, 17335, 36519, 43045, 38000, 44750, 29786, 23825, 59781, 32046, 57350, 44717, 57715, 40857, 24191, 27658, 30087, 43191, 21976, 28140, 26556, 18926, 47109, 29524, 61075, 64126, 55097, 49591, 17029, 45021, 36314, 28659, 45330, 55068, 60597, 40340, 22401, 56327, 27985, 46884, 30605, 17429, 47250, 36315, 19585, 54348, 52246, 18523, 21974, 42317, 55201, 20400, 56056, 32600], [24300, 49142, 29247, 41831, 37131, 33483, 44635, 57258, 62230, 16473, 63475, 59801, 60233, 44070, 58717, 48496, 20166, 62618, 25467, 23634, 41894, 57189, 64079, 19138, 59893, 49682, 38086, 62601, 46413, 42082, 61038, 52271, 42838, 52516, 61400, 26840, 47902, 48646, 64404, 52206, 53851, 25108, 20187, 20271, 64417, 50290, 55999, 21173, 41278, 17465, 51116, 58201, 56390, 61109, 62637, 25916, 24603, 31385, 48741, 41988, 23813, 52179, 20253, 59135, 43495, 44665, 54491, 41924, 51134, 56025, 48919, 63749, 54982, 35822, 63204, 48674, 23465, 62689, 41110, 47354, 65061, 49553, 16662, 21448, 50453, 52416, 32379, 21121, 43024, 48494, 53170, 45435, 26771, 44171, 31747, 43181, 63374, 30102, 51970, 63590, 50099, 34414, 24443, 58075, 43173, 35283, 41918, 46140, 63869, 28234, 64630, 61919, 29422, 25339, 65374, 40732, 53203, 28588, 44619, 30203, 59482, 49255, 17913, 43500, 55570, 50033, 34537, 59512], [45777, 32340, 51536, 42231, 36312, 30868, 51132, 60553, 26748, 47186, 63742, 49987, 21131, 44730, 39554, 50611, 27794, 41552, 17599, 48344, 51894, 52313, 35366, 23851, 23421, 59284, 63002, 16889, 28485, 25080, 58561, 17446, 24974, 24787, 36183, 42135, 59475, 51226, 27476, 18951, 32823, 19154, 34069, 55666, 36475, 40905, 42739, 58254, 35127, 48219, 19099, 16673, 33509, 31877, 43142, 25826, 34698, 36706, 19129, 46903, 45812, 46678, 60261, 45544, 54460, 16557, 62076, 39779, 51414, 54296, 38352, 56154, 49014, 64906, 61376, 39084, 63001, 54778, 36002, 34423, 57664, 21324, 43764, 58071, 31007, 56342, 56346, 46608, 61046, 62926, 64330, 17829, 64677, 16532, 24526, 43380, 46565, 54381, 53562, 62089, 56651, 64569, 24417, 59385, 41171, 48851, 27111, 22042, 37241, 42186, 33551, 58992, 51492, 19777, 19488, 44627, 47760, 34585, 61954, 48343, 34131, 47649, 54606, 43302, 26507, 20724, 27800, 28803], [42518, 46637, 19620, 54095, 46364, 54747, 64301, 19942, 57162, 50216, 57801, 31601, 42940, 34074, 36427, 27575, 59879, 60103, 39830, 40781, 18100, 29609, 20788, 38442, 39025, 30643, 40909, 54813, 41640, 41996, 44152, 29787, 51282, 29256, 18626, 53768, 40905, 63100, 52863, 21368, 59138, 62801, 35304, 17275, 52933, 34396, 55969, 41270, 23888, 48736, 41295, 62137, 39923, 24293, 26255, 19429, 27743, 31635, 18079, 40516, 25121, 22746, 43951, 50936, 52927, 42509, 63146, 44062, 22653, 64832, 64973, 26545, 29989, 32920, 24273, 31959, 63534, 52568, 49312, 32416, 29599, 20714, 60143, 39172, 19902, 39631, 46986, 25624, 39700, 44539, 60699, 24518, 22075, 59357, 38502, 41286, 30736, 48185, 51225, 51556, 58713, 47579, 22089, 40581, 50425, 28077, 60712, 54100, 24279, 53301, 44037, 55679, 38767, 49746, 31430, 49679, 54355, 39749, 37180, 31311, 57862, 50484, 32537, 44236, 26757, 29850, 57329, 45521], [45578, 24922, 52807, 16654, 52797, 57131, 60415, 57665, 38780, 55818, 36070, 55965, 28654, 31714, 43046, 32151, 45598, 60935, 50008, 48218, 64606, 41192, 42181, 43166, 38141, 25667, 18824, 27212, 48590, 35934, 47736, 29762, 52475, 51571, 53523, 54777, 17206, 23737, 60365, 46917, 54493, 19767, 33784, 45527, 52699, 39225, 56843, 47595, 29458, 33975, 62488, 46200, 20572, 43961, 54240, 36269, 62868, 62040, 34187, 42348, 58400, 43584, 56120, 56511, 24152, 16927, 40162, 65097, 56835, 24194, 26190, 33004, 34559, 28140, 39991, 36044, 24249, 41842, 19416, 61026, 17217, 40401, 23064, 51570, 44231, 58155, 60064, 25799, 60501, 39370, 61076, 24109, 44016, 24963, 26186, 48896, 60833, 22273, 36962, 23219, 47830, 48314, 63060, 38241, 26352, 38787, 55137, 45452, 54598, 52012, 53300, 35708, 59369, 35947, 60049, 34582, 62005, 43548, 25578, 46706, 61323, 44626, 45042, 24474, 54161, 49200, 58337, 25023], [32129, 50059, 39193, 17447, 43603, 58873, 39668, 30103, 52932, 27724, 37459, 41034, 32081, 24590, 26867, 50768, 21028, 37978, 57970, 43814, 65062, 25143, 52398, 41741, 26294, 41093, 36586, 40336, 60353, 64775, 61674, 29115, 62008, 49062, 22160, 28057, 52702, 18490, 30418, 49752, 64445, 41884, 30923, 56006, 30609, 59958, 39484, 58087, 41364, 30625, 23868, 41686, 42445, 30991, 37830, 45613, 33071, 64240, 38023, 60059, 29185, 41105, 18281, 34812, 38771, 28275, 23732, 54148, 24235, 36507, 31248, 32463, 23450, 54871, 60567, 21006, 34617, 29977, 55318, 21170, 62672, 22556, 64033, 32249, 48659, 54043, 50371, 62701, 65154, 31506, 22621, 34459, 59102, 28470, 41737, 65061, 41611, 46207, 26796, 58144, 58946, 52745, 25739, 32549, 56740, 55774, 29034, 39418, 58532, 39541, 54653, 36383, 36853, 32673, 16391, 61879, 64677, 64661, 57598, 33508, 53487, 42164, 43330, 50721, 53583, 59060, 42030, 21416], [57775, 61517, 43762, 31841, 41983, 32024, 48957, 31177, 52073, 28916, 16791, 46539, 35437, 18960, 46851, 18598, 31349, 17349, 19373, 21785, 20648, 28610, 57734, 33217, 37643, 34595, 43149, 17765, 49437, 45971, 35441, 38211, 38180, 62116, 63227, 25529, 24230, 21796, 49875, 46983, 45101, 61694, 51919, 30314, 21525, 60517, 42207, 37487, 57118, 59199, 31109, 65256, 50086, 62441, 34453, 34187, 52855, 40482, 64644, 40237, 54973, 27534, 63127, 52495, 62659, 30169, 31583, 17800, 28544, 30881, 53988, 62215, 27756, 30837, 17471, 36508, 28190, 53497, 57499, 50828, 42232, 45041, 33736, 54554, 38846, 38247, 31134, 53959, 42664, 27261, 64736, 30744, 18266, 41961, 53734, 32306, 32102, 60252, 19102, 54303, 54131, 55575, 21721, 22242, 50190, 43617, 18930, 63960, 35064, 53768, 61965, 22505, 28583, 64256, 41068, 52834, 22562, 21798, 51797, 48787, 45921, 46300, 31744, 37116, 21449, 40965, 51921, 28169], [63076, 22740, 48316, 59405, 60224, 44391, 17803, 29820, 21208, 61601, 61079, 42166, 59094, 47524, 27874, 56188, 26755, 31801, 42600, 20132, 48489, 28253, 57251, 38088, 56238, 52312, 46416, 16414, 60865, 57558, 35678, 29958, 57981, 22730, 16659, 27289, 44838, 64380, 19151, 25683, 48705, 49069, 23389, 27743, 24838, 30307, 35121, 44899, 20227, 23782, 22727, 21795, 20829, 27880, 17657, 26282, 58030, 31672, 57873, 39731, 46004, 27252, 20397, 53252, 30941, 35672, 28875, 44941, 65081, 20763, 63467, 29053, 17606, 36317, 38239, 17690, 52644, 43473, 34533, 22464, 23850, 45029, 56441, 18833, 58407, 59997, 39526, 47963, 52557, 56443, 20848, 61410, 56853, 25641, 63547, 25535, 32369, 19306, 32569, 27138, 59290, 37963, 41062, 46246, 17378, 43925, 24326, 52612, 40749, 55189, 44477, 27697, 20997, 59842, 59021, 38991, 60692, 30002, 35574, 58988, 28016, 23453, 58311, 19434, 43956, 52364, 35091, 63329], [19195, 45236, 33051, 34739, 30487, 59687, 29412, 50782, 37234, 40250, 57209, 37635, 39909, 42525, 62054, 64504, 48219, 17177, 31079, 17543, 36619, 64089, 22615, 49016, 39775, 17407, 34064, 64251, 43863, 18652, 36164, 47303, 46219, 29186, 49302, 49972, 25625, 29647, 55713, 63679, 32553, 47277, 63235, 21276, 61345, 28939, 63354, 27566, 54211, 36702, 44535, 60630, 46940, 20734, 64753, 56630, 56456, 64960, 21579, 34119, 27421, 58222, 28171, 46312, 38805, 17720, 48580, 26899, 62237, 24981, 55362, 33734, 40545, 37891, 49318, 36296, 35789, 17208, 40480, 35577, 31346, 35093, 35912, 59874, 34792, 47423, 44657, 37325, 53014, 64247, 25228, 61297, 30581, 33490, 56589, 54821, 54244, 47582, 56197, 27213, 22359, 45509, 52075, 28857, 56521, 30477, 16874, 45729, 28909, 25277, 49543, 54626, 58864, 58478, 35559, 35787, 31543, 19129, 27906, 51253, 47315, 45236, 33871, 54080, 54312, 45561, 43803, 37933], [41112, 63552, 32205, 20109, 16730, 16772, 20944, 17048, 53446, 47310, 30661, 20015, 17798, 40787, 56408, 65513, 59655, 18174, 45988, 16482, 21987, 34107, 32882, 22316, 37010, 60170, 28389, 20632, 54504, 53135, 49629, 63433, 23204, 51824, 53294, 38455, 34372, 58970, 34922, 59362, 16447, 28847, 50950, 24844, 19422, 26570, 33426, 36039, 51194, 61507, 34572, 35240, 30144, 22692, 23263, 33783, 61234, 44450, 31148, 37786, 28184, 56648, 22917, 48539, 26597, 47974, 45356, 59813, 50075, 17771, 39844, 21450, 52510, 56552, 22209, 18674, 53484, 51285, 20174, 24440, 58596, 33722, 27403, 19935, 21156, 58770, 48244, 54577, 44200, 19585, 50255, 63954, 42214, 28759, 51546, 49145, 49725, 20670, 24770, 48453, 25670, 48006, 16905, 37110, 27447, 26450, 57585, 50691, 28799, 35155, 61321, 28447, 57700, 54694, 46700, 52065, 28920, 33176, 47167, 28879, 18271, 41969, 56213, 30478, 28997, 50686, 56797, 39871], [62788, 28865, 52261, 42040, 20294, 16604, 57769, 62592, 23035, 17262, 18311, 59989, 34292, 18409, 27934, 44475, 37642, 31435, 55617, 55416, 18253, 49130, 17237, 57635, 51050, 45830, 38010, 19934, 65052, 26890, 56315, 23481, 47107, 38267, 23841, 26418, 26766, 50980, 56271, 23750, 42705, 61609, 38583, 59116, 50493, 46380, 55448, 16821, 41648, 60796, 54183, 45184, 38210, 23241, 18735, 19170, 57009, 47521, 34419, 52045, 62765, 57552, 54629, 17742, 22656, 54592, 40270, 39231, 28975, 20909, 61097, 34485, 56880, 20890, 58686, 21318, 35186, 65163, 29679, 40817, 55614, 38963, 49871, 18204, 37881, 53085, 16409, 40123, 21953, 36622, 49346, 40672, 60104, 50689, 57377, 50493, 54881, 59918, 49734, 47881, 24073, 57487, 64137, 58969, 29149, 21366, 28298, 26206, 40004, 17748, 28924, 53197, 47504, 16753, 36983, 38152, 18051, 60692, 39349, 56281, 33470, 30361, 52860, 60606, 16885, 61730, 46724, 25228], [17122, 60277, 51697, 21465, 64796, 63883, 23812, 22735, 49729, 34382, 47072, 20242, 62040, 29579, 55448, 27978, 41992, 60866, 51641, 24397, 45295, 21469, 42428, 28698, 43032, 16729, 59842, 40576, 22198, 44594, 24451, 29531, 63498, 56647, 30301, 28644, 28385, 60941, 48786, 39908, 26351, 31494, 64223, 37446, 48252, 45491, 59672, 37578, 48239, 19708, 36228, 28856, 52883, 52528, 40406, 65364, 21413, 56194, 17047, 63340, 22684, 39499, 57399, 55260, 37105, 55370, 28516, 27905, 57566, 47062, 21838, 36465, 60847, 63583, 53716, 42771, 61240, 37296, 18983, 27663, 47368, 54516, 41019, 55620, 59602, 45212, 40431, 21710, 57745, 26825, 26167, 34023, 57411, 59986, 63833, 50869, 28555, 53830, 42808, 61275, 48447, 27346, 17894, 53368, 50507, 33888, 28266, 48810, 64916, 42366, 20720, 36054, 18814, 56763, 50475, 48470, 18165, 63626, 56442, 46947, 29175, 41425, 52977, 42442, 35416, 56517, 32603, 37715], [19664, 34904, 40904, 33172, 47021, 17756, 28243, 23215, 33730, 55580, 38900, 43082, 43734, 49588, 56797, 43819, 19889, 30034, 43097, 20596, 23618, 23435, 42538, 64598, 33351, 39766, 20028, 40781, 40356, 24398, 62237, 19275, 42128, 18052, 27653, 51385, 16605, 45110, 25379, 26318, 54101, 22420, 62995, 37338, 27400, 59934, 20977, 39997, 60690, 55337, 55710, 48686, 29383, 48178, 30190, 45062, 34929, 29038, 38468, 18424, 47592, 37639, 51011, 47590, 38794, 36659, 46504, 63734, 25494, 43567, 41461, 21742, 24855, 35011, 37190, 38758, 22244, 60759, 26326, 51111, 24949, 43526, 40891, 60413, 42419, 20680, 49666, 34783, 19535, 29028, 47999, 36840, 25613, 31514, 54366, 25505, 48502, 38096, 33803, 59224, 31318, 31699, 23321, 32594, 24262, 24644, 19083, 17027, 53290, 61942, 49729, 43509, 58991, 53455, 24740, 42851, 54511, 21033, 31187, 45192, 40938, 25657, 51621, 51701, 23828, 26836, 53671, 33030], [43587, 63360, 25124, 50610, 41016, 43626, 49199, 29199, 50849, 46773, 62852, 63955, 23017, 52093, 37909, 18164, 20725, 34433, 60261, 63827, 60087, 39384, 33962, 17359, 19848, 50501, 20346, 60659, 55034, 49133, 19267, 53447, 37665, 35752, 32975, 27018, 48922, 47707, 36550, 30375, 18095, 43180, 37714, 42531, 36742, 56948, 62347, 37748, 53558, 18857, 52626, 29869, 59167, 59536, 39648, 48767, 33237, 63787, 51343, 37792, 43175, 17015, 22234, 60446, 64454, 35736, 27207, 24656, 22316, 57675, 59059, 30400, 18852, 27828, 23641, 53076, 41517, 53095, 18349, 49823, 47999, 35787, 26520, 44074, 64150, 58247, 27494, 46868, 20539, 18992, 45041, 45846, 31505, 63546, 20420, 20041, 51262, 49040, 53498, 33347, 34667, 20588, 23687, 22523, 60767, 23782, 30839, 56067, 59318, 24655, 33687, 28807, 49775, 42180, 50779, 27517, 26189, 21437, 63690, 50146, 49677, 27683, 48494, 42723, 53280, 48979, 34849, 49131], [44761, 17925, 61847, 62914, 30389, 55822, 27806, 17544, 64122, 42480, 39412, 34483, 47618, 17232, 34770, 57952, 23723, 30582, 50789, 25915, 38666, 22117, 35418, 45226, 23069, 55379, 64183, 48195, 45553, 47383, 21486, 37353, 54570, 37740, 64615, 57290, 23651, 40183, 40334, 26772, 25764, 56749, 29514, 60567, 46480, 33489, 52220, 50941, 34444, 16737, 26617, 47688, 33082, 58951, 27494, 32370, 31882, 49119, 62424, 55400, 62132, 63494, 49234, 50364, 65329, 45841, 65171, 64612, 53995, 19765, 44404, 54926, 41600, 31726, 37635, 37719, 40154, 26699, 38630, 60276, 19114, 61497, 32826, 35480, 37835, 45359, 55940, 41604, 33872, 18406, 60704, 48849, 25341, 43251, 20175, 48150, 40481, 22812, 56025, 37137, 29444, 29853, 48153, 63088, 59018, 23280, 32926, 64316, 35924, 21175, 62028, 55577, 58426, 50554, 58562, 21472, 42455, 35105, 38194, 33514, 63229, 29499, 59453, 30870, 51596, 22683, 64721, 18739], [19045, 54488, 27326, 17619, 46949, 22606, 51719, 34773, 21435, 39501, 42052, 42977, 53410, 26545, 32424, 22002, 29303, 28756, 49698, 31739, 22245, 26564, 46080, 30990, 48372, 64234, 36327, 54566, 61237, 37853, 48306, 35050, 37332, 62856, 38954, 24364, 59305, 55329, 63715, 52779, 24887, 19594, 31120, 47159, 23066, 60233, 20362, 57284, 21204, 38673, 38279, 54600, 54946, 48834, 51637, 64888, 41161, 52837, 32288, 63634, 31145, 56766, 23442, 36875, 52326, 42389, 57958, 53181, 37759, 45897, 35730, 51469, 64170, 51644, 20476, 56546, 28224, 49632, 42014, 44117, 49039, 37191, 50963, 63252, 46212, 63415, 61074, 20588, 33782, 47980, 48349, 37179, 17712, 46170, 28172, 63284, 63091, 37005, 31361, 24924, 40123, 36792, 59353, 17632, 61721, 55506, 43957, 54943, 62141, 37933, 57072, 17485, 57136, 49720, 21185, 21074, 31896, 64265, 46707, 55252, 56765, 45560, 42992, 28817, 55077, 63780, 17033, 54439], [34273, 31689, 19756, 17515, 39542, 55149, 61276, 52663, 56754, 45839, 42226, 19606, 50842, 61873, 44480, 39569, 29178, 24075, 65401, 35045, 64476, 38438, 25740, 41354, 31995, 39730, 17427, 49297, 59475, 26737, 35587, 37020, 33420, 61841, 57352, 36927, 47589, 43739, 50532, 59890, 64688, 51246, 27422, 44840, 65251, 23282, 64287, 34671, 62490, 42216, 63441, 20778, 55964, 23285, 24107, 54337, 31436, 63155, 51004, 65214, 33918, 24458, 53639, 55570, 30221, 60032, 22399, 44763, 47895, 17849, 31351, 42805, 33275, 47756, 21581, 54780, 63437, 38726, 62106, 56746, 27818, 64459, 62694, 56088, 21649, 31616, 63189, 58034, 41532, 57413, 65398, 49826, 58320, 26227, 45655, 64024, 36752, 52799, 40229, 39831, 41991, 33200, 35778, 42819, 29645, 48864, 24647, 63522, 46571, 48565, 44287, 62079, 58578, 32711, 51520, 57723, 45292, 62662, 63643, 22547, 30969, 32610, 64661, 42515, 36539, 36914, 65462, 17645], [64120, 56646, 29479, 59409, 37709, 23912, 26509, 26278, 28246, 39184, 30681, 27446, 59941, 64583, 61624, 48695, 45613, 48261, 47594, 58190, 48655, 17934, 18950, 65419, 59828, 33354, 24481, 58094, 30175, 40403, 60783, 33458, 37241, 57860, 64373, 27621, 22075, 30481, 57023, 62308, 24045, 20416, 61925, 23647, 21005, 45787, 18656, 48130, 28413, 19460, 44215, 65523, 22595, 39292, 36063, 62202, 57126, 24202, 20493, 53723, 50935, 20026, 60672, 37412, 43694, 31511, 54045, 58165, 64544, 35135, 47056, 55111, 24536, 23229, 32882, 33789, 30515, 38477, 50574, 52177, 31511, 36113, 46176, 59581, 37273, 20299, 41901, 27721, 46041, 35023, 49944, 16977, 31014, 61658, 18515, 18044, 52346, 30437, 37563, 25216, 43536, 18175, 36426, 25233, 20393, 45744, 50000, 27102, 56676, 27871, 23176, 55023, 56665, 35049, 17102, 49931, 22862, 50010, 51912, 54981, 30382, 64327, 43552, 62317, 27387, 45051, 22637, 18816], [42010, 17501, 59403, 26099, 46454, 44721, 47439, 38229, 45778, 55744, 58459, 40464, 23190, 39108, 57282, 23329, 45497, 49142, 26571, 30653, 57248, 50199, 63349, 43383, 23064, 25204, 18374, 54172, 41986, 49687, 21005, 43323, 26629, 60376, 22240, 35477, 55971, 48699, 28241, 16612, 18569, 26251, 63663, 29984, 50404, 40387, 36022, 34767, 35852, 21050, 38049, 38086, 62608, 58358, 58890, 19481, 43007, 55052, 35447, 46843, 35815, 47166, 29247, 31575, 41218, 16965, 48568, 49446, 35189, 28373, 44147, 21508, 33206, 45954, 50877, 34908, 50413, 59165, 24112, 38386, 57226, 64628, 48818, 43080, 24597, 33409, 24338, 54931, 50374, 48143, 17680, 59716, 62176, 35426, 16526, 41495, 38266, 24820, 38309, 46903, 23007, 29659, 23358, 28403, 32225, 44822, 33134, 65176, 51676, 22132, 40940, 54920, 26992, 41025, 46432, 19243, 64455, 41431, 40248, 35048, 39106, 53735, 51670, 36502, 56599, 54994, 17255, 49308], [56003, 28863, 43324, 32223, 19881, 35074, 45457, 22809, 36043, 60006, 18513, 30815, 42132, 50025, 45555, 32295, 19548, 34836, 18293, 51481, 62550, 35962, 16913, 64909, 17960, 43299, 39421, 25246, 65120, 26056, 57372, 38239, 17798, 65206, 38316, 64035, 21686, 23152, 48043, 57472, 58113, 62512, 47876, 17762, 64262, 27396, 41748, 52161, 26957, 20265, 35504, 27372, 51473, 33558, 48263, 24244, 59499, 58563, 61390, 32149, 56494, 50882, 27823, 51689, 38786, 26590, 52780, 29575, 43722, 47247, 30057, 52021, 53898, 20181, 30108, 24301, 28828, 61417, 65228, 60847, 18683, 26375, 30233, 63309, 55246, 63822, 48003, 60656, 33313, 17620, 26461, 25603, 29140, 20672, 59385, 30272, 43611, 45688, 58332, 55258, 55204, 47828, 62329, 64403, 19391, 56903, 36604, 20997, 31512, 54193, 36168, 48583, 51794, 49986, 52613, 21622, 27954, 55425, 35568, 32334, 51410, 34417, 52718, 22601, 63040, 46451, 49155, 62636], [53862, 35362, 64093, 17584, 22160, 17605, 64755, 20369, 45881, 48411, 16787, 60668, 31127, 24805, 28964, 51703, 24397, 57702, 35982, 52815, 39006, 36748, 57904, 22646, 34739, 62350, 53821, 59952, 57904, 62146, 30145, 63743, 25039, 55065, 53314, 25490, 49658, 31042, 59354, 22546, 19516, 40151, 38581, 55055, 39263, 30699, 49976, 56549, 48877, 25531, 22058, 19830, 37337, 27651, 55240, 29745, 48037, 60640, 39248, 33930, 29521, 53813, 30880, 19812, 43084, 52719, 41728, 53137, 59665, 50912, 58336, 27969, 22308, 51640, 53594, 36195, 30990, 55113, 62568, 37136, 19930, 30723, 38458, 46174, 39505, 31849, 61785, 21065, 40539, 20797, 53528, 53657, 43511, 59130, 55616, 35733, 37977, 63511, 53937, 20600, 28761, 58685, 23975, 48645, 39327, 21289, 29373, 29288, 27844, 27938, 24763, 47206, 31889, 19815, 41440, 45363, 49654, 51173, 55774, 58927, 60345, 53788, 26491, 19887, 58527, 30301, 25896, 46330], [25019, 29347, 33156, 18060, 24908, 57013, 58868, 46921, 27275, 60900, 30275, 51049, 46947, 63707, 55210, 49763, 33974, 34887, 50987, 23624, 19356, 59935, 34163, 40097, 41752, 35630, 30189, 25382, 41125, 29852, 62746, 54991, 30737, 20146, 27294, 60303, 33401, 40667, 59116, 31587, 20937, 51323, 34005, 26147, 65112, 45255, 47168, 24847, 25432, 30539, 54420, 39946, 18850, 51249, 24803, 55171, 32868, 24194, 32143, 61290, 63624, 29929, 46564, 57109, 57639, 54450, 52962, 45548, 16699, 58607, 42442, 45229, 45037, 36654, 56668, 36652, 26526, 53913, 40390, 62430, 63331, 28401, 45939, 48401, 31811, 52273, 31457, 52309, 43191, 60537, 24855, 63425, 38336, 63023, 19804, 65223, 26400, 32775, 23314, 58154, 26674, 24075, 19172, 25208, 23747, 48059, 19582, 36595, 39749, 39018, 54565, 43669, 63752, 33835, 36385, 50670, 38991, 56245, 54877, 50928, 35733, 62724, 19290, 34396, 54657, 49545, 55577, 25378], [17368, 57005, 59496, 56142, 34745, 42450, 32542, 48252, 61607, 17312, 39189, 41345, 54681, 45244, 35854, 45976, 43300, 60442, 56733, 38193, 65078, 35160, 54125, 29899, 51805, 24827, 60593, 29513, 23875, 41292, 36970, 61194, 37208, 35647, 34084, 55311, 60757, 28303, 49400, 47384, 26747, 35181, 24012, 31928, 20447, 40380, 47634, 51690, 50350, 63796, 46320, 62256, 19047, 56428, 20791, 48811, 64980, 23901, 64085, 62348, 51301, 46371, 42142, 42805, 49527, 64666, 55853, 55561, 22842, 61677, 61241, 38667, 46851, 17313, 28752, 27725, 19821, 42970, 34071, 53304, 54679, 63968, 57968, 58773, 46444, 59317, 41324, 62068, 62506, 31301, 56819, 25693, 55155, 31566, 23199, 43050, 42587, 25797, 57900, 51165, 43999, 49673, 49272, 37811, 22510, 34497, 60938, 32071, 63826, 61998, 28281, 20718, 30351, 50731, 24467, 58327, 47045, 61953, 56876, 38240, 58151, 58983, 52083, 27731, 30942, 46734, 52119, 49356], [19676, 54623, 22700, 64604, 38572, 59607, 17352, 37054, 19675, 59547, 18638, 46836, 40293, 21978, 42013, 18727, 27732, 56928, 24164, 49930, 42090, 32921, 62122, 57141, 56549, 63105, 33605, 34913, 24554, 18372, 16764, 47226, 49358, 19929, 52401, 59628, 47834, 38419, 29889, 63913, 61925, 65457, 46988, 60461, 25949, 39850, 26968, 39418, 53643, 40583, 35079, 20669, 34981, 46892, 49424, 32387, 51708, 62053, 47915, 29266, 40091, 40069, 34795, 39300, 60932, 57249, 32548, 43280, 23264, 41040, 20305, 49907, 32537, 33841, 64621, 27029, 59204, 25356, 43362, 24419, 58991, 57974, 59743, 31035, 47353, 29017, 36167, 19478, 40352, 31469, 20245, 41301, 57423, 32996, 56580, 61783, 44763, 28589, 37301, 23198, 55297, 28984, 28212, 22457, 41149, 25839, 45170, 21489, 50492, 34854, 63455, 56348, 44330, 47373, 29366, 25018, 46707, 19516, 43261, 63843, 21341, 31078, 31169, 28681, 23785, 19431, 51193, 44656], [36745, 46997, 65055, 32052, 46549, 22692, 35002, 65494, 30284, 45061, 57548, 21968, 30406, 36775, 56066, 25964, 27786, 56178, 27086, 46165, 52892, 38015, 54240, 33944, 59896, 33035, 42006, 25119, 37566, 19484, 63589, 28785, 60675, 64219, 25455, 31417, 42388, 27992, 53842, 17329, 55299, 35702, 34520, 64359, 21373, 51286, 31984, 60157, 25307, 64435, 27006, 54572, 20087, 49730, 29430, 57949, 35021, 40980, 26157, 37174, 17289, 26241, 31863, 38297, 42276, 37758, 20582, 49835, 28763, 29331, 17780, 35664, 54441, 46469, 23245, 43086, 24490, 22605, 52739, 19225, 54746, 61494, 64114, 21376, 31559, 58361, 46048, 24107, 40695, 38592, 45043, 62528, 24717, 41047, 58305, 44118, 24307, 49667, 41581, 46197, 52069, 61338, 34185, 63413, 49489, 37240, 34698, 36627, 55738, 34244, 27687, 58107, 17877, 28934, 59712, 48694, 59157, 43878, 62443, 64468, 35849, 55855, 38109, 47050, 30582, 64421, 18369, 16473], [49549, 56729, 16511, 30774, 58571, 56715, 61990, 53443, 17768, 23106, 21024, 32976, 42093, 41954, 16510, 48015, 40175, 59939, 43067, 40726, 30268, 37679, 54528, 51343, 27124, 53375, 65049, 41244, 30332, 59430, 21796, 36164, 50891, 56644, 40699, 17471, 46232, 27843, 34486, 21480, 62012, 61661, 62031, 53314, 45452, 37477, 63697, 37820, 33261, 64032, 52096, 30460, 61341, 62996, 49191, 47883, 21983, 32383, 36444, 17868, 33260, 46046, 33482, 31246, 17203, 30691, 45170, 57867, 25469, 18861, 24819, 55293, 53221, 60973, 63645, 24530, 20718, 64580, 17413, 43586, 65421, 54291, 22918, 56228, 62426, 45511, 62156, 45246, 35000, 30987, 40223, 35464, 63055, 20167, 44301, 31742, 56075, 38540, 22376, 27203, 54729, 23895, 40679, 33151, 36568, 33561, 61023, 25873, 19599, 43840, 33353, 40269, 39715, 30986, 20275, 46579, 21472, 36044, 27108, 43967, 48475, 55585, 18399, 56423, 47371, 18260, 36322, 57919], [32589, 60554, 31591, 25819, 33560, 30495, 35977, 42210, 19495, 16969, 19238, 43898, 19337, 25294, 24348, 39538, 19687, 59879, 54031, 31625, 53124, 57706, 47974, 42237, 33091, 51824, 39455, 60975, 44761, 53590, 37202, 20866, 43687, 23352, 41921, 46164, 54301, 45024, 48752, 33488, 16469, 23477, 45880, 47301, 43950, 57460, 55377, 63527, 25621, 49052, 44491, 45696, 54659, 53080, 43547, 45850, 33563, 29513, 41015, 35736, 44046, 45342, 27623, 47050, 24222, 24917, 20255, 29804, 53588, 54781, 56907, 57538, 61618, 59958, 53726, 50269, 37885, 18955, 61073, 60998, 61225, 35822, 30415, 33055, 25633, 23512, 23509, 65219, 19637, 28405, 19888, 61587, 22211, 51489, 56658, 61275, 20081, 51156, 17281, 41646, 49225, 58179, 55302, 44886, 49025, 19024, 59411, 38425, 41236, 32124, 35759, 33858, 19162, 50298, 17763, 17280, 56860, 49981, 61851, 54866, 30476, 60629, 45505, 28497, 24399, 42164, 52941, 46421], [30544, 20320, 17721, 26161, 34552, 36646, 23867, 50428, 43384, 62690, 61097, 29951, 57135, 53220, 56466, 27196, 29430, 52289, 65096, 47686, 49360, 38470, 40514, 31877, 42338, 17235, 38510, 21820, 48840, 40661, 63000, 44467, 51580, 19901, 19105, 28225, 47349, 30267, 54809, 45029, 17378, 45605, 52945, 19308, 18983, 38776, 43019, 50123, 39367, 61975, 40029, 61384, 65392, 37241, 55084, 49625, 59799, 44190, 37706, 39853, 32818, 22830, 48737, 59915, 50215, 23237, 31326, 22437, 29494, 49823, 55614, 44739, 41049, 38504, 40386, 38989, 30623, 52521, 33420, 42690, 46663, 28590, 56809, 65120, 23853, 50789, 25105, 37140, 62800, 47469, 42051, 41427, 45255, 59626, 50066, 26605, 16812, 64564, 56528, 53896, 33007, 45538, 60467, 52788, 34243, 39525, 35602, 37238, 28689, 65375, 45325, 63971, 59446, 35211, 35291, 60957, 53193, 56205, 41053, 42981, 44365, 24158, 31810, 18171, 60351, 46921, 63855, 30461], [59249, 38992, 57968, 30426, 29063, 22435, 65162, 63815, 18887, 51569, 43066, 38592, 59772, 17637, 41296, 58829, 18841, 47517, 39917, 38661, 60322, 49987, 32845, 37384, 28766, 41393, 25181, 48253, 32254, 29808, 62958, 48642, 20800, 32443, 20263, 18693, 58288, 49689, 30333, 17427, 61098, 23044, 23224, 32877, 20167, 23627, 44349, 17517, 25353, 36059, 21059, 55087, 49494, 31333, 54478, 29820, 49240, 42285, 51536, 29235, 32741, 65022, 35767, 45805, 63868, 63045, 31070, 45808, 24402, 44754, 55242, 59423, 36186, 38366, 50482, 27671, 17115, 17760, 53413, 31032, 47759, 41027, 54197, 51807, 20387, 46592, 57672, 59376, 41938, 28247, 38809, 52842, 33504, 35505, 43522, 19619, 47020, 45653, 55385, 20388, 46592, 59562, 40280, 55163, 24338, 55880, 25947, 16702, 51870, 64729, 46679, 34318, 58606, 51266, 22274, 34955, 48413, 61900, 62103, 57484, 38881, 25193, 27995, 58612, 56616, 49712, 54888, 40103], [38312, 49887, 59680, 62678, 63707, 47776, 17255, 36568, 51377, 49255, 58807, 52980, 19880, 55740, 52404, 34384, 44685, 56903, 60825, 56916, 59776, 48337, 49392, 39962, 48471, 45945, 36265, 42438, 30526, 21704, 45257, 24653, 42469, 38007, 58785, 63646, 52250, 36031, 44527, 41726, 57226, 34371, 63122, 51730, 57394, 16880, 21168, 19013, 17693, 27305, 64257, 65274, 32710, 32757, 46955, 27655, 45305, 51306, 62147, 42709, 17237, 40381, 55137, 39865, 37694, 59153, 33143, 53101, 19580, 59273, 29051, 64332, 47853, 55209, 33474, 32087, 64504, 27179, 34218, 37253, 27908, 20058, 34440, 62832, 59296, 30610, 57465, 22304, 55858, 27652, 47316, 34170, 27754, 57800, 55311, 38153, 32637, 51758, 22669, 64695, 41439, 61737, 21693, 62098, 25950, 17461, 36603, 17805, 20007, 52192, 36888, 52037, 30681, 45244, 60956, 21487, 58481, 21690, 64611, 41303, 39448, 46978, 40184, 62163, 47890, 23928, 45160, 24147], [25231, 54187, 33338, 29326, 23101, 65345, 38194, 22900, 32886, 29413, 34270, 22263, 48453, 45286, 38101, 28159, 20859, 25671, 57063, 53813, 26108, 47156, 38269, 64044, 44804, 26458, 29081, 31926, 17933, 16701, 27161, 32289, 57106, 30338, 23258, 60698, 16451, 36820, 49612, 47495, 41742, 47344, 23513, 47755, 60434, 21162, 28121, 40439, 30055, 57447, 34075, 20229, 62636, 63857, 50909, 23742, 24219, 62757, 23940, 58916, 35886, 43178, 49638, 56662, 40852, 47517, 55709, 18075, 61872, 34385, 55254, 24718, 51689, 60104, 43373, 19092, 38547, 32540, 30592, 56178, 31773, 53957, 22673, 40689, 30956, 55532, 63951, 26769, 34114, 27427, 49976, 42677, 59755, 22844, 51081, 42020, 31750, 54357, 44057, 17433, 62303, 65124, 58945, 38925, 51759, 16999, 26330, 50586, 50184, 38423, 55089, 42640, 42202, 56506, 30333, 55405, 35374, 58222, 49107, 55897, 45065, 59569, 24914, 40074, 24214, 54747, 29577, 61518], [45699, 23265, 35990, 56505, 44230, 47390, 26709, 38448, 36524, 35973, 20643, 38018, 48148, 39187, 43055, 24993, 31568, 24687, 42148, 35277, 62147, 48495, 19706, 42979, 25182, 35751, 17451, 37248, 16539, 65067, 55674, 27148, 21386, 65260, 30524, 45567, 38250, 35218, 51425, 23241, 49669, 49074, 63900, 61075, 34062, 44920, 35624, 57735, 52003, 22562, 59758, 53430, 42082, 52353, 30947, 57312, 26198, 22131, 44325, 61077, 20889, 43582, 40187, 56635, 18395, 61920, 47147, 56130, 55462, 20626, 54099, 25500, 18872, 44444, 22022, 53166, 21342, 21353, 21138, 22782, 42467, 52715, 51493, 31803, 18802, 59742, 19138, 48391, 49370, 56751, 19466, 24667, 28544, 33936, 28077, 33721, 27861, 49898, 62160, 43617, 32985, 58244, 21864, 60756, 29715, 22998, 24934, 37014, 50157, 56679, 22423, 21852, 44493, 61694, 28398, 64143, 36352, 55597, 57329, 41641, 62304, 40052, 53156, 29649, 48452, 30296, 61886, 63601], [22970, 31243, 56019, 60783, 47303, 56999, 42252, 28787, 42400, 18101, 44303, 53490, 27629, 21512, 32040, 32761, 57004, 51810, 16858, 17774, 53910, 23295, 19796, 53810, 24514, 23399, 61578, 56320, 34298, 21897, 48826, 27288, 47584, 34282, 35871, 27634, 24079, 63881, 38116, 29573, 63527, 40804, 21176, 18880, 57072, 32520, 35722, 62849, 62794, 53702, 59477, 56535, 18589, 18870, 42962, 35224, 52335, 54303, 28540, 32158, 38892, 44674, 20231, 46290, 21461, 51653, 51443, 55550, 34776, 45506, 34058, 64511, 36974, 59957, 54265, 39247, 27256, 37204, 46199, 27737, 39847, 45924, 42289, 21345, 35742, 28653, 24465, 30848, 61949, 53075, 38040, 58457, 39407, 63461, 17287, 49060, 57811, 64238, 56254, 55717, 50994, 57439, 64444, 55811, 24596, 28750, 21842, 41748, 59711, 48488, 27320, 28545, 59159, 36571, 62776, 27893, 45121, 54335, 20723, 41224, 45446, 34743, 21154, 28829, 20827, 57144, 20931, 37586], [33774, 34712, 50684, 63017, 27023, 43175, 59550, 18781, 23547, 26724, 52094, 52060, 57130, 40637, 25829, 20455, 55538, 31582, 29383, 59926, 40046, 21114, 45355, 19757, 43431, 62868, 43084, 53971, 59934, 50058, 64573, 56156, 28272, 58080, 56454, 60174, 51367, 63727, 43053, 19635, 49489, 64100, 54919, 32453, 34376, 25023, 32958, 57152, 41766, 35450, 24714, 64113, 27718, 25885, 28585, 53985, 42475, 56773, 50481, 65309, 45832, 58403, 38264, 32685, 55981, 44491, 20013, 29584, 49982, 47821, 21993, 30103, 63409, 50895, 53991, 24436, 33174, 33101, 25713, 32500, 36966, 44425, 52134, 25015, 21463, 57438, 51459, 42295, 17810, 28407, 46950, 32186, 22572, 30242, 57678, 20034, 65174, 17238, 34171, 59072, 32429, 57699, 35394, 33301, 51691, 60406, 17663, 37819, 51860, 38137, 38948, 25456, 18292, 20999, 47572, 29437, 36165, 21920, 32892, 48347, 54422, 48506, 29945, 49608, 61284, 22705, 38211, 40127], [39748, 49721, 34637, 52985, 64080, 46872, 47109, 43100, 24776, 53501, 34367, 58037, 63392, 33891, 38774, 44876, 28896, 50411, 17994, 21212, 52325, 48721, 56421, 43093, 61517, 48082, 50163, 16633, 20386, 26818, 51278, 58899, 62850, 22316, 17694, 53054, 39742, 49545, 42975, 28520, 18064, 20367, 38361, 26397, 20290, 36583, 43972, 63342, 17269, 30826, 24642, 33089, 61803, 57697, 32829, 41126, 41367, 23347, 24405, 17682, 51061, 35611, 63708, 25064, 63909, 22828, 54487, 21793, 65472, 35013, 39601, 45927, 56500, 27535, 38296, 25078, 50447, 57720, 64898, 33828, 61453, 20519, 25175, 27821, 54600, 17618, 63653, 26725, 31565, 64502, 35922, 49796, 53865, 27356, 24917, 60240, 22283, 19576, 46284, 26733, 18485, 37706, 65030, 23107, 57963, 62609, 44960, 17504, 20733, 63607, 52503, 43476, 24429, 58541, 44280, 34034, 59105, 53013, 44738, 53096, 32617, 55506, 53297, 32145, 42786, 23934, 30450, 27927], [34395, 43305, 20826, 43383, 18915, 24135, 46261, 48769, 61989, 56842, 58772, 29401, 36483, 17510, 25463, 20946, 44836, 49158, 64701, 39495, 62227, 26418, 53815, 39375, 45993, 53455, 27578, 31009, 32923, 41247, 56822, 41226, 60923, 20373, 36254, 33787, 63924, 36226, 27291, 19491, 33017, 39901, 26408, 38803, 30528, 33640, 59497, 20386, 42399, 28376, 21229, 35813, 56836, 53648, 41809, 35062, 41071, 50771, 23810, 64603, 60164, 39224, 17488, 43110, 45244, 38005, 42592, 44357, 29924, 28287, 38019, 22302, 51190, 51349, 50371, 28632, 25308, 33532, 43346, 21130, 63793, 57546, 23551, 43636, 22665, 57463, 24331, 52494, 35228, 29442, 55069, 36240, 53639, 55520, 26816, 35162, 43347, 44911, 31910, 42242, 46600, 22867, 17156, 28249, 35224, 19135, 54176, 56851, 39520, 34510, 19621, 25470, 21793, 34306, 21053, 45181, 26890, 27415, 41676, 62837, 63187, 48619, 17491, 53185, 23262, 60179, 60140, 45582], [45923, 29112, 27017, 49828, 17837, 32930, 17607, 42776, 61770, 23078, 50366, 23160, 28790, 57910, 42879, 63884, 63172, 44109, 30576, 55273, 32935, 28847, 18681, 22416, 32532, 18416, 26560, 60248, 48039, 56470, 23240, 39712, 53953, 59563, 18874, 40577, 51279, 27976, 45270, 48186, 62704, 39005, 56081, 62120, 61551, 30315, 60721, 39762, 49876, 64516, 32948, 18993, 53627, 33580, 35391, 47372, 56122, 58955, 35879, 36102, 52193, 31093, 36641, 30416, 64886, 42035, 18634, 54212, 41471, 21001, 59822, 29431, 36845, 31058, 36183, 18611, 33754, 40809, 53661, 41148, 37620, 28719, 22676, 47605, 60022, 64896, 23113, 44637, 56984, 48694, 49058, 33569, 54750, 46016, 38750, 60786, 46481, 17335, 23751, 47467, 31920, 34372, 45842, 25634, 26466, 40821, 18482, 42438, 43956, 51098, 35973, 52956, 26520, 58564, 53205, 34226, 19867, 61044, 45220, 21768, 31438, 54369, 24622, 25229, 59613, 53353, 20219, 43378], [63629, 41000, 62885, 47808, 57926, 23299, 59087, 55854, 18350, 40628, 36854, 40923, 24829, 58229, 19471, 56596, 62050, 29902, 39153, 21159, 61277, 52273, 20953, 28054, 30676, 58481, 25375, 38144, 57047, 50350, 24010, 64223, 46053, 33379, 24389, 30547, 48883, 55125, 25721, 36965, 21349, 35632, 25871, 23605, 21302, 32333, 18865, 27915, 44451, 50151, 24772, 65260, 17717, 24922, 31757, 41374, 55760, 38687, 56840, 61528, 42252, 27538, 27451, 26837, 50108, 52836, 43891, 40414, 54003, 54162, 22558, 59422, 23998, 33376, 48657, 54282, 35150, 31831, 37521, 61179, 28949, 26555, 31128, 31724, 20872, 22457, 28035, 18245, 32933, 59373, 27914, 24198, 60634, 19851, 48246, 55592, 21046, 19033, 40083, 49735, 27987, 39584, 47598, 63407, 43619, 39220, 30649, 42213, 46902, 26926, 31615, 65095, 19038, 20506, 34228, 51155, 18524, 44035, 44491, 31102, 43768, 22404, 57273, 43919, 16819, 45815, 52691, 57663], [61383, 21330, 45488, 51703, 20558, 62013, 34389, 54568, 56420, 32501, 32179, 63551, 19635, 58660, 53553, 21620, 60756, 42012, 53454, 53378, 60554, 54904, 49848, 44051, 46046, 34197, 64027, 25776, 29241, 27620, 41761, 33253, 61596, 46067, 24269, 34915, 27588, 54712, 46789, 50142, 32740, 39662, 36094, 28930, 46129, 19390, 39581, 43544, 30667, 24303, 32225, 44635, 39325, 51920, 24833, 17641, 27003, 64070, 47453, 36197, 28923, 26070, 51266, 52154, 20356, 45854, 27792, 22374, 37525, 52608, 60474, 29389, 44625, 34759, 59535, 33470, 46364, 43541, 41969, 43268, 46791, 55401, 65304, 27353, 20086, 20562, 41684, 51801, 25210, 41257, 29812, 20996, 38409, 30557, 58757, 58561, 38434, 48452, 58964, 21331, 39432, 58212, 29590, 30811, 47041, 47648, 37908, 63231, 61431, 60647, 25951, 29973, 55841, 43886, 27831, 26128, 50866, 50100, 62801, 39017, 60199, 42906, 32415, 29026, 37278, 45877, 59155, 49844], [58493, 18457, 59241, 65146, 63793, 55325, 18689, 49333, 29190, 52840, 63500, 18850, 36878, 56681, 53613, 41262, 54317, 20093, 21656, 17008, 63180, 40528, 22473, 58944, 27910, 62519, 41484, 53987, 18956, 27541, 63167, 26599, 35640, 29615, 65428, 61278, 28840, 55055, 16403, 60022, 61153, 18983, 51876, 48747, 54418, 53059, 19843, 18317, 17901, 26317, 64960, 46015, 42549, 51212, 26194, 62879, 63291, 58299, 56408, 18018, 52083, 22859, 38211, 37370, 42059, 36228, 46295, 39195, 41575, 48382, 36955, 58151, 35942, 33884, 36796, 34142, 43958, 39669, 27650, 18864, 59531, 57726, 36103, 27639, 60587, 38902, 36835, 24851, 45022, 45767, 60521, 56314, 35769, 63228, 54181, 24058, 55127, 53786, 38887, 25223, 20828, 40931, 24186, 43801, 28293, 50510, 20085, 23221, 28113, 25487, 54236, 37053, 23602, 64585, 47372, 44756, 31934, 24241, 21269, 30876, 59434, 26867, 62266, 64599, 32842, 57611, 31105, 26477], [53385, 43794, 25826, 46765, 21782, 53896, 54886, 36744, 54494, 53517, 44122, 53411, 61975, 20145, 52650, 63748, 52579, 20483, 55084, 30425, 41683, 45450, 25609, 45921, 55590, 55265, 41074, 50480, 40026, 39901, 28958, 48450, 59710, 60403, 53400, 32498, 58951, 21952, 22558, 49877, 43334, 63104, 30097, 29732, 57675, 18654, 61742, 62932, 34931, 32655, 36382, 49743, 24528, 17086, 30514, 62437, 21907, 41608, 51957, 39833, 62181, 21363, 40102, 61945, 27120, 59684, 32634, 39923, 38719, 57804, 29230, 16860, 37276, 52634, 57155, 19171, 54625, 26038, 45631, 29125, 37873, 43303, 18724, 35794, 35707, 25851, 54411, 64929, 55131, 58353, 32741, 18438, 40326, 35195, 25338, 46550, 23992, 34109, 54140, 28896, 50881, 52876, 53308, 25402, 22005, 18390, 45928, 18057, 59574, 32227, 44014, 39100, 32001, 53125, 27150, 36590, 28970, 55384, 28266, 46310, 22872, 45694, 53856, 39466, 39288, 53574, 28037, 42056], [26776, 65379, 18736, 59034, 18318, 59922, 38127, 56096, 32008, 39014, 53160, 39535, 44747, 38793, 44635, 62284, 59742, 44522, 21097, 17990, 64823, 36771, 41284, 32361, 58855, 16948, 41358, 25101, 33247, 23674, 25780, 40675, 30428, 37566, 40797, 25055, 20957, 48536, 60894, 44339, 63265, 58194, 29778, 58444, 37689, 61195, 47814, 64319, 33550, 29551, 35649, 32247, 53247, 41106, 44674, 19791, 22091, 51043, 49163, 49331, 42618, 25037, 48063, 57552, 38841, 29295, 34345, 51209, 51523, 19015, 47855, 39027, 16469, 17659, 47057, 27555, 59589, 41388, 16769, 23695, 39352, 42607, 38170, 42308, 50424, 55977, 45765, 33459, 38491, 64462, 64490, 29123, 63315, 36227, 61490, 18325, 59126, 54443, 50539, 30189, 31695, 38253, 38980, 59804, 32636, 48514, 55568, 52970, 54295, 33722, 41347, 29158, 39596, 40465, 45889, 55731, 31065, 19015, 49068, 40139, 32679, 63308, 33265, 19063, 50594, 23438, 27639, 30739], [54493, 63641, 50961, 51797, 37469, 52183, 54888, 17599, 32645, 47855, 20090, 43683, 63206, 16597, 45070, 41918, 37228, 54712, 25817, 47493, 64057, 40669, 59428, 61522, 27380, 44542, 49022, 54162, 56648, 35829, 52915, 62013, 46530, 40844, 46239, 45573, 57233, 36753, 38680, 29441, 32228, 52998, 56545, 20653, 60957, 35292, 19386, 61708, 49420, 63937, 18604, 21667, 52756, 18521, 55295, 57607, 54701, 30844, 51356, 39237, 29312, 24168, 55275, 57522, 39078, 58657, 26172, 17348, 44690, 43750, 49672, 59101, 61265, 63635, 31644, 51127, 56969, 20575, 25043, 42724, 25853, 31929, 30011, 47026, 65143, 60449, 41788, 51228, 18764, 64868, 54178, 54265, 31090, 54094, 54132, 42811, 44069, 54528, 65151, 29250, 22104, 43373, 27083, 32499, 46416, 46561, 52055, 24165, 28676, 56412, 58793, 63567, 33785, 31152, 20751, 27206, 43411, 61592, 16864, 54179, 35584, 43140, 56542, 64952, 32661, 21080, 52221, 41151], [55506, 47907, 60601, 50972, 52930, 55277, 43135, 52616, 49563, 41172, 35810, 22137, 50971, 61110, 45422, 37718, 34943, 42868, 61817, 49974, 39972, 62649, 27287, 25585, 41470, 43393, 47947, 19203, 51456, 54258, 39383, 46349, 27255, 29193, 17491, 60059, 36784, 31911, 20793, 43613, 19478, 48468, 18686, 60239, 51906, 52115, 28510, 27117, 19729, 45232, 28730, 17222, 43144, 22219, 61551, 47726, 22390, 21446, 55557, 27135, 38685, 38316, 59247, 63281, 42202, 26539, 17195, 30084, 45691, 36110, 16521, 60896, 27967, 61535, 26032, 64208, 64733, 24586, 54241, 20752, 58912, 54334, 54072, 35882, 44358, 41142, 39515, 52648, 43464, 30543, 37943, 41027, 22101, 18569, 36129, 57910, 25552, 22331, 27149, 52073, 25291, 54045, 46973, 44646, 27331, 61220, 49860, 38156, 64544, 64461, 58835, 62169, 59564, 52575, 35217, 33756, 16433, 47430, 53817, 28966, 61128, 40337, 30201, 46712, 16630, 55491, 19022, 42065], [23674, 61089, 57987, 60911, 27876, 43534, 31390, 53834, 17120, 21392, 39465, 43725, 16521, 63192, 62668, 65189, 54208, 63039, 43464, 35865, 56083, 41939, 33078, 56020, 31556, 21455, 42411, 19361, 38270, 44357, 30668, 37674, 36232, 56050, 58605, 35847, 38373, 39155, 64162, 57209, 62750, 39628, 61584, 57627, 31362, 38066, 51532, 65277, 36467, 28707, 60859, 20042, 33822, 60108, 41779, 56412, 57849, 27836, 40379, 28279, 60243, 47247, 27619, 54055, 55700, 58233, 52388, 46126, 31899, 20088, 56874, 24151, 27659, 63399, 57647, 48377, 61750, 31760, 62558, 39420, 59910, 18258, 49731, 33501, 51924, 34421, 56265, 36011, 33023, 22508, 49169, 38783, 27787, 51768, 56949, 35227, 39293, 31547, 31827, 32267, 63736, 55993, 43527, 31875, 56830, 19542, 34550, 39423, 46241, 65117, 49473, 50715, 56079, 32323, 65523, 48878, 30455, 37831, 53371, 41419, 20219, 61027, 59852, 37600, 21065, 60903, 38674, 21885], [49464, 29080, 58683, 57189, 16866, 21319, 23410, 35340, 50842, 22465, 57394, 34375, 32578, 24221, 63286, 52280, 49881, 41727, 18929, 24118, 30889, 32669, 26021, 49428, 24362, 60455, 58527, 51505, 32625, 57455, 45674, 64425, 42389, 40342, 33081, 45321, 29585, 30426, 47230, 22253, 18107, 41013, 45883, 24346, 19480, 21515, 30687, 64249, 22705, 44626, 19644, 60950, 20988, 26037, 55759, 40722, 29157, 53634, 62799, 25654, 16511, 52511, 47477, 17936, 21721, 20900, 38152, 33959, 46970, 20587, 60358, 28254, 26827, 57786, 56871, 47903, 50006, 64795, 45478, 41613, 36191, 34834, 65146, 33766, 23268, 55990, 16755, 31566, 49550, 51514, 58086, 28768, 27945, 42330, 47680, 51240, 35170, 35064, 51963, 23332, 59118, 63727, 23844, 53306, 18639, 54661, 26506, 52013, 20852, 35924, 47887, 17278, 61491, 47863, 26555, 52618, 32282, 37056, 64729, 20304, 44440, 50321, 16775, 24108, 29040, 64111, 29700, 63943], [57865, 25502, 22183, 22064, 40103, 19713, 56837, 18202, 33414, 62644, 23897, 56941, 26697, 50043, 54139, 46693, 26763, 54745, 55744, 50169, 37754, 25231, 46262, 48883, 59022, 53954, 62488, 35780, 25905, 21110, 36716, 16471, 64250, 53373, 31790, 53853, 20190, 43078, 50013, 60086, 23350, 36218, 38173, 25921, 28882, 50785, 59235, 40465, 53285, 61614, 61170, 18913, 17701, 38553, 35983, 48183, 41786, 59917, 27977, 60367, 23833, 59034, 27680, 21225, 43726, 37825, 38491, 24968, 32416, 17816, 42103, 25927, 63168, 34970, 26467, 43995, 60203, 64261, 26413, 50894, 56693, 17142, 62163, 23175, 39245, 32972, 45401, 63248, 37349, 24124, 28548, 46925, 61643, 53687, 39253, 24196, 55713, 41821, 59643, 36943, 55558, 49111, 47136, 16850, 28023, 49273, 57098, 26736, 43912, 50022, 22667, 18162, 42379, 52339, 30195, 56945, 42672, 17343, 62678, 40283, 48401, 40237, 62357, 62769, 33078, 30308, 58393, 65337], [57650, 59152, 21315, 55664, 33838, 54649, 21698, 23722, 46513, 47020, 58078, 55227, 25807, 16518, 42978, 28803, 32258, 61550, 23446, 63019, 23534, 54752, 19225, 50650, 50806, 24190, 34388, 50545, 32406, 21036, 31395, 28944, 36923, 57094, 62980, 28187, 41307, 33775, 22618, 26064, 19538, 19518, 54096, 35050, 45820, 24356, 23340, 52047, 30865, 62889, 38030, 31359, 18338, 62862, 48113, 48844, 19691, 48817, 44772, 25950, 51394, 22817, 44011, 34147, 29092, 56838, 21753, 55067, 54088, 21345, 29719, 26898, 49142, 26650, 49109, 43095, 48096, 53456, 43231, 40802, 38608, 32563, 63877, 32130, 22834, 51310, 61197, 49284, 57487, 36097, 37663, 39103, 26929, 24675, 21856, 59002, 63051, 34857, 19790, 55599, 33544, 20323, 22944, 59361, 34127, 27477, 49962, 30452, 38211, 18301, 46746, 22764, 38375, 62971, 28581, 24691, 20290, 50999, 17321, 42440, 39417, 21728, 54517, 60068, 28513, 48132, 27449, 17867], [21088, 65217, 32008, 41721, 23424, 38114, 63642, 50831, 28001, 42460, 16583, 25275, 24907, 56758, 63053, 20495, 29985, 37504, 34478, 49710, 41626, 50722, 39526, 17373, 31295, 60408, 53831, 42416, 26607, 42296, 25319, 55282, 18858, 59810, 47360, 36345, 23413, 44471, 51870, 29655, 17291, 44483, 54604, 35443, 23187, 30191, 26182, 47849, 58498, 28799, 62901, 30217, 59934, 52347, 38435, 58043, 37964, 46216, 40496, 19882, 45915, 16766, 48410, 60837, 31313, 55980, 19681, 17509, 53252, 20702, 40309, 30906, 45592, 45662, 27458, 64065, 53214, 21612, 44905, 31298, 56205, 24130, 38570, 54569, 59424, 36292, 36929, 46847, 64318, 58073, 16700, 34900, 57060, 23383, 36620, 55948, 27327, 16742, 32550, 48016, 60632, 49984, 48202, 23450, 36014, 57417, 49920, 43841, 49505, 48075, 40967, 36290, 41085, 63740, 17803, 20650, 22079, 18587, 26583, 48541, 22892, 30062, 58299, 25020, 19328, 53299, 26863, 21200], [38290, 32003, 23095, 28868, 31361, 18022, 32484, 64708, 64703, 45992, 47819, 35482, 39673, 60166, 33300, 56837, 30167, 37623, 16658, 61601, 26187, 42901, 31823, 19117, 39776, 30235, 51565, 31199, 55955, 48150, 24574, 35351, 63579, 50073, 60304, 63256, 47539, 18451, 57186, 40277, 31659, 34710, 22278, 31259, 21554, 52548, 19972, 56874, 54726, 17663, 29949, 62350, 55766, 44954, 28438, 51631, 39330, 18929, 23662, 53602, 29647, 57641, 38033, 46141, 38054, 27435, 57238, 28241, 38253, 61826, 33957, 62397, 51729, 60843, 62761, 63943, 29779, 19569, 49012, 33831, 46993, 56366, 38152, 53545, 31549, 36039, 26645, 35748, 52049, 64831, 60968, 58256, 22075, 57056, 56887, 58026, 23509, 23105, 38495, 30686, 50845, 25827, 23438, 44687, 35340, 19890, 17617, 61950, 52599, 45319, 24139, 22107, 43803, 35718, 49179, 36695, 17227, 27400, 31878, 57653, 21356, 21109, 44352, 41304, 64879, 55037, 47938, 52179], [45456, 47445, 38563, 32436, 58775, 32702, 65263, 18365, 24551, 65030, 33784, 50910, 54281, 16686, 40311, 16711, 32812, 25087, 52302, 41514, 47160, 26964, 62268, 58997, 22751, 62092, 61232, 48355, 18809, 31837, 26081, 31728, 18954, 60818, 16676, 39565, 57648, 46128, 45920, 62225, 32519, 27827, 41308, 51076, 51055, 19502, 32379, 64648, 38626, 17171, 16949, 28986, 28495, 32316, 50082, 53321, 22240, 23571, 59884, 45382, 64250, 33266, 63518, 22984, 26181, 36753, 20935, 65041, 24236, 49687, 59760, 26335, 34168, 46370, 36228, 56394, 51607, 53668, 49214, 42018, 27198, 33128, 21506, 57755, 52782, 27217, 31729, 65157, 39333, 37294, 53644, 30582, 29553, 17006, 44266, 31429, 26102, 47937, 35086, 17591, 64237, 62408, 25110, 37285, 40537, 39681, 56813, 28413, 17941, 43720, 33628, 53697, 34835, 35603, 37918, 56846, 16872, 38115, 19055, 26358, 55363, 24652, 47077, 40011, 58441, 42954, 20203, 60165], [56900, 61208, 55721, 53163, 60991, 39129, 59435, 64911, 45630, 61499, 36053, 54383, 24808, 29057, 62768, 49600, 26169, 23415, 26826, 33138, 44005, 46469, 61860, 47282, 62745, 60652, 39068, 61436, 38407, 47044, 47507, 60820, 18501, 52608, 41611, 25571, 53555, 38795, 33406, 62657, 49517, 63875, 60814, 58364, 54959, 26024, 62244, 39882, 51904, 16610, 26894, 26388, 37733, 63217, 17365, 40385, 51314, 48604, 54631, 61309, 54962, 20348, 45117, 19674, 29533, 28543, 29069, 47072, 25279, 17581, 35410, 41723, 26689, 31675, 35514, 27935, 33740, 52501, 45890, 34910, 47538, 24641, 28355, 48109, 61876, 40725, 30485, 48747, 63106, 16913, 32823, 34769, 42062, 26886, 50964, 25504, 36069, 16806, 42057, 60261, 31712, 28967, 47271, 34969, 37347, 62883, 62824, 35838, 51660, 17671, 37505, 18769, 27280, 38797, 38725, 57383, 62479, 32199, 61975, 61545, 17145, 55487, 27033, 58699, 47020, 30698, 32826, 28662], [56110, 17941, 42362, 32021, 24712, 21962, 45454, 52125, 23279, 51259, 20957, 44147, 35105, 28857, 49012, 27113, 22228, 30481, 30625, 45754, 64176, 45961, 32024, 51907, 59074, 27597, 23029, 30959, 29050, 28787, 45687, 36646, 64156, 42391, 41721, 22686, 44689, 46961, 28064, 39390, 22279, 47750, 57537, 63913, 40003, 30398, 42294, 50553, 19650, 30141, 47500, 31919, 44230, 33654, 61302, 35562, 44035, 48403, 58591, 20277, 49193, 45705, 49707, 21035, 29899, 21407, 17170, 48868, 65194, 29125, 24684, 22801, 56174, 30728, 21441, 50175, 64923, 50242, 53814, 20729, 40908, 39890, 36524, 29771, 40492, 61362, 20943, 39258, 63541, 51573, 32217, 59484, 39242, 21441, 54260, 26011, 55951, 60594, 32171, 34252, 55707, 29348, 57229, 28591, 30181, 34684, 16751, 44848, 29977, 46118, 42016, 62337, 19912, 41619, 60426, 65120, 42110, 21827, 52317, 21912, 57662, 56377, 31643, 52043, 48348, 28219, 29363, 36688], [63799, 65495, 21514, 55848, 32581, 27632, 23628, 64893, 64403, 52670, 51658, 48977, 58423, 28874, 44760, 36554, 49893, 51406, 25683, 28015, 57586, 21705, 27750, 27777, 44852, 29593, 52474, 41907, 34417, 45414, 56452, 42998, 31654, 37868, 54505, 57460, 47697, 57404, 38475, 20322, 39237, 48557, 43192, 63164, 27695, 54851, 61198, 54580, 51826, 47574, 62877, 40721, 55469, 56385, 53835, 40418, 29368, 51918, 58400, 63895, 47479, 39071, 33811, 54065, 43952, 42073, 49482, 52811, 40483, 18794, 26527, 49640, 39811, 47256, 57051, 42779, 55190, 26029, 41424, 57822, 31563, 50747, 64870, 24165, 60885, 35544, 44746, 59011, 18759, 59244, 24495, 22606, 40610, 26555, 22806, 34734, 44776, 18063, 60253, 37454, 62389, 42417, 34516, 33012, 62081, 28431, 63502, 56589, 27449, 28056, 59351, 25274, 64859, 17927, 28844, 44395, 24181, 36584, 40452, 38847, 51970, 55413, 33903, 33274, 40734, 23000, 33517, 41195], [38247, 50906, 57396, 30380, 38873, 23421, 17915, 55577, 31959, 18576, 51760, 56731, 40595, 32953, 26930, 47481, 33990, 41552, 36991, 65235, 39143, 27899, 27131, 57257, 38363, 53562, 47887, 49130, 16615, 63270, 61875, 55499, 54646, 62708, 57170, 61521, 59738, 57525, 64160, 28896, 32012, 48918, 54135, 18622, 19948, 54270, 60410, 48535, 34210, 41289, 27900, 60250, 39706, 61824, 32137, 34789, 19477, 61853, 41910, 55344, 26226, 50822, 63618, 50222, 46479, 54295, 30264, 53479, 16921, 33855, 37700, 39471, 16579, 28499, 40587, 41423, 64936, 26899, 27781, 40825, 42827, 34385, 48805, 30986, 31547, 22675, 55261, 52479, 43976, 39561, 62996, 51773, 51374, 19402, 38017, 61280, 23360, 41577, 59267, 32382, 50755, 55792, 42797, 34018, 60717, 63713, 35414, 39217, 20937, 35394, 56278, 50059, 25611, 64146, 55863, 25898, 51297, 59478, 19520, 46796, 24160, 28681, 55993, 37922, 36697, 29892, 22148, 39553], [53984, 45680, 59151, 64541, 54212, 33209, 35573, 44383, 17463, 59198, 63626, 21945, 41303, 40799, 41465, 61829, 53310, 24027, 28810, 45360, 22375, 21464, 54035, 44482, 17000, 57878, 61592, 20205, 29128, 51129, 26247, 41677, 24085, 52272, 52529, 49916, 62894, 40823, 49813, 47240, 28452, 17000, 37801, 50477, 19503, 27284, 19975, 26198, 39640, 20815, 34274, 20534, 18989, 57516, 17192, 31901, 44664, 18377, 50751, 27029, 23886, 31284, 51490, 20242, 58921, 28441, 63516, 26594, 19904, 56607, 26302, 40142, 32625, 39361, 62769, 29670, 24839, 64235, 26238, 28401, 30897, 34829, 24936, 20776, 59289, 59534, 17021, 55386, 37495, 63551, 17209, 32287, 17710, 61992, 17876, 59290, 39698, 49249, 26964, 56923, 39418, 63297, 49604, 17000, 48752, 54496, 31855, 19006, 55685, 23416, 52796, 47662, 49349, 51232, 22122, 47458, 24221, 28445, 44460, 63962, 56989, 36573, 63808, 60721, 39076, 47871, 53924, 36751], [60117, 18061, 55001, 40672, 30291, 48830, 18781, 25574, 40343, 32548, 63293, 34518, 64221, 24499, 34593, 42932, 64657, 26789, 65000, 22678, 42139, 40117, 37251, 50733, 22295, 40144, 54083, 28759, 55344, 43291, 33191, 44294, 46212, 49376, 16839, 21189, 38101, 57470, 29121, 31623, 27506, 37734, 61496, 46851, 39875, 17742, 30130, 64390, 34888, 35526, 25552, 45702, 17838, 35075, 42561, 29072, 38201, 65352, 25662, 58892, 63290, 18534, 44190, 19053, 56949, 34485, 31555, 38047, 61913, 40414, 23584, 43855, 38600, 18811, 37824, 39346, 33053, 29900, 62643, 64664, 30060, 18268, 43166, 45702, 31168, 39549, 19471, 65347, 23026, 51955, 49323, 63890, 49588, 41725, 41165, 61103, 24715, 16838, 51023, 46433, 45241, 52690, 39982, 55758, 65245, 48735, 40268, 44773, 17584, 43187, 22807, 40681, 57090, 48348, 42772, 50542, 47100, 40660, 41616, 57837, 21903, 31012, 24808, 42827, 46731, 49913, 48955, 27261], [45220, 39930, 46083, 40871, 29379, 24891, 36694, 21997, 53882, 16893, 55693, 21750, 53438, 28134, 37118, 21952, 16517, 18725, 58178, 59995, 45272, 32573, 64449, 28880, 35926, 30972, 28687, 44481, 38053, 40305, 42735, 21951, 57740, 44078, 40717, 32883, 17653, 52499, 18708, 42692, 52773, 17462, 54269, 41246, 60835, 28548, 30517, 29575, 30300, 45793, 65359, 50550, 26435, 52733, 44459, 37659, 50522, 39374, 45236, 46881, 44596, 24449, 36453, 47476, 34706, 30007, 51537, 28177, 49121, 60506, 24194, 28490, 64148, 31479, 20280, 33737, 52026, 47877, 39887, 42972, 35125, 18183, 19514, 33698, 39097, 64646, 51067, 62490, 28850, 31037, 45237, 22154, 32445, 52719, 25968, 61742, 20441, 27704, 22248, 23225, 39014, 51677, 23987, 56627, 21155, 35332, 45774, 39430, 48256, 32310, 35239, 22795, 49485, 53343, 39067, 27054, 19214, 52681, 17048, 30467, 40489, 44162, 20673, 32866, 38611, 57836, 16909, 49651], [17554, 22189, 49351, 36046, 49922, 59320, 24815, 21262, 37321, 28984, 26287, 44236, 46662, 24926, 59216, 49735, 16504, 58042, 38238, 29904, 16686, 29754, 32386, 25570, 25729, 48133, 47219, 59234, 42774, 62975, 46394, 48179, 48424, 58336, 59711, 53234, 23651, 50751, 38372, 59258, 63207, 28157, 37920, 57825, 32518, 23405, 18135, 39830, 39658, 34203, 61895, 31063, 20498, 30347, 39529, 61801, 30312, 22333, 24986, 56868, 40156, 22712, 23617, 42419, 40661, 58780, 17047, 64363, 39935, 59027, 60905, 48230, 38668, 22162, 37925, 51807, 16846, 42158, 25320, 61708, 61384, 18896, 39136, 27859, 65053, 57559, 42066, 47636, 58916, 44724, 20814, 16496, 29851, 62191, 35337, 35239, 19670, 62729, 58864, 34289, 27920, 63052, 26957, 40068, 60092, 50450, 19705, 35658, 41675, 45897, 18780, 58037, 19180, 17399, 63147, 31837, 61219, 61312, 36715, 57285, 25935, 29321, 63282, 50546, 37626, 42013, 17007, 39057], [52305, 21073, 22801, 48429, 42980, 39507, 58421, 54326, 51718, 56198, 54525, 45326, 55869, 48873, 44222, 63859, 60699, 42178, 30061, 27905, 25364, 17120, 49673, 65515, 52551, 57286, 54025, 33614, 25762, 65383, 22897, 16743, 36590, 53366, 60574, 32953, 17283, 34123, 51743, 21750, 50137, 56677, 57890, 33318, 42157, 25441, 42202, 18985, 47445, 61829, 64951, 60660, 41994, 24490, 65152, 45578, 51007, 59730, 35638, 55304, 62191, 24507, 30557, 57831, 32266, 60288, 26451, 38807, 37123, 57099, 49060, 59230, 42424, 20690, 56647, 19194, 62526, 36322, 26590, 46361, 49435, 28187, 62388, 29532, 49130, 44858, 47142, 19082, 23017, 29228, 21958, 18598, 22348, 27433, 19525, 48103, 57821, 51649, 39737, 33996, 45301, 54910, 54020, 20469, 53508, 59630, 45554, 50306, 42418, 29804, 32056, 63009, 50373, 61771, 24253, 25347, 47324, 59686, 31485, 50438, 20067, 64069, 31827, 38929, 52640, 65148, 40109, 45327], [27981, 42590, 50917, 38845, 52409, 16736, 48204, 52316, 50579, 26784, 60923, 27840, 64481, 23585, 43553, 62140, 31867, 43845, 47101, 16647, 56783, 50502, 55634, 59258, 27353, 17300, 49054, 16824, 65517, 28590, 52922, 27782, 35377, 59021, 45128, 25958, 41013, 22286, 29196, 37175, 30801, 55251, 27362, 39305, 45527, 31361, 43865, 39244, 36267, 17292, 41533, 44238, 37704, 46855, 52537, 48090, 17372, 30429, 41304, 23761, 26388, 55878, 27786, 31837, 59375, 55146, 44509, 48600, 49115, 64848, 20427, 52596, 23385, 53395, 35861, 22512, 20942, 44526, 24388, 59460, 25618, 41893, 37702, 45651, 41006, 63068, 17872, 63155, 24191, 29117, 65070, 46873, 24080, 60374, 49614, 33014, 22899, 32146, 51469, 35728, 45373, 31443, 52339, 59997, 27390, 17191, 32807, 20034, 48337, 50928, 39032, 17030, 51918, 24611, 34143, 50475, 36701, 45505, 24655, 56199, 34020, 49490, 20588, 47656, 64593, 41442, 39847, 29333], [41684, 44821, 41566, 45737, 41367, 31618, 57342, 47910, 40274, 45793, 54662, 53634, 34235, 25684, 50048, 26941, 37700, 24038, 44015, 60840, 18617, 28013, 38945, 40767, 52872, 52142, 49009, 25644, 17486, 26533, 62587, 27443, 18503, 40049, 18288, 45676, 42721, 60214, 59739, 58028, 62532, 60183, 34538, 54265, 60374, 26075, 43340, 36660, 44412, 35352, 16651, 61509, 54120, 48986, 26839, 29836, 64216, 60612, 61427, 39590, 61272, 46681, 55994, 29578, 39383, 61327, 37510, 48928, 58169, 44716, 44479, 37687, 30515, 64066, 25374, 55200, 18927, 23227, 31757, 24494, 51388, 53708, 43377, 39488, 46382, 26227, 31127, 64907, 61639, 49487, 38647, 60545, 57068, 35383, 33617, 64727, 42585, 28329, 60128, 61639, 22060, 46267, 26030, 19852, 57536, 61973, 26772, 40896, 54195, 61286, 24829, 56210, 23491, 33324, 57219, 57326, 31763, 36777, 37886, 37568, 51441, 44648, 47416, 49409, 36690, 56035, 24258, 51066], [36527, 34349, 51365, 33363, 36417, 30741, 46870, 42860, 27904, 22332, 39152, 40209, 35388, 53301, 62933, 62395, 24048, 63295, 58438, 56438, 35766, 63196, 60390, 57407, 27055, 18032, 20894, 57632, 30573, 39138, 56468, 18252, 64541, 41019, 62954, 24283, 26112, 24548, 60338, 46418, 29942, 26854, 33552, 53603, 44893, 30158, 31803, 23815, 31092, 41032, 64931, 40188, 24792, 17903, 50065, 34634, 45712, 55077, 43522, 49025, 43399, 45343, 49319, 29943, 56046, 35670, 35510, 31353, 55569, 54662, 37073, 54841, 56636, 61698, 41290, 65358, 37926, 45620, 27181, 56491, 53937, 17977, 57722, 23198, 60287, 21032, 42058, 41447, 34735, 55073, 40370, 55569, 30766, 37620, 24909, 33188, 49289, 57927, 55632, 23702, 22460, 45519, 55857, 65046, 55337, 49524, 20389, 62336, 62659, 19372, 47749, 62528, 60352, 61437, 42707, 22687, 21670, 58161, 26347, 43299, 35994, 56328, 18053, 52809, 19014, 33118, 50549, 18213], [26052, 54576, 34338, 49127, 62199, 63686, 46624, 30968, 23875, 19969, 45254, 61872, 42509, 38774, 57527, 35567, 25797, 59940, 49661, 50136, 36205, 42684, 26705, 63005, 49358, 17534, 28344, 47875, 61522, 38233, 49470, 37769, 47152, 30217, 40698, 53094, 16454, 20627, 23008, 34550, 44102, 49247, 43563, 17737, 39092, 17182, 28012, 43861, 25955, 27982, 47144, 61731, 28087, 59512, 57821, 46291, 23430, 54387, 35763, 27143, 59776, 28931, 39819, 24230, 28860, 55486, 59153, 63314, 54405, 30196, 51463, 55703, 38609, 18354, 50360, 29130, 17905, 36993, 50178, 38076, 64333, 19012, 48377, 56177, 25428, 30827, 40545, 18108, 54001, 39137, 27604, 37030, 34692, 24019, 33956, 38426, 41752, 54035, 63177, 47249, 31972, 34322, 57003, 22391, 40591, 42580, 23759, 58824, 31471, 26106, 52871, 16510, 33736, 59708, 18512, 59586, 44164, 20999, 36384, 42357, 64928, 50195, 22640, 46854, 20675, 31019, 65314, 63953], [21634, 26522, 59555, 30905, 21783, 29557, 65229, 18379, 36386, 36228, 49549, 53594, 60099, 56690, 58476, 53198, 51835, 45201, 53928, 22600, 56715, 39397, 26073, 25435, 31106, 58832, 42405, 31691, 46590, 30638, 47792, 36593, 33646, 23486, 43851, 30365, 25370, 43709, 17146, 18227, 44968, 47979, 36565, 18239, 43261, 32203, 18804, 37405, 18201, 37691, 31401, 56931, 49447, 62022, 39832, 17374, 64539, 37716, 34699, 60401, 53957, 19986, 44820, 41796, 31975, 55332, 41046, 25192, 32871, 54883, 17810, 29799, 41929, 25784, 20656, 35245, 46872, 24239, 24018, 59518, 42595, 21506, 51502, 36273, 64965, 22161, 60977, 50373, 27161, 52963, 59034, 24779, 36898, 31138, 40163, 41054, 22247, 21975, 17854, 23839, 36936, 60770, 50981, 31253, 22576, 47916, 29793, 16839, 43792, 30195, 52201, 37845, 51187, 58736, 30346, 51224, 38653, 24566, 23623, 47061, 33066, 44612, 22319, 28660, 53361, 17728, 18967, 42599], [25454, 42125, 39136, 28281, 18643, 44689, 30158, 31869, 20081, 46769, 59373, 62019, 46113, 49281, 41786, 54063, 52670, 55618, 24610, 52792, 55568, 44854, 54189, 27590, 58205, 49426, 34084, 18653, 32216, 34673, 46784, 37582, 17091, 47432, 38634, 56301, 37110, 43617, 37713, 33156, 55938, 64153, 43289, 55402, 57209, 42375, 33953, 33895, 19000, 18056, 61688, 19950, 36254, 23136, 22016, 17882, 59845, 29645, 42791, 22705, 52744, 23846, 41003, 49762, 18269, 63234, 57993, 18922, 47408, 38956, 22876, 34993, 55132, 47594, 23565, 59814, 64683, 31701, 39562, 60106, 33060, 25530, 51253, 22984, 56801, 45845, 48486, 32255, 47035, 53469, 32507, 57108, 41782, 26306, 43350, 31930, 46387, 55509, 60780, 24208, 33458, 59123, 30058, 63901, 63597, 52056, 59731, 21506, 28195, 26825, 36545, 21423, 52159, 16949, 59312, 26186, 40555, 29623, 44573, 51166, 33971, 54533, 32969, 53602, 28105, 46367, 34764, 50012], [38184, 56247, 34379, 29795, 20840, 52465, 27326, 46172, 37864, 47281, 30098, 28772, 54375, 37205, 32298, 57020, 23985, 62558, 34473, 28594, 32126, 54333, 33443, 45763, 48135, 63142, 47741, 22470, 17013, 51457, 21900, 65118, 40431, 23876, 30524, 24457, 22606, 37028, 33401, 40475, 46553, 27060, 61854, 18649, 28049, 19903, 47268, 42495, 65183, 24108, 20760, 55255, 20525, 36067, 38900, 29276, 45360, 46702, 48948, 58757, 40599, 20467, 43114, 63824, 46554, 60129, 59615, 46762, 37711, 45073, 51223, 28925, 63981, 32846, 48833, 33021, 53650, 55182, 18773, 50344, 56898, 39797, 22395, 41159, 31339, 35261, 59138, 64809, 61224, 21290, 47871, 50570, 34086, 32722, 35887, 57658, 56165, 56702, 64052, 52633, 40353, 55883, 37425, 50775, 35302, 17924, 36721, 40775, 56475, 25241, 44284, 30463, 41034, 54672, 64469, 36412, 61002, 30754, 40187, 44674, 58715, 56704, 49133, 41722, 17260, 51763, 41129, 25942], [25911, 19821, 30503, 44368, 24156, 42560, 34115, 35643, 16597, 26719, 50194, 48725, 50051, 61046, 29740, 37403, 17632, 23296, 21812, 56809, 41633, 46653, 44318, 61669, 32932, 19404, 63306, 19520, 34673, 35319, 43984, 38510, 18362, 22141, 44833, 38413, 34837, 36213, 56211, 28888, 57754, 35130, 16572, 16681, 56025, 32200, 26602, 63475, 63232, 59607, 43916, 61328, 35372, 53703, 58326, 26101, 50496, 23000, 19278, 62981, 63303, 29590, 48264, 34743, 63526, 34631, 35848, 31564, 34747, 48991, 63293, 24730, 56365, 32411, 18021, 58335, 17417, 49419, 64748, 47784, 27879, 45302, 34757, 42069, 40597, 58869, 57382, 57516, 36910, 41694, 42154, 56268, 21043, 38642, 35005, 28558, 30034, 22770, 27641, 56974, 49330, 52189, 42804, 48799, 61606, 53939, 62828, 48835, 51539, 59514, 58105, 53466, 29705, 55590, 33742, 52545, 63587, 50514, 31125, 29968, 41186, 52480, 40929, 49377, 43443, 41423, 37706, 51933], [23841, 60530, 28753, 17463, 64160, 20132, 47210, 47830, 40886, 30794, 16965, 28148, 44321, 43256, 23463, 59854, 36668, 49110, 63394, 43216, 51374, 48060, 36938, 25306, 61028, 42740, 28643, 48328, 48658, 64893, 35015, 65276, 49275, 35602, 29001, 50110, 19335, 34913, 25905, 16940, 36533, 35165, 38525, 22042, 42413, 57674, 57030, 45285, 23705, 61117, 36821, 59992, 57766, 57568, 53372, 46821, 30429, 33449, 53378, 37169, 60473, 38792, 35048, 28852, 26232, 42031, 33350, 56283, 58177, 54645, 60034, 43373, 41794, 27732, 19067, 57666, 57435, 50563, 63554, 53390, 35276, 49299, 34825, 20720, 27830, 41987, 29051, 59840, 18655, 18018, 40695, 29593, 58229, 48552, 18302, 28386, 29918, 28553, 52256, 32229, 16697, 58598, 36228, 31908, 49679, 26093, 34501, 36690, 36719, 30005, 41069, 26826, 35526, 18101, 55678, 31099, 43301, 28223, 59732, 52406, 16984, 38183, 40233, 35282, 28148, 27103, 26743, 21373], [57911, 55411, 32717, 38629, 57270, 19071, 24915, 62179, 63166, 30182, 57893, 33967, 40443, 23780, 41044, 58552, 26437, 24999, 46610, 35355, 57949, 20507, 47557, 26445, 61307, 19007, 21246, 29320, 56028, 40570, 44685, 39706, 35421, 29339, 50968, 59861, 25185, 40765, 17962, 33734, 34296, 62951, 53466, 58763, 50947, 35298, 20492, 18310, 61978, 50859, 61834, 25129, 30781, 60992, 34682, 35218, 61075, 51644, 41391, 43918, 61903, 23957, 51887, 51255, 41750, 51498, 62322, 21687, 24683, 36228, 65031, 25479, 53889, 53089, 44830, 61276, 63570, 56808, 37855, 21311, 55753, 53989, 51220, 16777, 36727, 18585, 48784, 37463, 36430, 53811, 26629, 17246, 37943, 57136, 43592, 21252, 49395, 25552, 24066, 51030, 16919, 25519, 58570, 63599, 33047, 53620, 25686, 58730, 27239, 18255, 23077, 37793, 35600, 58730, 31875, 38171, 25452, 48808, 55736, 28437, 61903, 34064, 18986, 40854, 64033, 40335, 26990, 25043], [24599, 42440, 62964, 45740, 58188, 46635, 48409, 54890, 20883, 41853, 60034, 32958, 37308, 52295, 22494, 60967, 36068, 62346, 39058, 38334, 29569, 17284, 65454, 57437, 60169, 56309, 58043, 59373, 26544, 44977, 59239, 17487, 43184, 60204, 50970, 17230, 41439, 34221, 43495, 34097, 57251, 49599, 27079, 31783, 37466, 30472, 34954, 57131, 61308, 35894, 40759, 22289, 32306, 56050, 47296, 25159, 37397, 19063, 31437, 42853, 45166, 16981, 31917, 63410, 30003, 22717, 61277, 25052, 62831, 48010, 52519, 37806, 35986, 32759, 48112, 32486, 60230, 17881, 58042, 53580, 63471, 60248, 30292, 26825, 61813, 29580, 18985, 50558, 52903, 50575, 59119, 62839, 39169, 20241, 55250, 59065, 57956, 48073, 42148, 64219, 55811, 16919, 19333, 54403, 17539, 39751, 55016, 45869, 18349, 55848, 24663, 53081, 37087, 23871, 61885, 62933, 34256, 42205, 33164, 40201, 46629, 42829, 21099, 26897, 52048, 35995, 42038, 21189], [35771, 62278, 50069, 35766, 33335, 25900, 55701, 46131, 31969, 33750, 16593, 25160, 57906, 18661, 54698, 61264, 51753, 31947, 43715, 22523, 22173, 39781, 37924, 51723, 32072, 35675, 29161, 20428, 28870, 46179, 21807, 25165, 18337, 27995, 31271, 35748, 39949, 39178, 56211, 18656, 23936, 59673, 64856, 45960, 54641, 55098, 34341, 22390, 32465, 16594, 28206, 59245, 47807, 47837, 62992, 47640, 20339, 45514, 27088, 46924, 27199, 27053, 17836, 39639, 25773, 22601, 45731, 37107, 46343, 61944, 32975, 62332, 60098, 22582, 41869, 64197, 30449, 60078, 24237, 23946, 57604, 64813, 45489, 38692, 21466, 41946, 61700, 31121, 53068, 33501, 30868, 54677, 18317, 27831, 61799, 21021, 39796, 46686, 39399, 17705, 59095, 23120, 35729, 59847, 46492, 29191, 36873, 52405, 42074, 28061, 56525, 48058, 49550, 48023, 43119, 47777, 26216, 26800, 40177, 64128, 51259, 22562, 52827, 50603, 26200, 34264, 44751, 16610], [49732, 40742, 54287, 44621, 30117, 17306, 30823, 65467, 63126, 61871, 52771, 22067, 40028, 48297, 64417, 40622, 32077, 21481, 19379, 60021, 55815, 47660, 42410, 56249, 22186, 18197, 26212, 40717, 44058, 55519, 25875, 18694, 18520, 58405, 44098, 63786, 23966, 41759, 19822, 39865, 61839, 17388, 58622, 29471, 57309, 49594, 54395, 23491, 48904, 63098, 31414, 48542, 24394, 46897, 16805, 27989, 46872, 50130, 35155, 44273, 32283, 34759, 41677, 60284, 50087, 21349, 34463, 55169, 54401, 55554, 42354, 54556, 65140, 33313, 30982, 37758, 19380, 29010, 21654, 26435, 35820, 62840, 63812, 44216, 48204, 65198, 37390, 52105, 58321, 51884, 37668, 41529, 43730, 52300, 26588, 60474, 45574, 16608, 18930, 24550, 28475, 16877, 56541, 34897, 48548, 49487, 49298, 54641, 57468, 38454, 27362, 52035, 43081, 30973, 60135, 49570, 60055, 33746, 45554, 47207, 50467, 56936, 60187, 58187, 25197, 29438, 30876, 23044], [62280, 44772, 59944, 21862, 63935, 42536, 17395, 50796, 21962, 30824, 50844, 51871, 43594, 47795, 28574, 47841, 50834, 33961, 18628, 45481, 24252, 25755, 60673, 28000, 38877, 32038, 52697, 62111, 41428, 48767, 46194, 31425, 59551, 44424, 22478, 50584, 44731, 20646, 43743, 49700, 21793, 63487, 55129, 45046, 43766, 22751, 41646, 25506, 56238, 55099, 31573, 44614, 19601, 65453, 18087, 30258, 25015, 23971, 46138, 23722, 43652, 42143, 35216, 25903, 23015, 24769, 30348, 63249, 20000, 35553, 34791, 62030, 65046, 42842, 63659, 60913, 43978, 61625, 59574, 57350, 55396, 17400, 59039, 33653, 42639, 62567, 64355, 32568, 55513, 62299, 63381, 27497, 41380, 19039, 20598, 49243, 55757, 61154, 16652, 54626, 60204, 59176, 27353, 37125, 40861, 62839, 56392, 49964, 47798, 41664, 42689, 34299, 44120, 62397, 61372, 57620, 58097, 25998, 59373, 28925, 42117, 34423, 32383, 45628, 22205, 32666, 51285, 53925], [38936, 23615, 18628, 51912, 64057, 45232, 18691, 46037, 26633, 53040, 51118, 36486, 23414, 23787, 22093, 52094, 64592, 63977, 35675, 35354, 44614, 64662, 57885, 26121, 59450, 44039, 37214, 40929, 40031, 51160, 31530, 48973, 58255, 37114, 29923, 25010, 24990, 47471, 45125, 24449, 20301, 25394, 32455, 56898, 63379, 23077, 24883, 53935, 26686, 20750, 17626, 22280, 62284, 44573, 35884, 56668, 44499, 44581, 27890, 25483, 32130, 17897, 65514, 59686, 27329, 51461, 20002, 52157, 24153, 62131, 59048, 51792, 22951, 38460, 32591, 54517, 59617, 29041, 60804, 29777, 62735, 17358, 57716, 59479, 52039, 26975, 61679, 46688, 56483, 49196, 28881, 42524, 30334, 39717, 24242, 45845, 41328, 43484, 30260, 49469, 41785, 59025, 43196, 33918, 64907, 43613, 62544, 18228, 30903, 39706, 30031, 20143, 43898, 33767, 50503, 30492, 28071, 56433, 30599, 54931, 46438, 19494, 32319, 31156, 60595, 49527, 61014, 52480], [49941, 51028, 43850, 31734, 43286, 20043, 38643, 37416, 40935, 64386, 37121, 58483, 64522, 19767, 49543, 61139, 24710, 35766, 21765, 36789, 22473, 63147, 56813, 27193, 59622, 19158, 50495, 51953, 22900, 51418, 60445, 47681, 44560, 21275, 45747, 44614, 35370, 25792, 20419, 42821, 45062, 52078, 48586, 17459, 25794, 25019, 27333, 38289, 38103, 22796, 61273, 42104, 59947, 37922, 46838, 41362, 19846, 58094, 50828, 52139, 41039, 64616, 44963, 59512, 45712, 61919, 35479, 22632, 34784, 27110, 39438, 54381, 59235, 25072, 43226, 62695, 38915, 59925, 23960, 34292, 18499, 19229, 59796, 51771, 20211, 55579, 22399, 38759, 60319, 19839, 19344, 33894, 39988, 32531, 21638, 30010, 17802, 44915, 64599, 62110, 17593, 53996, 38723, 32289, 28282, 21768, 50028, 20978, 41429, 55834, 54015, 60762, 62562, 31765, 28132, 32884, 17730, 41905, 43222, 57840, 18610, 18773, 57494, 19672, 63507, 61980, 22941, 55893], [36636, 41582, 51106, 58635, 49416, 57300, 28162, 26806, 40720, 36596, 53858, 19257, 23869, 24854, 57325, 46212, 31785, 48609, 43250, 59896, 65471, 30631, 54834, 45595, 51933, 28566, 60339, 42402, 36272, 21688, 29018, 41451, 40322, 28750, 34760, 54640, 48212, 42562, 61948, 27652, 43591, 19781, 49483, 41958, 50470, 30847, 59200, 18537, 35791, 43515, 64107, 25541, 33504, 18907, 32782, 20283, 34234, 49937, 33639, 58752, 45250, 25963, 17099, 58553, 30058, 52346, 26926, 59957, 25037, 65198, 26584, 48138, 48550, 36318, 24742, 35250, 46111, 23661, 55752, 29545, 27154, 37262, 38324, 61401, 49362, 23292, 22823, 25840, 64443, 24707, 58436, 62479, 35563, 18815, 38614, 42571, 55492, 18866, 18502, 64139, 46148, 35152, 50131, 46893, 58319, 45940, 34093, 63501, 21882, 47227, 40126, 59774, 37335, 16996, 38941, 38463, 55523, 57027, 48452, 39706, 59630, 21024, 26234, 22066, 30008, 24072, 39542, 25397], [17366, 18430, 54479, 17221, 31986, 55444, 57327, 43882, 26430, 22881, 18570, 53620, 46858, 51793, 45521, 28830, 25090, 17215, 58616, 64150, 65097, 63974, 24637, 53113, 39393, 25735, 21155, 54909, 22600, 45816, 65427, 43415, 31092, 40446, 41142, 37209, 46240, 32799, 25859, 45157, 54277, 64755, 45690, 39742, 34874, 26648, 25170, 36209, 23490, 25577, 58033, 29359, 24471, 27966, 35384, 60532, 39857, 46648, 33168, 47438, 17918, 46123, 45943, 21128, 54831, 29941, 39826, 44079, 60332, 59980, 36538, 40570, 65072, 17620, 51017, 22364, 60528, 39670, 22598, 49197, 55939, 53199, 49996, 32357, 58839, 51750, 30622, 31768, 61147, 53228, 37009, 54048, 46333, 47346, 25413, 18094, 28355, 27777, 41106, 40125, 23733, 25666, 59038, 50560, 30243, 55712, 17915, 16472, 18597, 50918, 54257, 55289, 64452, 27254, 22473, 46794, 23946, 20916, 64162, 46296, 52818, 22280, 39941, 26326, 40783, 58051, 54802, 65531], [33252, 63851, 64977, 19704, 34071, 28384, 25876, 52820, 34064, 46966, 43553, 22767, 33957, 50571, 60408, 28061, 65160, 34148, 22033, 50420, 37474, 29616, 39721, 51574, 55083, 38361, 49326, 43824, 54288, 61623, 37641, 39501, 27851, 53889, 46053, 26429, 34529, 46782, 40534, 57323, 59155, 40978, 62166, 27647, 62186, 60069, 38606, 52603, 20477, 25753, 53409, 25464, 61843, 18280, 20249, 17930, 28221, 23689, 60669, 60928, 53345, 60337, 30601, 53233, 22674, 31919, 62909, 58125, 23280, 44785, 53888, 60450, 54481, 56341, 53548, 35019, 18780, 35796, 23141, 37185, 23484, 46092, 53483, 41843, 36211, 41987, 48433, 62181, 52257, 47262, 59736, 37062, 27250, 65386, 20940, 30015, 21946, 50126, 22547, 62210, 65248, 32923, 56763, 39807, 25991, 56037, 37959, 17436, 49905, 61925, 34077, 44443, 26224, 32070, 41295, 30634, 48431, 45555, 63887, 32466, 60922, 58921, 61756, 54537, 39682, 35287, 27553, 38936], [26152, 19760, 48918, 53463, 47583, 36336, 50892, 18184, 35951, 49247, 33018, 22273, 20031, 29272, 40071, 21105, 45869, 23355, 63311, 40750, 33396, 53901, 20421, 64494, 47861, 21028, 17534, 41191, 45030, 65347, 21455, 20730, 31232, 46388, 44891, 29725, 31711, 61111, 38556, 25961, 50612, 34878, 59853, 30923, 39003, 18063, 56255, 38786, 56696, 23058, 56431, 63979, 43808, 59769, 37374, 51481, 16681, 38710, 37903, 55466, 49382, 41377, 59481, 44180, 22741, 51298, 38190, 59440, 25942, 36188, 50407, 21103, 41470, 23676, 45021, 44989, 56200, 43789, 20304, 62749, 30039, 23096, 40106, 48077, 62171, 20420, 20094, 39801, 52951, 46712, 35257, 51806, 38029, 33123, 42059, 43296, 32962, 59613, 64106, 23514, 29455, 61799, 28597, 42365, 55135, 26423, 22117, 51211, 57492, 49278, 21341, 46497, 56398, 31426, 45874, 56356, 23200, 27923, 62226, 24108, 27454, 50469, 58670, 32396, 45718, 45964, 17582, 46042], [41912, 26637, 25617, 36818, 33911, 40098, 21017, 46663, 62270, 34771, 23404, 19290, 56732, 49872, 58664, 59206, 23108, 29974, 54676, 52619, 56930, 30609, 63028, 44870, 53390, 64084, 53759, 33315, 49327, 44986, 18396, 17526, 63791, 55027, 24802, 23639, 39939, 65210, 64502, 20210, 38997, 64368, 49489, 32075, 62061, 58228, 22306, 28907, 32572, 41226, 35146, 57565, 56107, 38035, 53835, 25154, 20586, 51714, 62039, 27101, 37966, 57059, 64081, 19632, 21913, 63421, 53383, 31521, 58497, 41833, 56361, 29521, 57587, 21137, 59107, 39641, 59892, 30515, 59114, 46923, 49710, 40579, 27223, 58498, 41581, 65109, 26730, 35696, 29261, 54161, 45316, 26737, 21444, 33427, 31754, 61387, 37635, 43423, 43716, 17243, 58207, 60437, 56397, 34791, 51927, 62888, 22259, 33981, 35192, 18387, 48405, 48555, 17254, 28473, 60522, 45856, 37524, 55908, 27473, 53551, 21834, 52948, 61528, 56978, 21317, 38352, 16467, 16459], [51310, 29595, 33283, 49116, 50255, 21973, 36816, 49750, 65124, 31212, 32275, 40536, 55097, 16794, 50424, 20208, 23352, 47438, 31339, 23264, 62763, 24866, 38953, 49411, 45262, 39061, 29377, 43059, 64911, 63052, 37089, 61907, 49031, 51592, 37405, 18658, 39072, 40130, 60759, 51461, 62584, 54728, 35324, 22724, 20181, 54522, 48935, 47270, 32034, 58428, 17091, 42845, 56831, 39827, 54260, 33577, 59686, 41883, 32913, 52046, 56492, 32498, 50165, 20573, 16744, 40416, 37821, 32257, 40032, 28756, 37001, 37093, 22599, 23277, 30947, 35235, 56082, 18279, 29099, 42110, 21640, 60884, 63109, 55777, 30087, 45172, 25497, 30528, 53434, 60496, 43360, 49812, 22738, 60491, 63918, 27595, 50821, 19421, 45219, 39754, 21665, 38059, 39524, 24560, 32351, 25098, 29403, 50531, 45305, 24424, 62677, 43868, 37806, 44575, 36686, 18085, 34907, 64242, 36317, 49652, 55693, 41124, 40985, 38638, 44423, 18770, 30983, 56399], [20646, 55719, 39477, 29608, 49140, 50396, 42369, 32450, 18817, 28078, 50553, 16475, 35580, 43274, 57595, 29130, 37132, 56157, 32281, 23759, 26208, 23193, 53540, 34697, 17285, 46705, 44876, 19640, 57149, 54401, 63471, 51590, 60054, 18320, 57960, 28020, 30743, 29378, 40614, 27315, 31672, 41185, 60178, 61067, 58537, 30198, 28082, 31521, 32468, 22879, 29838, 41244, 58007, 36422, 63442, 21824, 18343, 48669, 59757, 45113, 29696, 44124, 49329, 54546, 34538, 60721, 44435, 37988, 31212, 48808, 41318, 49990, 25419, 47020, 57430, 55192, 31294, 41060, 27493, 61574, 64957, 27667, 25373, 30038, 54416, 19771, 52849, 20058, 25034, 47377, 42458, 35057, 37530, 19879, 57888, 48080, 51213, 26153, 52020, 27278, 21950, 63391, 46086, 18903, 53097, 25178, 63732, 38346, 34973, 39412, 22786, 19739, 42810, 62911, 44487, 49748, 55972, 22694, 38522, 51629, 25827, 48604, 56403, 61574, 46420, 42822, 26086, 48903], [51085, 23740, 28059, 63546, 56660, 21778, 46854, 52377, 61614, 61659, 33734, 61648, 41230, 38073, 20015, 32341, 40612, 47273, 40128, 24079, 46241, 57486, 60818, 60791, 40791, 54012, 39219, 23228, 31454, 54009, 56603, 41196, 22895, 36058, 46464, 47096, 37539, 22147, 46584, 50734, 49507, 27862, 18255, 18163, 59201, 46685, 20790, 42127, 38454, 61661, 21595, 29015, 28049, 51734, 41223, 46501, 29339, 32905, 53472, 51368, 54818, 16929, 26200, 45772, 44331, 24641, 61475, 61361, 26964, 56702, 33400, 55383, 53125, 49428, 22115, 18253, 28623, 53137, 55448, 23307, 43032, 19322, 45499, 25641, 32419, 20548, 39094, 64629, 19083, 30433, 41249, 16488, 33996, 43770, 46291, 22202, 61692, 55182, 44525, 56352, 41842, 36870, 44004, 38451, 37973, 39057, 36906, 24289, 61936, 50291, 36412, 30211, 45006, 51645, 39949, 61793, 62689, 34046, 44346, 33497, 16881, 21234, 48502, 30517, 47897, 39108, 59175, 48644], [54629, 29807, 50056, 43663, 21264, 56389, 59214, 53351, 31278, 45544, 63252, 28011, 37583, 23346, 52089, 35936, 56726, 55536, 55315, 26409, 60630, 57833, 24006, 36243, 21345, 61920, 59995, 52352, 51943, 19801, 52141, 55753, 36067, 54559, 32136, 57986, 50020, 43146, 58301, 58954, 53951, 55744, 20405, 50027, 25896, 64106, 24624, 57967, 62399, 47835, 51110, 62330, 17053, 46565, 51890, 21028, 49167, 40268, 30951, 59893, 38581, 64759, 59165, 63611, 46516, 52275, 50829, 20179, 26887, 23098, 50520, 43536, 27142, 47488, 42728, 53940, 61561, 26609, 56574, 36716, 26811, 36452, 30616, 31197, 34777, 44087, 63794, 17532, 19021, 35731, 32373, 17636, 41489, 24773, 48851, 24947, 46073, 33985, 18797, 34636, 30086, 60849, 37757, 64238, 22455, 59790, 64743, 25651, 50777, 27360, 36471, 40720, 32156, 63284, 62016, 31897, 46301, 20670, 37299, 20158, 45967, 32649, 39414, 17103, 58416, 60146, 43090, 55482]]
b = [[451221610], [442943606], [427701108], [412332201], [420123051], [414986216], [438623797], [420437726], [441180615], [435697644], [439577246], [420855216], [443164594], [423060411], [432811692], [428990985], [409097094], [422599350], [448017575], [424144725], [460442998], [437444916], [424897948], [425207973], [445555951], [428000235], [432243217], [429607968], [430549656], [431657237], [434087684], [436077351], [406722303], [422176649], [449487685], [426297456], [428655109], [449399115], [459781183], [415551330], [427227186], [440578026], [433230378], [417100981], [476947553], [440063520], [439575752], [451571520], [444380002], [435878070], [420480938], [435189882], [413434356], [427629751], [449893395], [401924463], [429865360], [443532000], [452750655], [468671991], [430316382], [428163728], [438961318], [433694207], [437805328], [480417652], [422756559], [432393331], [438475926], [436685263], [440402272], [437518968], [457856295], [428763572], [434186810], [429481579], [432661533], [428502137], [421480434], [432784165], [418821663], [446529032], [447010098], [434992727], [435467770], [456152628], [435971410], [460964043], [415046916], [439016561], [405361818], [415668066], [433700840], [420139711], [455434303], [420416467], [455802829], [446691985], [423029505], [422605886], [405608269], [423623505], [453724775], [424334577], [464821552], [437514857], [427939883], [403533100], [427445112], [440774345], [436912306], [421416562], [432400633], [454588196], [419087757], [451571716], [452182857], [434678734], [419917693], [429017992], [426459011], [458384806], [424253111], [444133085], [429827375], [428074321], [436619163], [452784657]]

an = np.array(a)
bn = np.array(b)

x = np.linalg.solve(an,bn)
# print (x)
for i in range(len(x)):
    if x[i][0] % 1 >= 0.5:
        x[i][0] += 1
    else:
        x[i][0] = int(x[i][0])

flag = ''.join([chr(int(n[0])) for n in x])
print (flag)

get flag!

flag{Soooo000_LooOOOOOOOOggO99g99_s1muLtaNeOus_EEEQuat10n5_Y0UUUUUUuuu_cAA44AANNnnN_SOOOOOOLVE_IT17TT11771ITIT!!!_8ShotDshP90ab}

 

tiny

文件分析

这是一个32位的ELF文件,不过这ELF文件很小。

详细介绍:https://jin-yang.github.io/post/linux-the-really-teensy-elf-file.html

代码:

  ; tiny.asm
  
  BITS 32
  
                org     0x08048000
  
  ehdr:                                                 ; Elf32_Ehdr
                db      0x7F, "ELF"                     ;   e_ident
                db      1, 1, 1, 0, 0
  _start:       mov     bl, 42
                xor     eax, eax
                inc     eax
                int     0x80
                dw      2                               ;   e_type
                dw      3                               ;   e_machine
                dd      1                               ;   e_version
                dd      _start                          ;   e_entry
                dd      phdr - $$                       ;   e_phoff
                dd      0                               ;   e_shoff
                dd      0                               ;   e_flags
                dw      ehdrsize                        ;   e_ehsize
                dw      phdrsize                        ;   e_phentsize
                dw      1                               ;   e_phnum
                dw      0                               ;   e_shentsize
                dw      0                               ;   e_shnum
                dw      0                               ;   e_shstrndx
  
  ehdrsize      equ     $ - ehdr
  
  phdr:                                                 ; Elf32_Phdr
                dd      1                               ;   p_type
                dd      0                               ;   p_offset
                dd      $$                              ;   p_vaddr
                dd      $$                              ;   p_paddr
                dd      filesize                        ;   p_filesz
                dd      filesize                        ;   p_memsz
                dd      5                               ;   p_flags
                dd      0x1000                          ;   p_align
  
  phdrsize      equ     $ - phdr
  
  filesize      equ     $ - $$

在Linux系统上执行

nasm -f bin -o tiny tiny.asm

chmod +x tiny

./tiny ; echo $?

wc -c tiny

得到tiny5文件,

echo $?:是最后执行的命令的返回码。

制作方法参考自:

修改tiny

打开tiny5

可以看到程序入口地址为0x8048009,即ELF的头部为前9字节,后面为程序段。类比tiny文件,我们将tiny文件的程序段替换到tiny5。

代码分析

IDA打开之后可以看到汇编代码

首先,我们可以看到在0x1004D处有个循环,ecx=2,两次分别传入0x8af45207和0x93f9a63,保存到esi,并与edi异或。edx再与esi异或。

edi的值为[ebx+ecx*4-4],即两次循环,分别为flag的后四字节和前四字节,并对edi右移三位。

由于,esi的初始值我们已知,需要求edi的值,那我们就需要,异或后的esi的值,而异或后的esi的值,我们可以通过edx获取,edx的初始值已知(0x5d99429)。

根据hint我们通过bl判断flag,bl需要为0,则ZF=1,因此test eax,eax为0,eax=0。所以在or eax,edx中,需要eax=0,则异或后的edx的值必须为0,即esi异或后的值等于esi的初始值,那么就能逆向求flag了。

题目给的hint,表明我们最后指定的代码需要返回1,最后执行int 80h中断,调用eax,但这里eax不管之前多少,都必为1,因为前面执行了xor eax,eax   inc eax,所以不知道这个hint的作用在哪,等官方WP出来在修正一下。现在假设异或后的edx=0.

这里的移位为循环左移

>>> '0b'+bin(0x5d99429^0x93f9a63)[2:].rjust(32,'0')
'0b00001100111001100000111001001010'
>>> hex(0b01100111001100000111001001010000)
'0x67307250'
>>> '0b'+bin(0x5d99429^0x8af45207)[2:].rjust(32,'0')
'0b10001111001011011100011000101110'
>>> hex(0b01111001011011100011000101110100)
'0x796e3174'

get flag!

flag{t1nyPr0g}

原文地址:https://www.cnblogs.com/Mayfly-nymph/p/12831119.html