[华为杯研究生创新赛 2023] 初赛 REV WP

前言

一年没打比赛了, 差一题进决赛, REV当时lin的第三个challenge没看出来是凯撒, 想得复杂了, 结果错失一次线下机会 >_<

T4ee

动态调试, nop掉反调试代码

发现处理过程为

  • 置换
  • sub_412F20处理(这里看其他师傅的wp知道应该是rc4, 我是直接en逆的
  • buf字符串中每一位和下一位异或

最后和byte_41C004数组比较
逆过程则反过来

permut_table = [
   18, 157, 158, 161, 223,  37, 194, 130, 115, 251, 
  116, 227, 190, 128, 208, 109, 255, 127,  31, 111, 
   17,  74, 153, 118,  14,  67, 204,  75, 179,  69, 
   47, 154, 133,   0, 160,   3, 207, 246, 209,  41, 
  205,  22, 254,  15,  70, 144, 249, 178, 238, 114, 
   54,  65, 164, 220, 123,  27,   2,  24,  52,  19, 
   16,  49, 107, 252, 234, 183,  78, 110,  85,  64, 
   96,  72,  56,  60,  33,  57,  36, 120, 165,  63, 
  112, 216,  83,  11, 217,  35, 180, 198,  13, 201, 
  250, 129, 170, 167,  10, 163, 231,  39, 244, 172, 
  137, 132, 240, 210, 113,  12, 195, 124,  93, 193, 
  224, 186, 104,  98,   5, 131, 199,  82, 202, 142, 
  145,  42, 196, 147, 197,  30, 152, 215,  68, 226, 
   73, 177, 146, 173,  76, 247, 119, 230,   4,  25, 
  176,  89,  91, 232,  90, 150, 125, 225, 181, 175, 
  182, 106,  46, 218,   9, 122, 239, 200, 211,  59, 
  243, 143, 206, 135,  99, 228,  29, 213, 141,  21, 
  185, 117,   7, 156, 253, 126,  50, 184, 214,  23, 
   28,  20, 241, 162,  97, 138,  88,  94,  58, 235, 
  212, 151, 140,  26, 169, 166,  87, 171, 248, 148, 
  222, 192,  92,  86, 245, 102,  53,  62, 100, 139, 
   34,  40, 159,  79,  38,  44,   6,  84,  48, 229, 
  121,  77,  51, 237, 103, 174,  66, 134, 203, 189, 
  149, 233,  95,  45,   8, 136,  32,  55, 101,   1, 
   61, 219, 155,  81,  71, 168, 105, 221, 236, 187, 
  108,  80,  43, 191, 242, 188
]

checklist = [
    44,  64, 206, 136, 234, 179, 167, 250, 190, 227, 
    50, 217, 139, 228,  28, 119, 252, 212, 118, 171, 
    135,  65, 176, 206, 245,  94,  97, 134, 168, 207, 
    113, 153,  92, 177
]

for i in range(32, -1, -1):
    checklist[i] = checklist[i + 1] ^ checklist[i]

flag_tmp = [0 for _ in range(34)]

v6, v7 = 0, 0
for i in range(0, 34, 1):
    v7 = (v7 + 1) % 256
    v6 = (v6 + permut_table[v7]) % 256
    v5 = permut_table[v7]
    permut_table[v7] = permut_table[v6]
    permut_table[v6] = v5

    # brute force every byte
    for k in range(1, 128):
        tmp = k ^ permut_table[(permut_table[v6] + permut_table[v7]) % 256]
        if tmp == checklist[i]:
            flag_tmp[i] = k

print(flag_tmp)

change_table = [
    7, 3, 15, 18, 0, 6, 25, 21, 20, 2,
    29, 12, 14, 17, 5, 19, 11, 22, 8, 1, 
    27, 10, 31, 30, 4, 26, 28, 32, 33, 13,
    16, 9, 23, 24
]

flag = ''
for i in range(34):
    flag += chr(flag_tmp[change_table[i]])

print(flag)

这题很坑的地方是, 静态分析判断的函数调用顺序不是实际执行顺序, 很坑, 浪费了大量时间
动调几遍最后才确定的函数调用顺序

easy_xors

有一些花指令, 影响反编译, 直接读汇编
这里有个反调试, 直接nop掉, 或者用插件绕过

[华为杯研究生创新赛 2023] 初赛 REV WP_第1张图片

定位到xor代码

[华为杯研究生创新赛 2023] 初赛 REV WP_第2张图片

动调提取xor的数组, xor回去就行

checklist = [
  153,  72,  94, 189, 197, 155, 133, 150,  32, 252, 
   24, 178,   0, 197, 218, 192, 177, 200, 108, 129, 
   99, 189,   9,  80, 194, 187, 236,  51, 214, 215, 
  143, 175, 173, 206,  20, 237, 140, 206, 111, 169, 
  168,   2, 140, 144, 148, 103
]

xor_list = [
    0xFF, 0x24, 0x3F, 0xDA, 0xBE, 0xA9, 0xB6, 0xF7, 0x12, 0x8F, 
    0x29, 0xD0, 0x73, 0xF7, 0xF7, 0xA2, 0x83, 0xAD, 0x5F, 0xB0, 
    0x51, 0x90, 0x3F, 0x68, 0xF6, 0x8C, 0xC1, 0x0A, 0xB7, 0xB5, 
    0xBC, 0x82, 0xCC, 0xFC, 0x67, 0xDE, 0xE9, 0xFF, 0x5B, 0xCB, 
    0xC9, 0x67, 0xEA, 0xF6, 0xA6, 0x1A
]

flag = ''
for i in range(len(checklist)):
    flag += chr(checklist[i] ^ xor_list[i])

print(flag)

小林的世界

一共三个challenges, 前两个的key是rot13处理, 第一个是hasaki, 第二个是vxnfnu

[华为杯研究生创新赛 2023] 初赛 REV WP_第3张图片

base64串
[华为杯研究生创新赛 2023] 初赛 REV WP_第4张图片

第三个challenge, 可以看到后面有个base64串, 解出来是DASCTF{hasaki-pdtzptz-vxnfnu}, 输入进去不对, 动态调试查看一下中间值, 发现输入进去的pdtzptz会变成uiyeuye, 猜测是凯撒加密, 偏移为5

[华为杯研究生创新赛 2023] 初赛 REV WP_第5张图片

pdtzytz凯撒解密回去, 就是kyoukou
最后得到flag: DASCTF{hasaki-kyoukou-vxnfnu}

[华为杯研究生创新赛 2023] 初赛 REV WP_第6张图片

Robbie gave up

Unity 逆向, dnSpy打开Robbie gave up_Data\Managed\Assembly-CSharp.dll, 定位到关键代码Robbie.win(), 这个关键函数的定位一个一个object看就行
[华为杯研究生创新赛 2023] 初赛 REV WP_第7张图片

// Robbie
// Token: 0x0600005C RID: 92 RVA: 0x0001080C File Offset: 0x0000EA0C
public static object Win()
{
	for (int i = GameManager.instance.orbs.Count; i < Robbie.data1.Length; i++)
	{
		Robbie.data2[i] = (byte)(Robbie.data1[i] ^ i);
	}
	Type type = Assembly.Load(Robbie.data2).GetType("ClassLibrary1.Class1");
	object obj = type.GetConstructor(Type.EmptyTypes).Invoke(new object[0]);
	return type.GetMethod("Method").Invoke(obj, null).ToString();
}

和flag相关的数据都是硬编码在程序中的, 可以抽取关键逻辑出来, 在vscode装C#插件, 创建项目跑

[华为杯研究生创新赛 2023] 初赛 REV WP_第8张图片

当然也可以在线运行, 本地环境要求Microsoft.NETCore.App等SDK各种依赖, 需要一点配置时间

using System;
using System.Reflection;

namespace ConsoleApp
{
    class Robbie
	{
		// Robbie
		// Token: 0x04000084 RID: 132
		private static int[] data1 = new int[]
		{
			77,
			91,
			146,
			3,
			7,
			5,
			6,
			7,
			12,
			9,
			10,
			11,
			243,
			242,
			14,
			15,
			168,
			17,
			18,
			19,
			20,
			21,
			22,
			23,
			88,
			25,
			26,
			27,
			28,
			29,
			30,
			31,
			32,
			33,
			34,
			35,
			36,
			37,
			38,
			39,
			40,
			41,
			42,
			43,
			44,
			45,
			46,
			47,
			48,
			49,
			50,
			51,
			52,
			53,
			54,
			55,
			56,
			57,
			58,
			59,
			188,
			61,
			62,
			63,
			78,
			94,
			248,
			77,
			68,
			241,
			79,
			138,
			105,
			241,
			75,
			7,
			129,
			108,
			26,
			39,
			57,
			34,
			114,
			35,
			38,
			58,
			49,
			37,
			57,
			52,
			122,
			56,
			61,
			51,
			48,
			48,
			20,
			65,
			0,
			6,
			68,
			23,
			19,
			9,
			72,
			0,
			4,
			75,
			40,
			34,
			61,
			79,
			29,
			30,
			22,
			22,
			90,
			120,
			123,
			125,
			92,
			121,
			122,
			123,
			124,
			125,
			126,
			127,
			208,
			196,
			130,
			131,
			200,
			132,
			133,
			135,
			232,
			8,
			43,
			63,
			140,
			141,
			142,
			143,
			144,
			145,
			146,
			147,
			116,
			149,
			180,
			183,
			147,
			152,
			170,
			155,
			156,
			141,
			158,
			159,
			160,
			167,
			162,
			163,
			164,
			165,
			166,
			167,
			38,
			134,
			170,
			171,
			172,
			141,
			174,
			175,
			176,
			241,
			178,
			179,
			180,
			181,
			182,
			167,
			184,
			153,
			186,
			187,
			188,
			191,
			190,
			191,
			196,
			193,
			194,
			195,
			196,
			197,
			198,
			199,
			206,
			201,
			202,
			203,
			204,
			205,
			206,
			207,
			208,
			81,
			210,
			211,
			212,
			215,
			214,
			215,
			216,
			217,
			218,
			219,
			223,
			221,
			190,
			90,
			224,
			225,
			242,
			227,
			228,
			245,
			230,
			231,
			232,
			233,
			250,
			235,
			236,
			253,
			238,
			239,
			240,
			241,
			242,
			243,
			228,
			245,
			246,
			247,
			248,
			249,
			250,
			251,
			252,
			253,
			254,
			255,
			320,
			302,
			258,
			259,
			335,
			261,
			262,
			263,
			264,
			329,
			266,
			267,
			408,
			270,
			270,
			271,
			272,
			273,
			274,
			275,
			276,
			277,
			278,
			279,
			280,
			281,
			282,
			283,
			284,
			285,
			286,
			287,
			288,
			321,
			290,
			291,
			296,
			293,
			294,
			295,
			296,
			297,
			298,
			299,
			300,
			301,
			302,
			303,
			304,
			305,
			306,
			307,
			308,
			309,
			310,
			311,
			312,
			313,
			314,
			315,
			316,
			317,
			318,
			319,
			320,
			321,
			322,
			323,
			324,
			325,
			326,
			327,
			328,
			329,
			330,
			331,
			332,
			333,
			334,
			335,
			336,
			337,
			338,
			339,
			340,
			341,
			342,
			343,
			344,
			377,
			346,
			347,
			340,
			349,
			350,
			351,
			352,
			353,
			354,
			355,
			356,
			357,
			358,
			359,
			352,
			329,
			362,
			363,
			292,
			365,
			366,
			367,
			368,
			369,
			370,
			371,
			372,
			373,
			374,
			375,
			342,
			269,
			287,
			259,
			264,
			381,
			382,
			383,
			276,
			398,
			386,
			387,
			388,
			421,
			390,
			391,
			392,
			409,
			394,
			395,
			396,
			399,
			398,
			399,
			400,
			401,
			402,
			403,
			404,
			405,
			406,
			407,
			408,
			409,
			410,
			411,
			444,
			413,
			414,
			511,
			398,
			467,
			465,
			465,
			455,
			421,
			422,
			423,
			316,
			426,
			426,
			427,
			428,
			493,
			430,
			431,
			432,
			437,
			434,
			435,
			436,
			423,
			438,
			439,
			440,
			441,
			442,
			443,
			444,
			445,
			446,
			447,
			448,
			449,
			450,
			451,
			388,
			453,
			454,
			391,
			486,
			443,
			431,
			423,
			419,
			430,
			462,
			463,
			476,
			465,
			466,
			467,
			468,
			437,
			470,
			471,
			472,
			475,
			474,
			475,
			476,
			459,
			478,
			479,
			480,
			481,
			482,
			483,
			484,
			485,
			486,
			487,
			488,
			489,
			490,
			491,
			428,
			493,
			494,
			429,
			496,
			497,
			498,
			499,
			500,
			501,
			502,
			503,
			504,
			505,
			506,
			507,
			508,
			509,
			510,
			511,
			624,
			558,
			514,
			515,
			516,
			517,
			518,
			519,
			576,
			521,
			522,
			523,
			526,
			525,
			523,
			527,
			672,
			565,
			530,
			531,
			644,
			543,
			534,
			535,
			537,
			537,
			538,
			539,
			540,
			541,
			542,
			543,
			544,
			545,
			546,
			547,
			548,
			549,
			550,
			551,
			552,
			553,
			554,
			555,
			556,
			557,
			558,
			559,
			560,
			561,
			562,
			563,
			564,
			565,
			566,
			567,
			568,
			569,
			570,
			571,
			572,
			573,
			574,
			575,
			576,
			577,
			578,
			579,
			580,
			581,
			582,
			583,
			584,
			585,
			586,
			587,
			588,
			589,
			590,
			591,
			590,
			595,
			634,
			579,
			596,
			597,
			604,
			637,
			558,
			603,
			626,
			587,
			604,
			605,
			596,
			605,
			531,
			624,
			610,
			611,
			622,
			536,
			613,
			615,
			616,
			621,
			616,
			537,
			517,
			621,
			622,
			543,
			525,
			627,
			626,
			627,
			624,
			607,
			556,
			629,
			515,
			632,
			634,
			635,
			632,
			593,
			633,
			637,
			763,
			640,
			642,
			643,
			640,
			687,
			644,
			764,
			650,
			649,
			650,
			655,
			678,
			767,
			653,
			679,
			646,
			657,
			658,
			665,
			697,
			647,
			660,
			703,
			655,
			665,
			666,
			657,
			671,
			754,
			646,
			671,
			672,
			683,
			650,
			687,
			676,
			677,
			672,
			653,
			683,
			643,
			728,
			680,
			644,
			699,
			686,
			687,
			698,
			668,
			672,
			667,
			675,
			693,
			694,
			701,
			698,
			698,
			658,
			688,
			700,
			701,
			696,
			720,
			729,
			705,
			706,
			713,
			750,
			710,
			748,
			665,
			715,
			741,
			728,
			739,
			731,
			717,
			718,
			709,
			722,
			722,
			762,
			735,
			724,
			725,
			720,
			696,
			704,
			729,
			730,
			721,
			758,
			713,
			756,
			641,
			739,
			717,
			752,
			737,
			716,
			754,
			742,
			743,
			738,
			746,
			645,
			754,
			748,
			749,
			740,
			711,
			763,
			753,
			754,
			757,
			734,
			737,
			732,
			645,
			762,
			642,
			761,
			763,
			764,
			761,
			657,
			741,
			768,
			769,
			776,
			796,
			836,
			811,
			778,
			773,
			778,
			882,
			776,
			779,
			780,
			777,
			806,
			778,
			784,
			785,
			788,
			825,
			854,
			790,
			782,
			831,
			827,
			793,
			794,
			785,
			770,
			770,
			814,
			880,
			772,
			801,
			802,
			809,
			782,
			775,
			805,
			831,
			768,
			780,
			810,
			811,
			806,
			775,
			814,
			815,
			803,
			769,
			816,
			819,
			806,
			821,
			822,
			823,
			825,
			825,
			826,
			810,
			846,
			828,
			830,
			831,
			816,
			843,
			817,
			832,
			836,
			837,
			832,
			833,
			864,
			846,
			842,
			843,
			842,
			871,
			846,
			847,
			835,
			865,
			849,
			851,
			950,
			853,
			854,
			855,
			858,
			857,
			858,
			842,
			862,
			806,
			861,
			863,
			864,
			869,
			781,
			881,
			868,
			869,
			876,
			869,
			875,
			788,
			875,
			875,
			876,
			873,
			876,
			788,
			881,
			881,
			882,
			887,
			857,
			856,
			884,
			780,
			890,
			889,
			890,
			895,
			886,
			875,
			885,
			852,
			920,
			903,
			901,
			1004,
			919,
			901,
			902,
			909,
			900,
			907,
			1009,
			904,
			908,
			909,
			906,
			903,
			1023,
			901,
			914,
			915,
			926,
			914,
			897,
			975,
			915,
			926,
			924,
			1012,
			905,
			925,
			926,
			917,
			914,
			894,
			904,
			929,
			991,
			932,
			934,
			935,
			940,
			966,
			959,
			939,
			940,
			935,
			945,
			1007,
			927,
			979,
			944,
			968,
			949,
			949,
			950,
			947,
			946,
			943,
			945,
			912,
			932,
			955,
			953,
			976,
			979,
			961,
			962,
			969,
			969,
			967,
			957,
			964,
			968,
			969,
			974,
			962,
			931,
			985,
			974,
			975,
			986,
			982,
			965,
			907,
			991,
			978,
			976,
			952,
			973,
			985,
			986,
			977,
			1006,
			770,
			968,
			972,
			996,
			970,
			1020,
			993,
			927,
			998,
			998,
			999,
			1004,
			1003,
			913,
			1001,
			1004,
			1005,
			1002,
			1022,
			1012,
			926,
			993,
			1011,
			1012,
			1023,
			921,
			995,
			1016,
			1017,
			1008,
			1002,
			1016,
			1002,
			934,
			1004,
			1028,
			1040,
			1030,
			1052,
			1092,
			1031,
			1149,
			1030,
			1032,
			1033,
			1038,
			1124,
			1049,
			1037,
			1038,
			1029,
			1097,
			1059,
			1218,
			1081,
			1026,
			1030,
			1043,
			1084,
			1030,
			1051,
			1121,
			1048,
			1052,
			1053,
			1050,
			1053,
			1115,
			1056,
			1058,
			1059,
			1056,
			1076,
			1059,
			1096,
			1083,
			1065,
			1066,
			1057,
			1091,
			1081,
			1070,
			1071,
			1082,
			1056,
			1079,
			1060,
			1132,
			1062,
			1075,
			1062,
			1085,
			1062,
			1146,
			1033,
			1248,
			1047,
			1086,
			1087,
			1107,
			1137,
			1092,
			1091,
			1128,
			1092,
			1094,
			1095,
			1099,
			1097,
			1098,
			1114,
			1102,
			1125,
			1092,
			1103,
			1104,
			1111,
			1092,
			1119,
			1111,
			1082,
			1091,
			1111,
			1112,
			1107,
			1088,
			1024,
			1105,
			1118,
			1073,
			1098,
			1120,
			1121,
			1128,
			1145,
			1081,
			1142,
			1122,
			1142,
			1132,
			1092,
			1121,
			1138,
			1125,
			1079,
			1251,
			1146,
			1136,
			1137,
			1139,
			1145,
			1119,
			1034,
			1135,
			1150,
			1058,
			1128,
			1150,
			1059,
			1131,
			1060,
			1267,
			1130,
			1152,
			1153,
			1155,
			1161,
			1274,
			1182,
			1158,
			1159,
			1154,
			1154,
			1179,
			1167,
			1183,
			1160,
			1189,
			1211,
			1175,
			1171,
			1168,
			1256,
			1175,
			1173,
			1174,
			1171,
			1179,
			1178,
			1269,
			1166,
			1180,
			1181,
			1172,
			1166,
			1189,
			1272,
			1229,
			1200,
			1188,
			1189,
			1196,
			1224,
			1204,
			1193,
			1194,
			1185,
			1150,
			1157,
			1184,
			1199,
			1200,
			1207,
			1194,
			1244,
			1193,
			1205,
			1206,
			1213,
			1168,
			1191,
			1210,
			1211,
			1206,
			1206,
			1199,
			1210,
			1239,
			1176,
			1233,
			1222,
			1237,
			1216,
			1232,
			1271,
			1039,
			1247,
			1241,
			1229,
			1255,
			1234,
			1224,
			1238,
			1241,
			1163,
			1219,
			1237,
			1164,
			1239,
			1233,
			1225,
			1225,
			1247,
			1152,
			1221,
			1203,
			1218,
			1246,
			1247,
			1258,
			1225,
			1261,
			1251,
			1252,
			1251,
			1146,
			1270,
			1262,
			1278,
			1202,
			1272,
			1258,
			1276,
			1256,
			1278,
			1268,
			1254,
			1195,
			1217,
			1069,
			1251,
			1253,
			1264,
			1235,
			1166,
			1156,
			1248,
			1276,
			1277,
			1268,
			1268,
			1302,
			1298,
			1290,
			1320,
			1334,
			1282,
			1284,
			1285,
			1395,
			1290,
			1290,
			1291,
			1288,
			1294,
			1300,
			1310,
			1303,
			1355,
			1283,
			1307,
			1356,
			1402,
			1285,
			1303,
			1304,
			1299,
			1397,
			1287,
			1308,
			1309,
			1300,
			1485,
			1288,
			1327,
			1314,
			1315,
			1314,
			1341,
			1353,
			1338,
			1320,
			1321,
			1312,
			1283,
			1330,
			1325,
			1326,
			1317,
			1339,
			1312,
			1338,
			1316,
			1388,
			1318,
			1342,
			1318,
			1328,
			1315,
			1288,
			1522,
			1322,
			1326,
			1335,
			1300,
			1374,
			1351,
			1354,
			1382,
			1363,
			1309,
			1354,
			1349,
			1359,
			1367,
			1371,
			1346,
			1302,
			1363,
			1313,
			1360,
			1360,
			1361,
			1368,
			1403,
			1371,
			1365,
			1366,
			1361,
			1476,
			1352,
			1363,
			1356,
			1284,
			1358,
			1367,
			1358,
			1385,
			1382,
			1293,
			1398,
			1380,
			1381,
			1388,
			1401,
			1331,
			1371,
			1468,
			1402,
			1387,
			1402,
			1334,
			1404,
			1399,
			1376,
			1397,
			1402,
			1350,
			1521,
			1392,
			1373,
			1387,
			1353,
			1407,
			1403,
			1451,
			1405,
			1406,
			1407,
			1412,
			1409,
			1410,
			1426,
			1414,
			1453,
			1420,
			1415,
			1416,
			1423,
			1524,
			1424,
			1420,
			1421,
			1412,
			1413,
			1427,
			1311,
			1531,
			1418,
			1487,
			1433,
			1429,
			1305,
			1521,
			1408,
			1479,
			1430,
			1418,
			1422,
			1434,
			1460,
			1504,
			1503,
			1465,
			1443,
			1444,
			1455,
			1453,
			1457,
			1467,
			1452,
			1409,
			1463,
			1451,
			1455,
			1453,
			1462,
			1441,
			1461,
			1512,
			1442,
			1457,
			1517,
			1319,
			1439,
			1462,
			1465,
			1466,
			1469,
			1428,
			1443,
			1470,
			1471,
			1482,
			1482,
			1491,
			1478,
			1491,
			1437,
			1493,
			1474,
			1497,
			1484,
			1491,
			1529,
			1299,
			1483,
			1484,
			1480,
			1528,
			1500,
			1490,
			1491,
			1490,
			1533,
			1480,
			1495,
			1496,
			1491,
			1488,
			1482,
			1496,
			1482,
			1414,
			1484,
			1508,
			1520,
			1510,
			1515,
			1494,
			1374,
			1519,
			1520,
			1499,
			1486,
			1512,
			1512,
			1519,
			1379,
			1415,
			1528,
			1449,
			1376,
			1498,
			1533,
			1524,
			1525,
			1520,
			1512,
			1524,
			1510,
			1482,
			1428,
			1500,
			1533,
			1534,
			1525,
			1547,
			1543,
			1536,
			1540,
			1580,
			1544,
			1542,
			1543,
			1550,
			1569,
			1556,
			1547,
			1548,
			1543,
			1540,
			1572,
			1624,
			1560,
			1546,
			1568,
			1616,
			1643,
			1549,
			1559,
			1560,
			1555,
			1553,
			1554,
			1551,
			1563,
			1589,
			1540,
			1575,
			1571,
			1569,
			1568,
			1706,
			1612,
			1591,
			1569,
			1649,
			1720,
			1538,
			1573,
			1580,
			1581,
			1576,
			1543,
			1582,
			1585,
			1586,
			1593,
			1599,
			1572,
			1584,
			1568,
			1633,
			1578,
			1596,
			1578,
			1594,
			1579,
			1550,
			1759,
			1607,
			1630,
			1616,
			1628,
			1652,
			1578,
			1638,
			1607,
			1608,
			1603,
			1601,
			1613,
			1614,
			1610,
			1638,
			1602,
			1616,
			1617,
			1620,
			1659,
			1610,
			1621,
			1622,
			1629,
			1618,
			1631,
			1648,
			1627,
			1615,
			1645,
			1624,
			1631,
			1573,
			1633,
			1634,
			1635,
			1633,
			1637,
			1638,
			1654,
			1558,
			1650,
			1642,
			1643,
			1638,
			1639,
			1656,
			1636,
			1627,
			1631,
			1652,
			1649,
			1551,
			1654,
			1654,
			1655,
			1660,
			1659,
			1657,
			1639,
			1659,
			1575,
			1634,
			1552,
			1695,
			1665,
			1666,
			1673,
			1708,
			1674,
			1670,
			1671,
			1678,
			1766,
			1707,
			1675,
			1676,
			1671,
			1666,
			1693,
			1682,
			1721,
			1712,
			1683,
			1684,
			1695,
			1726,
			1673,
			1688,
			1689,
			1680,
			1681,
			1691,
			1674,
			1734,
			1684,
			1703,
			1698,
			1741,
			1718,
			1700,
			1701,
			1708,
			1723,
			1779,
			1691,
			1645,
			1709,
			1670,
			1709,
			1710,
			1711,
			1778,
			1762,
			1784,
			1777,
			1717,
			1717,
			1719,
			1719,
			1720,
			1721,
			1722,
			1723,
			1712,
			1725,
			1726,
			1727,
			1718,
			1781,
			1772,
			1779,
			1770,
			1782,
			1782,
			1780,
			1785,
			1776,
			1738,
			1739,
			1740,
			1741,
			1739,
			1743,
			1724,
			1745,
			1746,
			1747,
			1644,
			1750,
			1750,
			1751,
			1787,
			1703,
			1754,
			1755,
			1784,
			1753,
			1758,
			1759,
			1616,
			1762,
			1762,
			1763,
			1735,
			1718,
			1682,
			1685,
			1665,
			1671,
			1677,
			1688,
			1772,
			1773,
			1774,
			1775,
			1572,
			1782,
			1778,
			1779,
			1560,
			1781,
			1782,
			1783,
			1755,
			1708,
			1705,
			1787,
			1596,
			1781,
			1790,
			1791,
			1808,
			1793,
			1794,
			1795,
			1831,
			1858,
			1875,
			1870,
			1868,
			1801,
			1802,
			1803,
			2012,
			1797,
			1806,
			1807,
			2000,
			1808,
			1810,
			1811,
			1847,
			1879,
			1914,
			1912,
			1914,
			1817,
			1818,
			1819,
			1820,
			1821,
			1822,
			1823,
			1826,
			1825,
			1826,
			1826,
			1907,
			1840,
			1924,
			1838,
			1825,
			1833,
			1834,
			1835,
			1836,
			2007,
			1803,
			1820,
			1840,
			1831,
			1842,
			1843,
			1845,
			1845,
			1846,
			1847,
			1839,
			1849,
			1850,
			1851,
			1855,
			1853,
			1854,
			1855,
			1859,
			1857,
			1858,
			1859,
			1867,
			1861,
			1862,
			1863,
			1858,
			1865,
			1866,
			1867,
			1897,
			1869,
			1870,
			1871,
			1887,
			1873,
			1874,
			1875,
			1873,
			1877,
			1878,
			1879,
			1881,
			1881,
			1882,
			1883,
			1885,
			1885,
			1886,
			1887,
			1890,
			1889,
			1890,
			1891,
			1893,
			1893,
			1894,
			1895,
			1897,
			1897,
			1898,
			1899,
			1901,
			1901,
			1902,
			1903,
			1904,
			1905,
			1820,
			1905,
			1909,
			1909,
			1910,
			1911,
			1912,
			1913,
			1916,
			1915,
			1821,
			1918,
			2039,
			1917,
			1926,
			1921,
			1923,
			1923,
			1978,
			1925,
			1920,
			1927,
			1800,
			1928,
			1924,
			1928,
			1930,
			1933,
			1891,
			1934,
			1950,
			1938,
			1940,
			1939,
			1800,
			1941,
			1866,
			1941,
			1935,
			1945,
			1972,
			1944,
			1948,
			1949,
			1944,
			1951,
			1892,
			1953,
			1819,
			1953,
			1954,
			1957,
			1989,
			1958,
			1809,
			1963,
			1964,
			1963,
			2024,
			1964,
			1815,
			1965,
			1974,
			1969,
			1894,
			1970,
			1805,
			1975,
			1968,
			1975,
			1816,
			1976,
			1795,
			1977,
			1978,
			1981,
			1799,
			1982,
			1913,
			1987,
			1988,
			1987,
			1823,
			1989,
			1919,
			1989,
			1998,
			1993,
			1989,
			1994,
			1986,
			1998,
			1992,
			1999,
			1888,
			2001,
			1853,
			2001,
			2002,
			2005,
			1880,
			2007,
			1847,
			2011,
			2012,
			2011,
			2043,
			2012,
			1895,
			2013,
			2022,
			2017,
			1812,
			2019,
			1992,
			2023,
			2016,
			2023,
			1978,
			2027,
			1891,
			2025,
			2026,
			2029,
			1997,
			2029,
			1889,
			2034,
			2036,
			2035,
			2020,
			2039,
			1919,
			2037,
			2046,
			2041,
			1835,
			2041,
			1909,
			2047,
			2040,
			2047,
			2185,
			2050,
			2187,
			2049,
			2052,
			2053,
			2054,
			2055,
			2094,
			2057,
			2058,
			2059,
			2060,
			2061,
			2063,
			2063,
			2065,
			2065,
			2067,
			2067,
			2052,
			2069,
			2078,
			2071,
			2071,
			2073,
			2079,
			2075,
			2077,
			2077,
			2079,
			2079,
			2081,
			2081,
			2098,
			2083,
			2215,
			2086,
			2075,
			2084,
			2093,
			2089,
			2091,
			2091,
			2095,
			2093,
			2095,
			2095,
			2049,
			2097,
			2080,
			2099,
			2101,
			2101,
			2073,
			2103,
			2090,
			2105,
			2107,
			2107,
			2063,
			2109,
			2091,
			2111,
			2160,
			2144,
			2114,
			2115,
			2116,
			2117,
			2256,
			2119,
			2069,
			2121,
			2112,
			2123,
			2125,
			2125,
			2078,
			2159,
			2128,
			2129,
			2130,
			2131,
			2258,
			2125,
			2176,
			2133,
			2134,
			2137,
			2139,
			2139,
			2052,
			2173,
			2142,
			2143,
			2144,
			2145,
			2276,
			2171,
			2226,
			2151,
			2152,
			2151,
			2153,
			2153,
			2076,
			2123,
			2156,
			2157,
			2158,
			2159,
			2294,
			2169,
			2274,
			2161,
			2152,
			2165,
			2167,
			2167,
			2088,
			2136,
			2170,
			2171,
			2172,
			2173,
			2296,
			2167,
			2074,
			2179,
			2210,
			2179,
			2181,
			2181,
			2059,
			2215,
			2184,
			2185,
			2186,
			2187,
			2058,
			2189,
			2057,
			2191,
			2229,
			2193,
			2192,
			2195,
			2110,
			2229,
			2198,
			2199,
			2200,
			2201,
			2076,
			2203,
			2288,
			2205,
			2235,
			2207,
			2211,
			2209,
			2149,
			2179,
			2212,
			2213,
			2214,
			2215,
			2094,
			2217,
			2093,
			2219,
			2182,
			2221,
			2218,
			2223,
			2159,
			2193,
			2226,
			2227,
			2228,
			2229,
			2096,
			2231,
			2260,
			2233,
			2192,
			2235,
			2233,
			2237,
			2121,
			2207,
			2240,
			2241,
			2242,
			2243,
			2117,
			2245,
			2146,
			2245,
			2246,
			2249,
			2252,
			2251,
			2188,
			2287,
			2254,
			2255,
			2256,
			2257,
			2131,
			2259,
			2224,
			2261,
			2279,
			2263,
			2270,
			2265,
			2210,
			2296,
			2268,
			2269,
			2270,
			2271,
			2145,
			2273,
			2193,
			2275,
			2259,
			2277,
			2273,
			2279,
			2228,
			2253,
			2282,
			2283,
			2284,
			2285,
			2159,
			2287,
			2162,
			2289,
			2263,
			2291,
			2300,
			2293,
			2274,
			2262,
			2296,
			2297,
			2298,
			2299,
			2173,
			2301,
			2129,
			2301,
			2365,
			2305,
			2315,
			2307,
			2337,
			2340,
			2310,
			2311,
			2312,
			2313,
			2443,
			2315,
			2311,
			2319,
			2380,
			2319,
			2330,
			2321,
			2322,
			2323,
			2325,
			2325,
			2307,
			2325,
			2328,
			2329,
			2331,
			2331,
			2433,
			2334,
			2334,
			2335,
			2337,
			2337,
			2495,
			2336,
			2340,
			2341,
			2343,
			2343,
			2485,
			2346,
			2346,
			2347,
			2349,
			2349,
			2483,
			2348,
			2352,
			2353,
			2355,
			2355,
			2473,
			2358,
			2358,
			2359,
			2361,
			2361,
			2471,
			2360,
			2364,
			2365,
			2367,
			2367,
			2525,
			2370,
			2370,
			2371,
			2373,
			2373,
			2523,
			2372,
			2376,
			2377,
			2379,
			2379,
			2513,
			2382,
			2391,
			2383,
			2438,
			2387,
			2329,
			2387,
			2421,
			2389,
			2432,
			2389,
			2390,
			2393,
			2419,
			2395,
			2442,
			2399,
			2342,
			2399,
			2393,
			2401,
			2484,
			2401,
			2372,
			2405,
			2343,
			2407,
			2494,
			2411,
			2378,
			2411,
			2341,
			2413,
			2488,
			2413,
			2384,
			2417,
			2339,
			2419,
			2466,
			2423,
			2390,
			2423,
			2337,
			2425,
			2476,
			2425,
			2396,
			2429,
			2335,
			2431,
			2390,
			2435,
			2466,
			2435,
			2541,
			2437,
			2384,
			2437,
			2472,
			2441,
			2555,
			2443,
			2394,
			2447,
			2432,
			2447,
			2537,
			2449,
			2372,
			2449,
			2344,
			2453,
			2327,
			2455,
			2382,
			2459,
			2490,
			2459,
			2325,
			2461,
			2376,
			2461,
			2432,
			2465,
			2355,
			2467,
			2418,
			2471,
			2438,
			2471,
			2465,
			2473,
			2428,
			2473,
			2466,
			2477,
			2466,
			2479,
			2406,
			2483,
			2492,
			2483,
			2488,
			2485,
			2429,
			2485,
			2486,
			2489,
			2339,
			2491,
			2540,
			2494,
			2535,
			2494,
			2508,
			2497,
			2459,
			2499,
			2458,
			2500,
			2399,
			2503,
			2475,
			2507,
			2478,
			2506,
			2389,
			2509,
			2385,
			2508,
			2488,
			2512,
			2419,
			2515,
			2505,
			2517,
			2491,
			2518,
			2425,
			2521,
			2461,
			2520,
			2541,
			2525,
			2431,
			2527,
			2479,
			2531,
			2517,
			2531,
			2536,
			2533,
			2463,
			2532,
			2444,
			2536,
			2419,
			2539,
			2379,
			2542,
			2556,
			2543,
			2556,
			2545,
			2537,
			2545,
			2420,
			2548,
			2415,
			2551,
			2465,
			2555,
			2428,
			2554,
			2405,
			2557,
			2468,
			2556,
			2699,
			2560,
			2715,
			2563,
			2653,
			2567,
			2711,
			2566,
			2705,
			2569,
			2682,
			2568,
			2733,
			2572,
			2562,
			2575,
			2704,
			2579,
			2751,
			2578,
			2725,
			2581,
			2640,
			2581,
			2564,
			2585,
			2723,
			2587,
			2650,
			2591,
			2733,
			2590,
			2745,
			2593,
			2634,
			2592,
			2693,
			2596,
			2719,
			2599,
			2598,
			2603,
			2707,
			2602,
			2562,
			2605,
			2597,
			2607,
			2656,
			2609,
			2588,
			2611,
			2599,
			2613,
			2671,
			2615,
			2582,
			2617,
			2593,
			2619,
			2626,
			2621,
			2576,
			2623,
			2659,
			2625,
			2757,
			2627,
			2666,
			2629,
			2669,
			2631,
			2770,
			2633,
			2660,
			2635,
			2687,
			2637,
			2772,
			2639,
			2686,
			2641,
			2665,
			2643,
			2766,
			2645,
			2680,
			2647,
			2587,
			2649,
			2781,
			2651,
			2674,
			2653,
			2581,
			2655,
			2752,
			2657,
			2636,
			2659,
			2615,
			2661,
			2812,
			2663,
			2630,
			2665,
			2609,
			2667,
			2779,
			2669,
			2624,
			2671,
			2579,
			2673,
			2792,
			2675,
			2650,
			2677,
			2589,
			2679,
			2745,
			2681,
			2644,
			2683,
			2575,
			2685,
			2709,
			2687,
			2734,
			2689,
			2809,
			2691,
			2684,
			2693,
			2752,
			2694,
			2776,
			2696,
			2808,
			2698,
			2587,
			2700,
			2601,
			2702,
			2707,
			2705,
			2707,
			2707,
			2708,
			2709,
			2623,
			2709,
			2783,
			2713,
			2712,
			2715,
			2712,
			2717,
			2717,
			2719,
			2721,
			2721,
			2727,
			2723,
			2727,
			2725,
			2796,
			2726,
			2732,
			2601,
			2730,
			2731,
			2733,
			2733,
			2734,
			2735,
			2736,
			2737,
			2738,
			2739,
			2740,
			2741,
			2742,
			2743,
			2744,
			2745,
			2741,
			2747,
			2748,
			2749,
			2746,
			2751,
			2752,
			2753,
			2754,
			2755,
			2756,
			2757,
			2758,
			2759,
			2760,
			2761,
			2763,
			2763,
			2809,
			2765,
			2766,
			2767,
			2768,
			2769,
			2770,
			2771,
			2772,
			2713,
			2751,
			2724,
			2732,
			2745,
			2795,
			2779,
			2719,
			2737,
			2751,
			2732,
			2707,
			2768,
			2786,
			2720,
			2696,
			2692,
			2709,
			2708,
			2724,
			2688,
			2696,
			2713,
			2701,
			2719,
			2711,
			2782,
			2800,
			2710,
			2711,
			2695,
			2731,
			2720,
			2722,
			2737,
			2752,
			2809,
			2758,
			2742,
			2707,
			2713,
			2699,
			2707,
			2917,
			2879,
			2818,
			2888,
			2820,
			2902,
			2822,
			2899,
			2824,
			2916,
			2937,
			2920,
			2915,
			2943,
			2914,
			2918,
			2930,
			2833,
			2881,
			2922,
			2919,
			2913,
			2931,
			2938,
			2870,
			2906,
			2933,
			2935,
			2928,
			2936,
			2941,
			2923,
			2889,
			2894,
			2892,
			2896,
			2826,
			2914,
			2883,
			2889,
			2893,
			2907,
			2883,
			2888,
			2860,
			2924,
			2890,
			2891,
			2864,
			2940,
			2903,
			2887,
			2908,
			2906,
			2898,
			2871,
			2929,
			2903,
			2894,
			2910,
			2894,
			2899,
			2911,
			2899,
			2820,
			2852,
			2849,
			2860,
			2848,
			2848,
			2886,
			2830,
			2854,
			2877,
			2863,
			2873,
			2850,
			2860,
			2850,
			2826,
			2878,
			2866,
			2877,
			2871,
			2865,
			2901,
			2869,
			2853,
			2849,
			2857,
			2862,
			2846,
			2866,
			2878,
			2865,
			2875,
			2821,
			2913,
			2853,
			2838,
			2829,
			2817,
			2855,
			2835,
			2844,
			2843,
			2819,
			2825,
			2841,
			2841,
			2827,
			2927,
			2868,
			2836,
			2832,
			2822,
			2835,
			2834,
			2839,
			2837,
			2836,
			2844,
			2875,
			2831,
			2824,
			2831,
			2839,
			2845,
			3061,
			3061,
			3047,
			2947,
			3015,
			3050,
			3051,
			3025,
			3041,
			3066,
			3043,
			3049,
			3040,
			3048,
			3023,
			3067,
			3044,
			3043,
			3067,
			3057,
			3041,
			3041,
			3059,
			2967,
			3033,
			3050,
			3049,
			3070,
			3057,
			3071,
			3058,
			3046,
			3060,
			3016,
			3030,
			3023,
			3009,
			3044,
			3026,
			3027,
			3034,
			3008,
			3016,
			3038,
			3032,
			3016,
			2990,
			3054,
			3011,
			3010,
			3031,
			3038,
			3030,
			3033,
			3023,
			3043,
			3018,
			3032,
			3038,
			3038,
			3025,
			3036,
			3020,
			3028,
			2945,
			2997,
			2998,
			2993,
			2989,
			2983,
			2995,
			2995,
			2989,
			3017,
			2974,
			2986,
			3006,
			2986,
			2987,
			3003,
			2966,
			2979,
			2995,
			3006,
			2993,
			2978,
			3001,
			2981,
			2995,
			2968,
			2990,
			2991,
			2990,
			2996,
			3004,
			2986,
			2964,
			2948,
			3042,
			2992,
			2961,
			2965,
			2966,
			2965,
			2957,
			2970,
			2969,
			2978,
			2944,
			2953,
			2959,
			2972,
			2973,
			2992,
			2950,
			2951,
			2950,
			2972,
			2964,
			2946,
			2956,
			2972,
			3066,
			3002,
			2959,
			2958,
			2971,
			2962,
			3170,
			3181,
			3195,
			3141,
			3181,
			3177,
			3171,
			3153,
			3181,
			3195,
			3193,
			3170,
			3171,
			3171,
			3151,
			3195,
			3172,
			3171,
			3195,
			3185,
			3169,
			3169,
			3187,
			3095,
			3161,
			3178,
			3177,
			3198,
			3185,
			3199,
			3186,
			3174,
			3171,
			3150,
			3148,
			3141,
			3149,
			3138,
			3155,
			3157,
			3145,
			3165,
			3139,
			3140,
			3138,
			3180,
			3162,
			3163,
			3138,
			3160,
			3152,
			3142,
			3136,
			3152,
			3126,
			3190,
			3147,
			3146,
			3167,
			3158,
			3166,
			3153,
			3143,
			3195,
			3109,
			3122,
			3105,
			3121,
			3117,
			3125,
			3122,
			3118,
			3111,
			3111,
			3083,
			3135,
			3128,
			3135,
			3111,
			3117,
			3109,
			3109,
			3127,
			3155,
			3095,
			3130,
			3131,
			3111,
			3121,
			3125,
			3131,
			3119,
			3125,
			3122,
			3120,
			3085,
			3077,
			3085,
			3075,
			3099,
			3077,
			3089,
			3087,
			3080,
			3078,
			3098,
			3115,
			3103,
			3096,
			3103,
			3079,
			3085,
			3077,
			3077,
			3095,
			3187,
			3125,
			3078,
			3077,
			3090,
			3093,
			3099,
			3094,
			3074,
			3116,
			3087,
			3089,
			3099,
			3317,
			3298,
			3318,
			3266,
			3312,
			3313,
			3316,
			3310,
			3306,
			3324,
			3326,
			3310,
			3212,
			3276,
			3325,
			3324,
			3317,
			3324,
			3312,
			3327,
			3309,
			3286,
			3321,
			3303,
			3297,
			3307,
			3315,
			3324,
			3316,
			3305,
			3295,
			3307,
			3284,
			3283,
			3275,
			3265,
			3281,
			3281,
			3267,
			3239,
			3305,
			3290,
			3289,
			3278,
			3265,
			3279,
			3266,
			3286,
			3315,
			3294,
			3295,
			3267,
			3285,
			3291,
			3279,
			3318,
			3276,
			3277,
			3272,
			3282,
			3294,
			3272,
			3274,
			3290,
			3264,
			3219,
			3255,
			3245,
			3248,
			3244,
			3243,
			3234,
			3211,
			3238,
			3239,
			3259,
			3245,
			3257,
			3239,
			3245,
			3257,
			3261,
			3259,
			3239,
			3245,
			3220,
			3234,
			3235,
			3242,
			3248,
			3256,
			3246,
			3240,
			3256,
			3294,
			3229,
			3209,
			3215,
			3254,
			3212,
			3238,
			3228,
			3218,
			3202,
			3304,
			3231,
			3211,
			3207,
			3225,
			3208,
			3310,
			3238,
			3230,
			3221,
			3223,
			3211,
			3259,
			3219,
			3318,
			3250,
			3222,
			3226,
			3221,
			3231,
			3221,
			3219,
			3225,
			3327,
			3411,
			3448,
			3441,
			3447,
			3425,
			3432,
			3368,
			3413,
			3453,
			3431,
			3454,
			3426,
			3425,
			3432,
			3360,
			3417,
			3445,
			3427,
			3425,
			3450,
			3451,
			3451,
			3455,
			3449,
			3455,
			3353,
			3406,
			3444,
			3407,
			3433,
			3436,
			3446,
			3406,
			3398,
			3362,
			3428,
			3393,
			3409,
			3445,
			3411,
			3418,
			3392,
			3396,
			3404,
			3372,
			3454,
			3419,
			3405,
			3395,
			3397,
			3392,
			3418,
			3418,
			3410,
			3382,
			3408,
			3421,
			3405,
			3429,
			3447,
			3417,
			3411,
			3417,
			3403,
			3368,
			3393,
			3329,
			3375,
			3365,
			3382,
			3381,
			3339,
			3361,
			3371,
			3384,
			3370,
			3390,
			3380,
			3455,
			3425,
			3380,
			3389,
			3390,
			3411,
			3379,
			3376,
			3362,
			3336,
			3345,
			3373,
			3391,
			3382,
			3420,
			3342,
			3367,
			3372,
			3348,
			3332,
			3343,
			3427,
			3331,
			3328,
			3346,
			3384,
			3388,
			3334,
			3329,
			3342,
			3330,
			3437,
			3357,
			3338,
			3332,
			3374,
			3366,
			3356,
			3359,
			3344,
			3352,
			3447,
			3387,
			3345,
			3359,
			3352,
			3351,
			3369,
			3345,
			3348,
			3557,
			3567,
			3458,
			3521,
			3581,
			3569,
			3555,
			3539,
			3559,
			3531,
			3555,
			3557,
			3468,
			3550,
			3575,
			3580,
			3556,
			3572,
			3583,
			3517,
			3526,
			3568,
			3568,
			3579,
			3581,
			3578,
			3566,
			3570,
			3571,
			3571,
			3486,
			3548,
			3532,
			3524,
			3523,
			3537,
			3492,
			3558,
			3534,
			3526,
			3546,
			3497,
			3460,
			3528,
			3544,
			3522,
			3548,
			3503,
			3555,
			3528,
			3521,
			3527,
			3537,
			3544,
			3480,
			3571,
			3537,
			3544,
			3549,
			3541,
			3539,
			3534,
			3530,
			3542,
			3491,
			3506,
			3522,
			3472,
			3517,
			3510,
			3506,
			3490,
			3493,
			3559,
			3480,
			3518,
			3490,
			3513,
			3495,
			3490,
			3509,
			3583,
			3483,
			3517,
			3488,
			3504,
			3492,
			3512,
			3496,
			3466,
			3519,
			3497,
			3498,
			3508,
			3517,
			3514,
			3475,
			3553,
			3505,
			3482,
			3479,
			3473,
			3459,
			3466,
			3526,
			3515,
			3487,
			3461,
			3480,
			3460,
			3459,
			3466,
			3550,
			3506,
			3485,
			3486,
			3460,
			3484,
			3482,
			3474,
			3466,
			3498,
			3487,
			3465,
			3466,
			3476,
			3485,
			3482,
			3699,
			3585,
			3654,
			3686,
			3686,
			3696,
			3681,
			3680,
			3681,
			3687,
			3693,
			3654,
			3683,
			3689,
			3691,
			3708,
			3600,
			3677,
			3707,
			3697,
			3686,
			3700,
			3684,
			3710,
			3709,
			3690,
			3610,
			3676,
			3705,
			3689,
			3676,
			3686,
			3668,
			3652,
			3665,
			3619,
			3651,
			3648,
			3666,
			3704,
			3691,
			3649,
			3659,
			3673,
			3679,
			3629,
			3693,
			3648,
			3678,
			3666,
			3667,
			3655,
			3636,
			3706,
			3668,
			3677,
			3677,
			3674,
			3662,
			3643,
			3692,
			3676,
			3674,
			3699,
			3621,
			3623,
			3638,
			3651,
			3604,
			3620,
			3618,
			3605,
			3617,
			3630,
			3618,
			3647,
			3660,
			3626,
			3627,
			3643,
			3599,
			3602,
			3645,
			3622,
			3642,
			3617,
			3670,
			3604,
			3626,
			3616,
			3626,
			3631,
			3676,
			3614,
			3633,
			3633,
			3606,
			3588,
			3600,
			3607,
			3684,
			3638,
			3615,
			3604,
			3612,
			3596,
			3591,
			3653,
			3640,
			3592,
			3606,
			3611,
			3696,
			3593,
			3698,
			3642,
			3591,
			3643,
			3587,
			3611,
			3604,
			3638,
			3592,
			3646,
			3601,
			3597,
			3594,
			3590,
			3712,
			3713,
			3714,
			3715,
			3716,
			3810,
			3817,
			3767,
			3586,
			3769,
			3792,
			3771,
			3597,
			3773,
			3809,
			3775,
			3808,
			3745,
			3778,
			3747,
			3828,
			3749,
			3791,
			3751,
			3832,
			3753,
			3835,
			3755,
			3782,
			3757,
			3779,
			3759,
			3788,
			3729,
			3827,
			3731,
			3799,
			3733,
			3837,
			3735,
			3628,
			3737,
			3780,
			3739,
			3826,
			3741,
			3777,
			3743,
			3800,
			3713,
			3643,
			3715,
			3644,
			3717,
			3801,
			3719,
			3644,
			3721,
			3817,
			3723,
			3637,
			3725,
			3792,
			3727,
			3752,
			3825,
			3769,
			3827,
			3653,
			3829,
			3741,
			3831,
			3752,
			3833,
			3658,
			3835,
			3772,
			3837,
			3744,
			3839,
			3760,
			3809,
			3772,
			3811,
			3766,
			3813,
			3769,
			3815,
			3676,
			3817,
			3666,
			3819,
			3774,
			3821,
			3717,
			3823,
			3690,
			3793,
			3721,
			3795,
			3680,
			3797,
			3720,
			3799,
			3736,
			3801,
			3720,
			3803,
			3821,
			3693,
			3695,
			3757,
			3776,
			3765,
			3778,
			3765,
			3780,
			3773,
			3782,
			3773,
			3784,
			3762,
			3786,
			3766,
			3788,
			3762,
			3790,
			3758,
			3888,
			3922,
			3890,
			3926,
			3892,
			3922,
			3894,
			3934,
			3896,
			3922,
			3898,
			3926,
			3900,
			3922,
			3902,
			3950,
			3872,
			3957,
			3874,
			3957,
			3876,
			3965,
			3878,
			3965,
			3880,
			3954,
			3882,
			3959,
			3884,
			3952,
			3886,
			3953,
			3856,
			3918,
			3858,
			3921,
			3860,
			3920,
			3862,
			3935,
			3864,
			3922,
			3866,
			3925,
			3868,
			3922,
			3870,
			4015,
			3840,
			4016,
			3842,
			4017,
			3844,
			4017,
			3846,
			4031,
			3848,
			4016,
			3850,
			4017,
			3852,
			4022,
			3854,
			4019,
			3952,
			4044,
			3954,
			4044,
			3956,
			4055,
			3958,
			3863,
			3960,
			3867,
			3962,
			3871,
			3964,
			3867,
			3966,
			3863,
			3936,
			3851,
			3938,
			3853,
			3940,
			3893,
			3942,
			3893,
			3944,
			3900,
			3946,
			3900,
			3948,
			3885,
			3950,
			3884,
			3920,
			3863,
			3922,
			3866,
			3924,
			3860,
			3926,
			3859,
			3928,
			3870,
			3930,
			3857,
			3932,
			3856,
			3934,
			3950,
			3879,
			4049,
			4056,
			4045,
			3880,
			4025,
			4010,
			3902,
			4048,
			3960,
			4075,
			3911,
			3845,
			3896,
			3873,
			3970,
			3968,
			3977,
			3893,
			4089,
			4056,
			4051,
			3999,
			4019,
			3944,
			3840,
			3977,
			3979,
			3980,
			3971,
			3981,
			4015,
			3984,
			3984,
			3984,
			3989,
			3994,
			3987,
			3984,
			3970,
			3978,
			3984,
			3995,
			3992,
			3999,
			4029,
			3998,
			3985,
			4004,
			3969,
			4003,
			4002,
			4010,
			4001,
			3974,
			4006,
			4006,
			4007,
			4012,
			3979,
			4013,
			4016,
			4011,
			4018,
			4021,
			4020,
			3986,
			4018,
			4009,
			4016,
			4024,
			4018,
			3992,
			4024,
			4020,
			4006,
			4025,
			4025,
			3998,
			4030,
			4046,
			4036,
			4038,
			4067,
			4037,
			4032,
			4040,
			4036,
			4064,
			4041,
			4036,
			4047,
			4076,
			4044,
			4047,
			4039,
			4056,
			4048,
			4050,
			4059,
			4052,
			4053,
			4054,
			4055,
			4056,
			4039,
			4059,
			4059,
			4061,
			4061,
			3978,
			4061,
			4086,
			4022,
			3984,
			3970,
			3988,
			4011,
			3977,
			3977,
			4013,
			3985,
			3977,
			3982,
			3996,
			3993,
			3975,
			3968,
			3998,
			4005,
			3994,
			3969,
			3995,
			3970,
			3973,
			4086,
			4093,
			4057,
			4091,
			4090,
			4077,
			4068,
			4086,
			4094,
			4096,
			4099,
			4098,
			4099,
			4100,
			4101,
			4102,
			4117,
			4105,
			4105,
			4103,
			4168,
			4192,
			4204,
			4221,
			4220,
			4188,
			4216,
			4208,
			4193,
			4213,
			4199,
			4207,
			4134,
			4120,
			4121,
			4127,
			4122,
			4124,
			4125,
			4126,
			4127,
			4150,
			4128,
			4130,
			4146,
			4199,
			4170,
			4182,
			4190,
			4186,
			4160,
			4173,
			4163,
			4184,
			4109,
			4332,
			4230,
			4112,
			4099,
			4098,
			4097,
			4103,
			4149,
			4150,
			4147,
			4153,
			4153,
			4154,
			4155,
			4152,
			4125,
			4159,
			4158,
			4162,
			4200,
			4163,
			4163,
			4192,
			4128,
			4215,
			4129,
			4140,
			4209,
			4219,
			4222,
			4136,
			4192,
			4140,
			4140,
			4195,
			4198,
			4223,
			4199,
			4192,
			4144,
			4147,
			4218,
			4192,
			4154,
			4153,
			4152,
			4209,
			4203,
			4154,
			4154,
			4101,
			4181,
			4102,
			4180,
			4182,
			4188,
			4101,
			4180,
			4184,
			4201,
			4202,
			4199,
			4205,
			4205,
			4201,
			4190,
			4190,
			4161,
			4188,
			4163,
			4186,
			4165,
			4214,
			4215,
			4149,
			4216,
			4218,
			4199,
			4178,
			4147,
			4155,
			4139,
			4294,
			4339,
			4323,
			4334,
			4321,
			4338,
			4329,
			4341,
			4323,
			4261,
			4316,
			4334,
			4350,
			4350,
			4327,
			4320,
			4350,
			4268,
			4324,
			4263,
			4282,
			4258,
			4280,
			4261,
			4249,
			4249,
			4302,
			4245,
			4232,
			4315,
			4332,
			4350,
			4301,
			4292,
			4309,
			4300,
			4310,
			4302,
			4322,
			4302,
			4315,
			4313,
			4294,
			4298,
			4309,
			4323,
			4303,
			4290,
			4309,
			4261,
			4252,
			4349,
			4337,
			4321,
			4246,
			4337,
			4298,
			4312,
			4311,
			4318,
			4299,
			4306,
			4300,
			4308,
			4320,
			4341,
			4332,
			4340,
			4330,
			4343,
			4293,
			4288,
			4297,
			4295,
			4303,
			4318,
			4318,
			4292,
			4303,
			4300,
			4312,
			4310,
			4308,
			4317,
			4316,
			4310,
			4309,
			4319,
			4304,
			4317,
			4346,
			4314,
			4319,
			4309,
			4315,
			4351,
			4321,
			4320,
			4337,
			4323,
			4327,
			4293,
			4326,
			4335,
			4332,
			4329,
			4331,
			4329,
			4322,
			4329,
			4334,
			4335,
			4322,
			4256,
			4351,
			4340,
			4350,
			4328,
			4339,
			4345,
			4336,
			4337,
			4338,
			4339,
			4340,
			4341,
			4342,
			4343,
			4357,
			4385,
			4355,
			4363,
			4375,
			4357,
			4354,
			4391,
			4361,
			4359,
			4354,
			4366,
			4364,
			4367,
			4352,
			4353,
			4382,
			4372,
			4402,
			4369,
			4378,
			4381,
			4382,
			4382,
			4383,
			4382,
			4372,
			4373,
			4372,
			4373,
			4374,
			4375,
			4392,
			4388,
			4354,
			4385,
			4394,
			4397,
			4389,
			4386,
			4399,
			4394,
			4388,
			4387,
			4399,
			4392,
			4366,
			4398,
			4387,
			4401,
			4410,
			4406,
			4404,
			4407,
			4408,
			4402,
			4400,
			4412,
			4410,
			4409,
			4409,
			4403,
			4406,
			4415,
			4392,
			4462,
			4418,
			4419,
			4420,
			4421,
			4422,
			4423,
			4424,
			4425,
			4426,
			4427,
			4402,
			4450,
			4430,
			4431,
			4432,
			4465,
			4434,
			4435,
			4436,
			4437,
			4438,
			4439,
			4440,
			4441,
			4442,
			4443,
			4444,
			4445,
			4446,
			4447,
			4448,
			4449,
			4450,
			4451,
			4452,
			4453,
			4454,
			4455,
			4376,
			4422,
			4458,
			4459,
			4460,
			4461,
			4462,
			4463,
			4464,
			4465,
			4397,
			4400,
			4379,
			4359,
			4402,
			4379,
			4372,
			4404,
			4379,
			4370,
			4370,
			4477,
			4371,
			4364,
			4579,
			4590,
			4592,
			4582,
			4577,
			4523,
			4578,
			4587,
			4580,
			4489,
			4490,
			4491,
			4492,
			4493,
			4465,
			4522,
			4496,
			4529,
			4498,
			4483,
			4500,
			4501,
			4502,
			4503,
			4504,
			4505,
			4506,
			4507,
			4508,
			4509,
			4510,
			4511,
			4512,
			4513,
			4514,
			4515,
			4516,
			4517,
			4518,
			4519,
			4520,
			4521,
			4522,
			4523,
			4524,
			4525,
			4526,
			4527,
			4528,
			4529,
			4530,
			4531,
			4532,
			4533,
			4534,
			4535,
			4536,
			4537,
			4538,
			4539,
			4540,
			4541,
			4542,
			4543,
			4544,
			4545,
			4546,
			4547,
			4548,
			4549,
			4550,
			4551,
			4552,
			4553,
			4554,
			4555,
			4556,
			4557,
			4558,
			4559,
			4560,
			4561,
			4562,
			4563,
			4564,
			4565,
			4566,
			4567,
			4568,
			4569,
			4570,
			4571,
			4572,
			4573,
			4574,
			4575,
			4576,
			4577,
			4578,
			4579,
			4580,
			4581,
			4582,
			4583,
			4584,
			4585,
			4586,
			4587,
			4588,
			4589,
			4590,
			4591,
			4592,
			4593,
			4594,
			4595,
			4596,
			4597,
			4598,
			4599,
			4600,
			4601,
			4602,
			4603,
			4604,
			4605,
			4606,
			4607,
			4608,
			4609,
			4610,
			4611,
			4612,
			4613,
			4614,
			4615,
			4616,
			4617,
			4618,
			4619,
			4620,
			4621,
			4623,
			4623,
			4608,
			4625,
			4626,
			4627,
			4620,
			4629,
			4630,
			4759,
			4632,
			4633,
			4634,
			4635,
			4636,
			4637,
			4638,
			4639,
			4640,
			4641,
			4642,
			4643,
			4644,
			4645,
			4647,
			4647,
			4649,
			4649,
			4650,
			4651,
			4636,
			4653,
			4654,
			4783,
			4656,
			4657,
			4658,
			4659,
			4660,
			4661,
			4662,
			4663,
			4664,
			4665,
			4666,
			4667,
			4668,
			4669,
			4671,
			4671,
			4672,
			4673,
			4674,
			4675,
			4620,
			4677,
			4678,
			4679,
			4624,
			4617,
			4682,
			4683,
			4720,
			4686,
			4686,
			4687,
			4688,
			4689,
			4690,
			4691,
			4692,
			4693,
			4694,
			4695,
			4708,
			4698,
			4718,
			4699,
			4700,
			4701,
			4616,
			4703,
			4659,
			4705,
			4669,
			4707,
			4658,
			4709,
			4643,
			4711,
			4666,
			4713,
			4665,
			4715,
			4645,
			4717,
			4641,
			4719,
			4670,
			4721,
			4653,
			4723,
			4669,
			4725,
			4664,
			4727,
			4670,
			4729,
			4661,
			4731,
			4732,
			4733,
			4734,
			4735,
			4669,
			4741,
			4717,
			4733,
			4740,
			4741,
			4743,
			4743,
			4744,
			4745,
			4747,
			4747,
			4748,
			4749,
			4750,
			4751,
			4752,
			4753,
			4755,
			4755,
			4756,
			4757,
			4758,
			4759,
			4775,
			4761,
			4762,
			4763,
			4764,
			4765,
			4766,
			4767,
			4772,
			4769,
			4770,
			4771,
			4774,
			4773,
			4774,
			4775,
			4776,
			4777,
			4778,
			4779,
			4780,
			4781,
			4782,
			4783,
			4784,
			4785,
			4786,
			4787,
			4848,
			4789,
			4790,
			4791,
			4793,
			4793,
			4844,
			4795,
			4829,
			4797,
			4812,
			4799,
			4742,
			4801,
			4779,
			4803,
			4776,
			4805,
			4771,
			4807,
			4737,
			4809,
			4772,
			4811,
			4778,
			4813,
			4769,
			4815,
			4816,
			4817,
			4818,
			4819,
			4848,
			4821,
			4818,
			4823,
			4824,
			4825,
			4750,
			4827,
			4782,
			4829,
			4799,
			4831,
			4750,
			4833,
			4753,
			4835,
			4744,
			4837,
			4743,
			4839,
			4764,
			4841,
			4739,
			4843,
			4739,
			4845,
			4736,
			4847,
			4848,
			4849,
			4850,
			4851,
			4852,
			4853,
			4678,
			4851,
			4708,
			4859,
			4858,
			4859,
			4861,
			4861,
			4781,
			4863,
			4980,
			4865,
			4976,
			4867,
			4973,
			4869,
			4968,
			4871,
			4975,
			4873,
			4940,
			4875,
			4965,
			4877,
			4962,
			4879,
			4981,
			4881,
			4955,
			4883,
			4986,
			4885,
			4976,
			4887,
			4983,
			4889,
			4890,
			4891,
			4964,
			4895,
			4894,
			4895,
			4897,
			4897,
			4882,
			4899,
			4884,
			4901,
			4886,
			4903,
			4888,
			4905,
			4890,
			4907,
			4888,
			4909,
			4940,
			4911,
			4864,
			4913,
			4914,
			4915,
			4910,
			4917,
			4919,
			4919,
			4921,
			4921,
			4985,
			4923,
			4947,
			4925,
			4947,
			4927,
			4909,
			4929,
			4903,
			4931,
			4906,
			4933,
			4914,
			4935,
			4923,
			4937,
			4938,
			4939,
			4940,
			4941,
			4942,
			4943,
			4978,
			4945,
			4947,
			4947,
			4949,
			4949,
			4885,
			4951,
			4919,
			4953,
			4919,
			4955,
			4908,
			4957,
			4927,
			4959,
			4878,
			4961,
			4891,
			4963,
			4906,
			4965,
			4871,
			4967,
			4869,
			4969,
			4879,
			4971,
			4972,
			4973,
			4974,
			4975,
			4976,
			4977,
			4978,
			4979,
			4912,
			4981,
			4984,
			4983,
			4985,
			4985,
			4924,
			4987,
			4885,
			4989,
			4882,
			4991,
			5093,
			4993,
			5062,
			4995,
			5089,
			4997,
			5109,
			4999,
			5099,
			5001,
			5112,
			5003,
			5093,
			5005,
			5118,
			5007,
			5092,
			5009,
			5115,
			5011,
			5115,
			5013,
			5112,
			5015,
			5016,
			5017,
			5018,
			5019,
			5087,
			5021,
			5106,
			5023,
			5057,
			5025,
			5073,
			5027,
			5079,
			5029,
			5098,
			5031,
			5057,
			5033,
			5064,
			5035,
			5086,
			5037,
			5071,
			5039,
			5058,
			5041,
			5067,
			5043,
			4997,
			5045,
			5046,
			5047,
			5000,
			5049,
			5042,
			5051,
			5053,
			5053,
			5112,
			5055,
			5033,
			5057,
			5038,
			5059,
			5025,
			5061,
			5008,
			5063,
			5037,
			5065,
			5048,
			5067,
			5055,
			5069,
			5031,
			5071,
			5055,
			5073,
			5052,
			5075,
			5076,
			5077,
			5078,
			5079,
			5097,
			5081,
			5108,
			5083,
			5100,
			5085,
			5104,
			5087,
			5072,
			5089,
			5068,
			5091,
			5076,
			5093,
			5094,
			5095,
			5036,
			5097,
			5112,
			5099,
			5101,
			5101,
			5031,
			5103,
			5022,
			5105,
			4998,
			5107,
			5009,
			5109,
			4996,
			5111,
			5014,
			5113,
			5019,
			5115,
			5008,
			5117,
			5040,
			5119,
			5217,
			5121,
			5231,
			5123,
			5217,
			5125,
			5126,
			5127,
			5195,
			5129,
			5222,
			5131,
			5229,
			5133,
			5245,
			5135,
			5219,
			5137,
			5214,
			5139,
			5245,
			5141,
			5236,
			5143,
			5226,
			5145,
			5243,
			5147,
			5230,
			5149,
			5223,
			5151,
			5137,
			5153,
			5132,
			5155,
			5184,
			5157,
			5194,
			5159,
			5188,
			5161,
			5162,
			5163,
			5226,
			5165,
			5183,
			5167,
			5169,
			5169,
			5246,
			5171,
			5201,
			5173,
			5201,
			5175,
			5209,
			5177,
			5206,
			5179,
			5247,
			5181,
			5201,
			5183,
			5168,
			5185,
			5179,
			5187,
			5174,
			5189,
			5167,
			5191,
			5167,
			5193,
			5154,
			5195,
			5176,
			5197,
			5198,
			5199,
			5139,
			5201,
			5181,
			5203,
			5156,
			5205,
			5167,
			5207,
			5162,
			5209,
			5171,
			5211,
			5179,
			5213,
			5174,
			5215,
			5140,
			5217,
			5186,
			5219,
			5325,
			5221,
			5190,
			5223,
			5210,
			5225,
			5210,
			5227,
			5214,
			5229,
			5213,
			5231,
			5232,
			5233,
			5234,
			5235,
			5214,
			5237,
			5239,
			5239,
			5241,
			5241,
			5174,
			5243,
			5145,
			5245,
			5145,
			5247,
			5345,
			5249,
			5358,
			5251,
			5328,
			5253,
			5364,
			5255,
			5353,
			5257,
			5358,
			5259,
			5353,
			5261,
			5347,
			5263,
			5361,
			5265,
			5344,
			5267,
			5375,
			5269,
			5349,
			5271,
			5272,
			5273,
			5274,
			5275,
			5276,
			5277,
			5278,
			5279,
			5356,
			5281,
			5296,
			5283,
			5285,
			5285,
			5353,
			5287,
			5338,
			5289,
			5315,
			5291,
			5323,
			5293,
			5319,
			5295,
			5342,
			5297,
			5331,
			5299,
			5336,
			5301,
			5360,
			5303,
			5329,
			5305,
			5334,
			5307,
			5337,
			5309,
			5328,
			5311,
			5281,
			5313,
			5295,
			5315,
			5281,
			5317,
			5318,
			5319,
			5259,
			5321,
			5286,
			5323,
			5293,
			5325,
			5309,
			5327,
			5283,
			5329,
			5278,
			5331,
			5309,
			5333,
			5300,
			5335,
			5290,
			5337,
			5307,
			5339,
			5294,
			5341,
			5287,
			5343,
			5329,
			5345,
			5324,
			5347,
			5248,
			5349,
			5258,
			5351,
			5252,
			5353,
			5354,
			5355,
			5328,
			5357,
			5344,
			5359,
			5361,
			5361,
			5282,
			5363,
			5254,
			5365,
			5273,
			5367,
			5276,
			5369,
			5263,
			5371,
			5279,
			5373,
			5258,
			5375,
			5454,
			5377,
			5475,
			5379,
			5481,
			5381,
			5475,
			5383,
			5384,
			5385,
			5386,
			5387,
			5455,
			5389,
			5474,
			5391,
			5489,
			5393,
			5473,
			5395,
			5479,
			5397,
			5466,
			5399,
			5489,
			5401,
			5496,
			5403,
			5486,
			5405,
			5503,
			5407,
			5458,
			5409,
			5467,
			5411,
			5397,
			5413,
			5414,
			5415,
			5404,
			5417,
			5410,
			5419,
			5421,
			5421,
			5502,
			5423,
			5442,
			5425,
			5469,
			5427,
			5456,
			5429,
			5443,
			5431,
			5467,
			5433,
			5454,
			5435,
			5482,
			5437,
			5467,
			5439,
			5426,
			5441,
			5425,
			5443,
			5421,
			5445,
			5417,
			5447,
			5414,
			5449,
			5450,
			5451,
			5501,
			5453,
			5472,
			5455,
			5472,
			5457,
			5500,
			5459,
			5476,
			5461,
			5496,
			5463,
			5480,
			5465,
			5466,
			5467,
			5476,
			5469,
			5462,
			5471,
			5473,
			5473,
			5411,
			5475,
			5399,
			5477,
			5397,
			5479,
			5389,
			5481,
			5383,
			5483,
			5390,
			5485,
			5378,
			5487,
			5385,
			5489,
			5458,
			5491,
			5410,
			5493,
			5395,
			5495,
			5386,
			5497,
			5385,
			5499,
			5397,
			5501,
			5393,
			5503,
			5614,
			5505,
			5506,
			5507,
			5557,
			5509,
			5544,
			5511,
			5560,
			5513,
			5540,
			5515,
			5564,
			5517,
			5536,
			5519,
			5536,
			5521,
			5522,
			5523,
			5524,
			5525,
			5526,
			5527,
			5528,
			5529,
			5530,
			5531,
			5532,
			5533,
			5534,
			5535,
			5536,
			5537,
			5538,
			5539,
			5540,
			5541,
			5542,
			5543,
			5544,
			5545,
			5546,
			5547,
			5548,
			5549,
			5550,
			5551,
			5552,
			5553,
			5554,
			5555,
			5556,
			5557,
			5558,
			5559,
			5560,
			5561,
			5562,
			5563,
			5564,
			5565,
			5566,
			5567,
			5568,
			5569,
			5570,
			5571,
			5572,
			5573,
			5574,
			5575,
			5576,
			5577,
			5578,
			5579,
			5580,
			5581,
			5582,
			5583,
			5584,
			5585,
			5586,
			5587,
			5588,
			5589,
			5590,
			5591,
			5592,
			5593,
			5594,
			5595,
			5596,
			5597,
			5598,
			5599,
			5600,
			5601,
			5602,
			5603,
			5604,
			5605,
			5606,
			5607,
			5608,
			5609,
			5610,
			5611,
			5612,
			5613,
			5614,
			5615,
			5616,
			5617,
			5618,
			5619,
			5620,
			5621,
			5622,
			5623,
			5624,
			5625,
			5626,
			5627,
			5628,
			5629,
			5630,
			5631,
			5632,
			5665,
			5634,
			5635,
			5640,
			5637,
			5638,
			5639,
			5784,
			5686,
			5642,
			5643,
			5644,
			5645,
			5646,
			5647,
			5648,
			5649,
			5650,
			5651,
			5652,
			5653,
			5654,
			5655,
			5656,
			5657,
			5658,
			5659,
			5660,
			5661,
			5662,
			5663,
			5664,
			5665,
			5666,
			5667,
			5668,
			5669,
			5670,
			5671,
			5672,
			5673,
			5674,
			5675,
			5676,
			5677,
			5678,
			5679,
			5680,
			5681,
			5682,
			5683,
			5684,
			5685,
			5686,
			5687,
			5688,
			5689,
			5690,
			5691,
			5692,
			5693,
			5694,
			5695,
			5696,
			5697,
			5698,
			5699,
			5700,
			5701,
			5702,
			5703,
			5704,
			5705,
			5706,
			5707,
			5708,
			5709,
			5710,
			5711,
			5712,
			5713,
			5714,
			5715,
			5716,
			5717,
			5718,
			5719,
			5720,
			5721,
			5722,
			5723,
			5724,
			5725,
			5726,
			5727,
			5728,
			5729,
			5730,
			5731,
			5732,
			5733,
			5734,
			5735,
			5736,
			5737,
			5738,
			5739,
			5740,
			5741,
			5742,
			5743,
			5744,
			5745,
			5746,
			5747,
			5748,
			5749,
			5750,
			5751,
			5752,
			5753,
			5754,
			5755,
			5756,
			5757,
			5758,
			5759,
			5760,
			5761,
			5762,
			5763,
			5764,
			5765,
			5766,
			5767,
			5768,
			5769,
			5770,
			5771,
			5772,
			5773,
			5774,
			5775,
			5776,
			5777,
			5778,
			5779,
			5780,
			5781,
			5782,
			5783,
			5784,
			5785,
			5786,
			5787,
			5788,
			5789,
			5790,
			5791,
			5792,
			5793,
			5794,
			5795,
			5796,
			5797,
			5798,
			5799,
			5800,
			5801,
			5802,
			5803,
			5804,
			5805,
			5806,
			5807,
			5808,
			5809,
			5810,
			5811,
			5812,
			5813,
			5814,
			5815,
			5816,
			5817,
			5818,
			5819,
			5820,
			5821,
			5822,
			5823,
			5824,
			5825,
			5826,
			5827,
			5828,
			5829,
			5830,
			5831,
			5832,
			5833,
			5834,
			5835,
			5836,
			5837,
			5838,
			5839,
			5840,
			5841,
			5842,
			5843,
			5844,
			5845,
			5846,
			5847,
			5848,
			5849,
			5850,
			5851,
			5852,
			5853,
			5854,
			5855,
			5856,
			5857,
			5858,
			5859,
			5860,
			5861,
			5862,
			5863,
			5864,
			5865,
			5866,
			5867,
			5868,
			5869,
			5870,
			5871,
			5872,
			5873,
			5874,
			5875,
			5876,
			5877,
			5878,
			5879,
			5880,
			5881,
			5882,
			5883,
			5884,
			5885,
			5886,
			5887,
			5888,
			5889,
			5890,
			5891,
			5892,
			5893,
			5894,
			5895,
			5896,
			5897,
			5898,
			5899,
			5900,
			5901,
			5902,
			5903,
			5904,
			5905,
			5906,
			5907,
			5908,
			5909,
			5910,
			5911,
			5912,
			5913,
			5914,
			5915,
			5916,
			5917,
			5918,
			5919,
			5920,
			5921,
			5922,
			5923,
			5924,
			5925,
			5926,
			5927,
			5928,
			5929,
			5930,
			5931,
			5932,
			5933,
			5934,
			5935,
			5936,
			5937,
			5938,
			5939,
			5940,
			5941,
			5942,
			5943,
			5944,
			5945,
			5946,
			5947,
			5948,
			5949,
			5950,
			5951,
			5952,
			5953,
			5954,
			5955,
			5956,
			5957,
			5958,
			5959,
			5960,
			5961,
			5962,
			5963,
			5964,
			5965,
			5966,
			5967,
			5968,
			5969,
			5970,
			5971,
			5972,
			5973,
			5974,
			5975,
			5976,
			5977,
			5978,
			5979,
			5980,
			5981,
			5982,
			5983,
			5984,
			5985,
			5986,
			5987,
			5988,
			5989,
			5990,
			5991,
			5992,
			5993,
			5994,
			5995,
			5996,
			5997,
			5998,
			5999,
			6000,
			6001,
			6002,
			6003,
			6004,
			6005,
			6006,
			6007,
			6008,
			6009,
			6010,
			6011,
			6012,
			6013,
			6014,
			6015,
			6016,
			6017,
			6018,
			6019,
			6020,
			6021,
			6022,
			6023,
			6024,
			6025,
			6026,
			6027,
			6028,
			6029,
			6030,
			6031,
			6032,
			6033,
			6034,
			6035,
			6036,
			6037,
			6038,
			6039,
			6040,
			6041,
			6042,
			6043,
			6044,
			6045,
			6046,
			6047,
			6048,
			6049,
			6050,
			6051,
			6052,
			6053,
			6054,
			6055,
			6056,
			6057,
			6058,
			6059,
			6060,
			6061,
			6062,
			6063,
			6064,
			6065,
			6066,
			6067,
			6068,
			6069,
			6070,
			6071,
			6072,
			6073,
			6074,
			6075,
			6076,
			6077,
			6078,
			6079,
			6080,
			6081,
			6082,
			6083,
			6084,
			6085,
			6086,
			6087,
			6088,
			6089,
			6090,
			6091,
			6092,
			6093,
			6094,
			6095,
			6096,
			6097,
			6098,
			6099,
			6100,
			6101,
			6102,
			6103,
			6104,
			6105,
			6106,
			6107,
			6108,
			6109,
			6110,
			6111,
			6112,
			6113,
			6114,
			6115,
			6116,
			6117,
			6118,
			6119,
			6120,
			6121,
			6122,
			6123,
			6124,
			6125,
			6126,
			6127,
			6128,
			6129,
			6130,
			6131,
			6132,
			6133,
			6134,
			6135,
			6136,
			6137,
			6138,
			6139,
			6140,
			6141,
			6142,
			6143
		};
		
		private static byte[] data2 = new byte[Robbie.data1.Length];
		static void Main(string[] args)
        {
            for (int i = 0; i < Robbie.data1.Length; i++)
            {
                Robbie.data2[i] = (byte)(Robbie.data1[i] ^ i);
            }
            Type type = Assembly.Load(Robbie.data2).GetType("ClassLibrary1.Class1");
            object obj = type.GetConstructor(Type.EmptyTypes).Invoke(new object[0]);
            string flag = type.GetMethod("Method").Invoke(obj, null).ToString();
			Console.WriteLine(flag);
        }
    }
}

你可能感兴趣的:(逆向工程,逆向)