Skip to content

Instantly share code, notes, and snippets.

@klondi
Created April 24, 2016 19:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save klondi/d05b1753e14116e03e72797d7a3b5482 to your computer and use it in GitHub Desktop.
Save klondi/d05b1753e14116e03e72797d7a3b5482 to your computer and use it in GitHub Desktop.
var tiger = (function() {
var tiger_block = (function() {
var s0,s1,s2,s3,s4,s5,s6,s7;
s0 = [0xF7E90C5E, 0xE243A8EC, 0x0DD5FCD3, 0xF6F97F3A, 0xD21F9193, 0x708029E2,
0x922A83C3, 0x04915870, 0x7103ECE6, 0x08A3535C, 0x8DDEC47C, 0xDC0DF40C,
0xA74DBEFA, 0x5AD1AB6A, 0x572FE2FF, 0x199D921E, 0xDA0007CA, 0xE85241C7,
0xEA5947B6, 0xC99E8C92, 0xA96F864B, 0x52B5C17D, 0x373063C1, 0x9BB4C56E,
0x0E76B5EA, 0xF07FDC42, 0x243342E0, 0x9D2E7D04, 0x600B0EC6, 0x7254BCAC,
0xA4DB4FE5, 0xCE0FED9F, 0xB96545DB, 0xF2A7600B, 0x0193194E, 0x2D9CC0B3,
0x15957613, 0xFC357BF1, 0x7A370F57, 0x50B99066, 0x74424A35, 0xE325249B,
0x061CCAE1, 0xECA42A05, 0x51382F73, 0x43B0BB28, 0x11BF1F83, 0xD75FA169,
0x87AD9999, 0xB1C94410, 0xC0A822F9, 0x0CE6123B, 0x59DDB154, 0xC5E0E607,
0x26C3A3CF, 0x23C535FD, 0x4E9A2B00, 0x40469DD5, 0x8BE23A4C, 0x6A3E6A2E,
0x6B943FCD, 0x12E30446, 0xE01765AE, 0x478308FE, 0xA0EDA22A, 0x86C40DA7,
0x9C867C84, 0xFDA22853, 0x2C5EEF76, 0x8990D201, 0x2AFAD975, 0xDF133E14,
0x2823C958, 0x30F61119, 0x462C06C0, 0x887C71D2, 0x6518393E, 0x5D713329,
0x48A97564, 0x7BFDAC67, 0x4B053D02, 0xD002D64D, 0x38261571, 0xE473D062,
0x9455F860, 0xCAAB94D9, 0x770E6F68, 0x02C6641C, 0x337DDD2B, 0x034B701B,
0x81CB096D, 0x66C71C6F, 0xEB51B255, 0x96C08BBC, 0xA632F3BA, 0x1C3D0556,
0x5FB26B8F, 0xB3BACEB4, 0xAA445D32, 0xA85AD881, 0xB528D56C, 0x90F4524A,
0x5506D35A, 0xC6CE9779, 0x3E109B33, 0x73A054CC, 0x34417EB0, 0x536D1BC4,
0x1DB6FF8B, 0x7D6016BF, 0x7667E3F5, 0x938BEB96, 0x8FC179C9, 0x2911E50D,
0x27121A91, 0x31859808, 0xEF5CEAEB, 0xBC9684CE, 0xB7F76221, 0xAB8293E4,
0xA5EE2CA4, 0xCC8A8FB1, 0x979859A3, 0xA1240017, 0xBB5DC726, 0xB86ADB39,
0x6C478063, 0xE7669EDD, 0xD149AA23, 0x848FF194, 0x41014C22, 0x3A6E2EC2,
0x75F5C361, 0xC3D6E436, 0x4CCF402F, 0xBEA5DFC8, 0xBD3FF77E, 0x1F74F645,
0x5E81A082, 0x7F687A49, 0xBA973BC5, 0xE509745F, 0xE6DAB3D6, 0xAEF06EB5,
0x4DAACFD8, 0x2B16AFFC, 0xFA891D1F, 0xCB920ADA, 0xC2A12651, 0xD356B78A,
0x2FE7870F, 0xE94E5530, 0x368D1427, 0xC7AF4631, 0xDE39D74F, 0x54E1D143,
0xD9A63C97, 0xF334F9A8, 0x4A4F5688, 0xB2E4AEAD, 0x6F294D12, 0x684031D1,
0x61BE0B6B, 0x69F2F29A, 0xFEFF9FE8, 0xD6085A06, 0x166CFE15, 0xCDF3DEFB,
0x85CD5CE3, 0x4462A641, 0x8ED3B63F, 0x5B215B40, 0x3B8C8572, 0xF8FCB95D,
0x1A3ACDF3, 0x00BB732D, 0x95E8DA16, 0xBF1A82B8, 0x39DF210E, 0x3CD05E9D,
0x7E57A444, 0x83D4A5F8, 0x17998E47, 0x1BB31886, 0x980CCBEF, 0x189BFD03,
0x9A4C57DC, 0x7CF1AD65, 0xA31D8859, 0xD45B61F6, 0x99047718, 0x3D50BAA6,
0x22D8B4DF, 0x2EAC95F4, 0xB4BD0109, 0xB08E3450, 0x4220728D, 0x9EFE23F7,
0xC4AE8D7F, 0xE169785B, 0x35CA1385, 0x137B8AA5, 0x580796BE, 0x25C2B0DE,
0xAD1EFBB2, 0xACF84BE9, 0x641BC67B, 0x8036E024, 0xF49F68ED, 0xDBEF5111,
0x8AD21E80, 0x670A5FD7, 0x09EBA9CB, 0x0F7036A1, 0x78199ABD, 0x3FC8E952,
0x794A81B9, 0x056338F0, 0x627A6778, 0xF5ECCC77, 0xB679EE98, 0xCF14108C,
0x206BC8A0, 0xC8D72D89, 0x5C3C432C, 0x102B37F2, 0xD884271D, 0xFF1525AF,
0x217E49A9, 0x6D48E7D4, 0x45D9179E, 0xDD53BD34, 0x5622200A, 0x8CB750EE,
0x9F58E837, 0x4FB1C23C, 0x0775F0D0, 0x6E88891A, 0xAFB86C25, 0xC145B895,
0xEE7269E7, 0xF931FA38, 0x323BBF9C, 0xFB279C74, 0x0AFB4EAA, 0xA2CCE187,
0x1E2D30BB, 0xD5876D90, 0x91BC038E, 0x82E56648, 0x497732B7, 0x6361F5AB,
0xF1EA02A2, 0x1464D43D, 0x0BDC4820, 0xED78A77A];
s1 = [0x02AAB17C, 0xAC424B03, 0x72CD5BE3, 0x6D019B93, 0xCD9978FF, 0x7573A1C9,
0xB164326B, 0x46883EEE, 0xEAACE305, 0xC54169B8, 0x4CE75491, 0x0AA2F4DF,
0x10B76F18, 0xC6CCB623, 0x13726121, 0x1A488C6F, 0x4BC9F9F4, 0x26F5E6F6,
0x859079DB, 0x4F1885C5, 0xD78E761E, 0x8E36428C, 0x69CF6827, 0xB607C93D,
0x7D820E76, 0x645C9CC6, 0xBF38A078, 0x5F6B343C, 0xF2C28AEB, 0x6C0ED85F,
0x71592281, 0x1967FA69, 0xFD5293F8, 0xC879E9D7, 0x86024892, 0xA4F9533B,
0x9053836C, 0xDB6DCF8A, 0x18BEEA7A, 0x037117CA, 0x6AB30A97, 0xF4E92F02,
0x7739DB07, 0xD8F3B49C, 0xBD56BE3F, 0x45FAED58, 0x1C813D5C, 0x8AF0E4B6,
0x33EE18A4, 0x3C26E8EA, 0xB510102B, 0x141EEF31, 0xFC65B900, 0xE0158640,
0x884E0798, 0x930D0D95, 0x35638D75, 0x4085FCCF, 0xC4B17AD2, 0xCAB2F0FC,
0x2860971A, 0x3DDE6EE2, 0x6222F32A, 0x5D550BB5, 0xA9EFA98D, 0xC351A716,
0x1105586D, 0xDCFFEE85, 0xCCFBD026, 0xBAF294CB, 0xE69464F5, 0x94B013AF,
0x06A7D1A3, 0x6F95FE51, 0xD92AB34E, 0xED7BDE33, 0x79746D6E, 0x5BA41938,
0x7C1BA6B9, 0x31987C19, 0xDE6C23C4, 0x581C49FE, 0xDD474D63, 0xAA4546C3,
0x928FCE34, 0x48161BBA, 0x63912430, 0x6EC8A5E6, 0x87282515, 0x2CDA6B42,
0xB03D37C1, 0xE1084382, 0x2B3180C7, 0xDF92B82F, 0x5C68C8C0, 0x5504CC86,
0xABBFA4E5, 0x41848B0A, 0xB334A273, 0xBCA696F0, 0x24F6EC65, 0x0CE1512E,
0x4E9DD79D, 0x258905FA, 0x2019295B, 0xF8A9478B, 0x2924F2F9, 0x3993357D,
0x38A81AC2, 0x47C4FBF1, 0x1E0FAADD, 0x7ABCFF62, 0xA78DAD94, 0x8F1F98B7,
0x61E48EAE, 0x4D62F7AD, 0xECEBA345, 0xF5CEB25E, 0xF633E20C, 0xA32CDF06,
0x985A202C, 0xCF0B8447, 0x9F765244, 0xA8D516B1, 0x0BD7BA3E, 0xE54BCA55,
0x1D7A3AFD, 0x519EC608, 0x0E5715A2, 0x177D4571, 0xEEB55F32, 0x0F5E5CA1,
0x8029927B, 0xAD139FAB, 0x0D5DF1A9, 0x3E8BD948, 0xA5A0D357, 0xA2D12E25,
0x66FD9E52, 0x2E0C90CE, 0xC2E8BCBE, 0x000001BC, 0x423777BB, 0xD1661C7E,
0xA1781F35, 0x2D11284A, 0xF1FC4F67, 0x73ECC25D, 0xAE610C22, 0x96E0A810,
0x5A9A381F, 0xD5AD62ED, 0xD225E5E8, 0x65977B70, 0x99F889B2, 0x233F30BF,
0x9A9675D3, 0x5470554F, 0x166ACB74, 0x70C74CAA, 0xF0D09164, 0x57B82A89,
0xEFD95A5A, 0x2FBD12E9, 0x9BD37013, 0x3F9B0404, 0x4940C1F3, 0x09542C4D,
0xB4C52183, 0xC935B7DC, 0x3417F8A6, 0xB8095929, 0xF99CDAEF, 0x018C0614,
0x1B14ACCD, 0x84D471F2, 0xC1A3110E, 0x430A7220, 0xB77E090D, 0x5EF4BD9F,
0x9D4FF6DA, 0xDA1D60E1, 0xB287C384, 0xFE3EDC12, 0xC7FE3CCC, 0xE46FB590,
0x3732FD46, 0x7EF700A0, 0x59C64468, 0x762FB0B4, 0x155BAED0, 0x68755E4C,
0xE9214E7F, 0x2ADDBF53, 0x32AE3909, 0x834DF537, 0xFA209DA8, 0x9E691D9B,
0x0446D288, 0x7B4CC524, 0x21D87F01, 0xCEBB400F, 0x272E2B66, 0x36122641,
0x057702BD, 0xD4BABB8E, 0x91583139, 0x8BDC2DE0, 0x603C8156, 0xF7D236F7,
0x9727C459, 0xA08A0896, 0xCB4A8F43, 0x81AF564B, 0xC0B99AA7, 0x959F1EC8,
0x8C505077, 0x3ACAAF8F, 0x07B43F50, 0x4A44AB49, 0x3BC3D6E4, 0x9CC0D4D1,
0x4406C00B, 0x82A18854, 0x67E366B3, 0xB923DD61, 0x56AB2779, 0xBE83E1B0,
0xFB7C65D4, 0x6BDBE0E7, 0x08DF8287, 0x22EA6A9A, 0xE36E141C, 0x7F805D1B,
0xAFE5C7A5, 0xE27F996A, 0xD3867DFB, 0xD0E673DE, 0x123AEB9E, 0x30F1D5D5,
0xBB434A2D, 0x78CB67EC, 0xF33B0372, 0x52D66336, 0x505F33AC, 0xE8A5CD99,
0x53497480, 0x8D2D5711, 0x1F1A4128, 0xD6E2E71D, 0x74036C3A, 0x89B67ED9,
0xFFED95D8, 0xE72B3BD6, 0xA6300F17, 0xEBC18760];
s2 = [0x05A12138, 0xB4F87C98, 0x140B6990, 0x391F5DD5, 0xC9B79434, 0x2015AFF5,
0x3E478CF1, 0xAB278D99, 0x2D6E0692, 0x0D7F3B16, 0xA665EA04, 0xF0E0DFB3,
0x3DBCBA51, 0x0EA4371E, 0x5CB38429, 0xBA1B1CE2, 0x8353E80D, 0xD4DB0717,
0xA5F38101, 0x8887CAF2, 0xB3C45136, 0x9089CCF9, 0xF2591D14, 0x8595C5CD,
0x99052A33, 0xDB0F7B76, 0x418E5307, 0x162EB2FA, 0x6C13D9FE, 0x92E76EEA,
0xC6D1898F, 0x1B83F51B, 0xE42AB7D9, 0xFCD2EBAC, 0x0AFBBCC5, 0x9A6D0C85,
0x2A7974AA, 0x078AC09B, 0xEAC6EDD0, 0x71EB9E70, 0x4FC2625C, 0x0B1290A3,
0x62FE932B, 0x11A8AC7D, 0x72FADCD4, 0x329D20DC, 0xCD672F18, 0xD124642C,
0x19D9E726, 0x4BA9500C, 0x634C43F3, 0xEB66D822, 0xEC9BAAC2, 0xE0840258,
0x91CAECA5, 0x4875ADB5, 0x5B813FDF, 0xB774CD06, 0x1FA744AF, 0xE761AE2E,
0xAEE8E09A, 0x5118F665, 0x33DF1964, 0x29199762, 0xF5EF30A7, 0x1504A6BE,
0x7ED84B6C, 0xF6E97D96, 0x2EF96B73, 0xE86FF3F4, 0x86A3F8F8, 0x4CFC1063,
0xFA52C6DD, 0x64D46AD3, 0xCF1E186A, 0x385660AE, 0x77DCB1D7, 0x749ABE6E,
0xD09F734B, 0x8A558BA8, 0x3041AB45, 0x470A59BD, 0x5F46C393, 0xD336B0E5,
0x659EF19F, 0x782CCB24, 0xC814C4C7, 0xBE11727B, 0x0121B34D, 0x70AD471F,
0x615A6849, 0x80B9957A, 0x50AEE355, 0xFD2FD556, 0xD80C8FD6, 0x754A173A,
0xAF91BF3C, 0xD690C12D, 0x5E687094, 0x3708A0A4, 0x17D06580, 0xB8FDF27F,
0x4D502843, 0x8FFF4012, 0xE2E21F3B, 0xA7372C8A, 0xFEB5CE66, 0xBD736621,
0x8B574D0B, 0x25E6FE5B, 0xBC07913F, 0x09AC2D97, 0x3BC5D757, 0xF38F61E8,
0x9B1CC21A, 0xF494F7AB, 0x956B3E03, 0x4AA09C30, 0x00090FB4, 0x57268AC0,
0xEDBF42D1, 0x7960A972, 0x87421B41, 0x7C00369C, 0xCB353425, 0xEF0129D8,
0xCAF4DEB6, 0x989263F7, 0x5D7A4578, 0x4E634635, 0xBF2DC900, 0x2125261C,
0x93518E50, 0xA2D7D4C3, 0x2C5DDD8D, 0xE35B6C61, 0x02032B19, 0xDCE44132,
0xDDF65610, 0xB5E148F0, 0x2FCD496F, 0x58B0EE31, 0x18F5A308, 0x9CA6D2CF,
0x6AAADBC8, 0x1299FAE3, 0x7F1027E7, 0x443B5BEB, 0x5939D0A6, 0xFB207FFC,
0x81C7D374, 0x94C3B475, 0x13B49F05, 0xF8293967, 0x1076FF7C, 0x663D67EE,
0xEEE30DA1, 0x7ADEB9B7, 0x7B6C57A2, 0x6B984FE1, 0xACC1A5FD, 0xC5483AFF,
0x42BA3C37, 0xB2F76F40, 0x6F0D6D4E, 0x971D311D, 0xCC7CD691, 0xE62382C9,
0xC4889995, 0x45721568, 0x8206082F, 0x2386A8CB, 0x03B87588, 0x28BDD1E0,
0x040201F6, 0x8CF04ADE, 0xD79CE5CE, 0x96C00BB1, 0x9DA503BA, 0xA458058E,
0xBB401ECC, 0xA85F143D, 0x7DF2239E, 0x1A641183, 0x52701602, 0x3F285E09,
0xB9C80953, 0x8930DA6D, 0x53691387, 0xA9CB8784, 0x352BE9A0, 0xFF4E7AFB,
0x274F2228, 0x1D5E868B, 0xC10E96C1, 0x68222E23, 0x8E80B5B0, 0xE193BB81,
0xA18B04B8, 0xADD5335F, 0x4916A1CA, 0x34BE98C4, 0x3C54A4AD, 0xDA33E1B9,
0x226AA213, 0x6D1A5F60, 0x60AFEF77, 0xF7443DBF, 0x73B29A82, 0xC232BD5E,
0x673AC8B2, 0xB6C9772A, 0x9FDA35DA, 0x1C7BE615, 0x565C5527, 0x46777839,
0x5A3E2469, 0x0FD312D2, 0xCED652C6, 0xA33F8552, 0xC3435A9D, 0x088CFDEC,
0x1E96F420, 0x6EEEA746, 0xF9CF0E5A, 0xA0ABFB4A, 0xF162796B, 0x54ED9B0F,
0xD2BB253E, 0xB0A29D4F, 0xDEF1388C, 0x76B6F054, 0x2B45805D, 0xE94D9289,
0x9E3100DB, 0xDFCC8847, 0x8D17B87E, 0x40B1B642, 0xD54BF9A9, 0x433C7EE6,
0x3A78C748, 0x248576BB, 0x3638CFE4, 0x0CEC4E4C, 0xE5CE32ED, 0x26EA4C11,
0xC77E58BC, 0xD934FCEF, 0x06E55444, 0x317DE40A, 0x69DDE259, 0x55820A86,
0x84711AE9, 0xB1498371, 0xC0977179, 0xAA8D5C0E];
s3 = [0xE6A6BE5A, 0xB5A122A5, 0x563C6089, 0x4C46CB2E, 0xD932ADDB, 0x08EA70E4,
0xD765A667, 0xC4FB757E, 0xDF11C686, 0xDDEB84F1, 0x6F2EF604, 0x4A8E0F0F,
0xA5EDEEF8, 0xFC4F0A2A, 0xE83E1DA8, 0xDC8FF882, 0xCD45505E, 0x18D19A00,
0x34A0CFED, 0x0BE77E51, 0x1E341438, 0xE05797F4, 0xFFD23F9D, 0x543DDA22,
0x661F81FD, 0x8736E641, 0x15227725, 0xE25F7F46, 0x48A8B212, 0xAFDC5417,
0x03D912BF, 0x31B1AAFA, 0xF1AC2796, 0x40A3A7D7, 0x1056136D, 0x7889E1DD,
0xD3352578, 0xA7E25D09, 0xBD4138B3, 0x920ABFBE, 0xA2A5D0F5, 0xC054E36B,
0xF6DD59FF, 0x35373545, 0xCA845E91, 0x84F82B60, 0x79C62CE1, 0x8B09A2AD,
0xD0C1E96A, 0x5A786A9B, 0x0E020336, 0xC17B474A, 0x6A731AE3, 0x8226667A,
0x67D45676, 0x1D94155C, 0x6D00FD98, 0x51286EFC, 0x5E883447, 0xF72CA0AE,
0xBE40E4CD, 0xE9970BBB, 0x726E4BEB, 0x703B0007, 0x4631D816, 0xB880B5B5,
0x641793C3, 0x7B21ED77, 0x77630631, 0xAE528948, 0x53DBD7F2, 0x16CADCE7,
0x005C19BD, 0x68868F5D, 0x3A9D512C, 0x367E62C2, 0xE359E7EA, 0x526C0773,
0x735AE5F9, 0x493FC7CC, 0xB0B9C153, 0x321958BA, 0x852DB00B, 0x91209B2B,
0x6E604F7D, 0xB99A8AE2, 0xCCF52AB6, 0x4727D9AF, 0x7E950D0C, 0x756F4356,
0xF5ADD442, 0x4E87E099, 0x2ACFA1DF, 0xD898263A, 0xC8F4924D, 0xCF99CA3D,
0xFE477BAC, 0xED5371F6, 0x831A5C28, 0xC5D3C90A, 0x0F7F9037, 0x19F9BB13,
0xB1BD6F1B, 0x1C761BA3, 0x0D1530C4, 0x8943CE69, 0xE5184E11, 0x618BDB80,
0x7D29BAD6, 0x81BB613E, 0x071C9C10, 0xC7BEEB79, 0xC3E58D35, 0xEB017892,
0xD4EFFB9C, 0x99727D26, 0xA3E063A2, 0x9D4A8B9A, 0x3F6AB7D5, 0x9CC0F2A0,
0x3DEE9D2D, 0x330F49C8, 0xC6B27202, 0x0AC59EC0, 0xEF4EAC49, 0xF450244E,
0x8ACC46E5, 0x2FFEAB63, 0x8F7CB9FE, 0x5BD8F764, 0x427A7315, 0x17D0C4AA,
0x3992486C, 0xB4CBFEE0, 0x7C75D620, 0xDBC295D8, 0x60B369D3, 0xCE42685F,
0x06F3DDB9, 0x8EA4D21D, 0x20B0FCE6, 0x2C1B9123, 0xB28317B8, 0xA89C1E18,
0x0C6B1857, 0xB65DEAA9, 0xFB2B794B, 0x04E4317F, 0x4B852D32, 0xD5AE6BEE,
0x309682B2, 0xBAE309A1, 0x8CC3F97B, 0x98A9422F, 0x244B16B0, 0xF8BF571C,
0x1F0D6758, 0xC9B611D9, 0xB7AFD588, 0x6290AE84, 0x94DF4CDE, 0x058A5BD1,
0x63166CC1, 0x8DB8526E, 0xE1088003, 0x9E0523C9, 0x45EC2824, 0x575B8359,
0xFA9E400D, 0xD1823ECB, 0xDAFD983B, 0xAA7D2908, 0x269FCD44, 0x1B91F5F7,
0xE4669F39, 0x7A1D7C21, 0x65623C29, 0x23684490, 0xAB9BF187, 0xBC23ECB1,
0x9A58DF01, 0xA070E868, 0x4FF18830, 0x14D565B4, 0xEE133374, 0x950E3DCF,
0x59930254, 0x3BF29940, 0xA955943F, 0xA15EDECA, 0x29142127, 0x76F0371F,
0x0239F450, 0xBB073AF0, 0xBFC80571, 0xD2670885, 0x9671A3D4, 0x55B5D38A,
0x693AE2D0, 0x5C48B4EC, 0xFD743B19, 0x25770181, 0xE77987E8, 0x28E11014,
0x270CC59E, 0x71495F75, 0x9BE853FB, 0xADC786A7, 0x09044561, 0x58BC7A66,
0xF306558C, 0x41F639C6, 0x216DEFE9, 0x11640CC7, 0x93C43694, 0xEA038E62,
0xF9ABF3CE, 0x741E768D, 0x0144B883, 0xC20B5A5B, 0x1AE69633, 0x97A28CA4,
0x8824A43C, 0x37612FA6, 0x6B4CB165, 0x43AA1C06, 0x7F4DC26F, 0x6CBACC8E,
0xA6B7FFEF, 0x2E25BC95, 0x86D6A58B, 0xDED74AC5, 0x8030BDBC, 0x3C81AF70,
0x3EFF6DDA, 0xB38DC39F, 0x12388552, 0xF2DA0ED2, 0x44CEFADC, 0x1312200E,
0x9FFCC84F, 0xF0CD1F72, 0xEC697405, 0x2BA7B67C, 0xAC2F4DF3, 0xCB33D143,
0xA4E9044C, 0x5F513293, 0x5DC96455, 0x50DE418F, 0x388CB31A, 0x2DB4A834,
0x9010A91E, 0x4DF7F0B7, 0xD62A2EAB, 0x22FAC097];
s4 = [0xF1DAF39B, 0x6FF29281, 0xFCDCA83F, 0xD2FCCE63, 0x93FBBBC2, 0xFE70BA66,
0x970E93D4, 0xB0E45E71, 0x3985E497, 0x5EF75017, 0x3840B8E0, 0x35898579,
0xE2B2ABC5, 0x375A9172, 0xCA7127FB, 0x4A72FF41, 0x083066A5, 0xD7289AF5,
0x31C8C25E, 0x76875D47, 0x056190DD, 0xBB0F1491, 0x0FD58892, 0x58B74DE8,
0x91531C61, 0x81D2C6EE, 0x7DEDED98, 0x8596E902, 0x172772ED, 0x8E6BC30D,
0x63044326, 0x5ADD3BBE, 0x325C4623, 0x349DD067, 0xA69EA624, 0x862E7E4F,
0x04E04864, 0x7086FCB7, 0x8A03E7CC, 0xAB2FF1DB, 0xEFBF79EC, 0x9C481854,
0xED1509AD, 0x0EC79851, 0x183AB7F8, 0x52F3EEE4, 0xE54E82FF, 0xB9AC6CA2,
0x53677D5D, 0x1F8C492A, 0xA784EBF9, 0xA2D08C74, 0xE1087C22, 0xC410AE8D,
0xBFEC8E1A, 0xCD3B45AA, 0xEC0DDE19, 0x80462E07, 0x0BA61938, 0xA58FD840,
0x3CA74F18, 0xC99C021F, 0x134AE816, 0x73645ABB, 0x5575F2F6, 0x4E7E8BA9,
0x71E8D953, 0x62764E30, 0x596F003D, 0xA8C5D6B9, 0xD690F84C, 0xFF33AF88,
0x3F820801, 0x9A1AF9B5, 0x2CDB396B, 0xB301B252, 0x6655615A, 0x92D32C09,
0x49477485, 0x33A39EBA, 0x6EBC5462, 0xFDB326B0, 0x87FFD78C, 0x99F42BC6,
0x6B096E2D, 0x3AD852BF, 0xDBD4B40B, 0x45E9C559, 0x07D93186, 0xFAA1F773,
0x157A0A1D, 0xF6201AD5, 0xCFB0F075, 0x68290778, 0xCE22D11E, 0x2EC3C93B,
0x7C3F1F2F, 0x02AAF50E, 0x600B9FCF, 0x48EA3AD6, 0x8B6A83EA, 0xB7735CDC,
0x1E524A11, 0xCBC96749, 0xB19BD394, 0x9B24A20C, 0xEB3644A7, 0xE8EF0EDE,
0xE9798FB4, 0x740C28A3, 0x6197566F, 0xB65F069D, 0x78BE6F10, 0x7A076A15,
0xA08B9BD0, 0xC7B8894E, 0xBA34FEF4, 0x283703FC, 0x0CAF30C8, 0xF017687A,
0x9E423569, 0x2DEE8199, 0xDD1F7ABD, 0x09A9FA80, 0xDF7CA1D9, 0x886CCB77,
0xA91B4720, 0xF9D1DCDF, 0x4F387B58, 0xF3316503, 0xE7E37339, 0x50F5A74B,
0x3698992E, 0xB858F63C, 0x5BF86DDA, 0x29B5DD76, 0x7700362B, 0xC61EFB8F,
0xC5FAA427, 0xCC327143, 0x30E53206, 0xE02CA396, 0x0AAD76F1, 0xC16DA536,
0x1BE7E1D2, 0x004DDBE1, 0x067BE646, 0x3BFE586D, 0xA12B97F0, 0x25D60CA8,
0x017477D1, 0xDECAD24D, 0xBE0A1EEB, 0x794301AB, 0x270540FD, 0xA34C22C1,
0xF4C16387, 0xBD9A330A, 0xAA7D6435, 0x03AE4C32, 0xAD78E312, 0x6AB420F2,
0xEA1141E6, 0x984F6B28, 0x446E9D83, 0x4D418D7F, 0xE6183D8E, 0x5F166044,
0x11CBCA3E, 0xB21DC0BC, 0xF5D7CDD3, 0x3D261D9C, 0x23BA942C, 0x478042B8,
0x56A2389F, 0x67AB2DA0, 0x8FBBFD31, 0x9D141365, 0x2B91C793, 0xFB13DFD8,
0x14E2A97B, 0x5CDE5F14, 0xD5F0AC89, 0x1C5E5B00, 0xD4FDB3F3, 0x572A1208,
0x43CCE58A, 0xA4C6E0A4, 0x65CF620F, 0x9F219CA1, 0x6D63C821, 0x72770DAF,
0x20DF87EF, 0x1A3E86E5, 0xC819D504, 0xAC60BFA6, 0x7E9FB6C3, 0x9483B1C7,
0xC295376C, 0x2AB9AD13, 0xC0A07884, 0xE36210C9, 0x163951CE, 0xD0CDB5FA,
0xD87F5733, 0x898DB0E7, 0xD1A5AA7E, 0xB5061B45, 0x6C92703A, 0xAF25EF42,
0x22540456, 0xD9C4179A, 0xAE3D3C60, 0xB49496C4, 0x1D1CD4E3, 0x218E5534,
0xF850246A, 0x9502BC29, 0xDA23051B, 0xDC93537C, 0xEE4B29AE, 0x416895D7,
0x122D7F37, 0x105DC4B1, 0xF7882A90, 0x518A3F5C, 0x8451255B, 0x19BD34E2,
0x5D3CECCB, 0x42E13ECA, 0x2F59E2AC, 0xE4F9CC50, 0x0DF1847D, 0xD3E623FE,
0x7B568048, 0x8235216E, 0x24F64B4A, 0x8C6916F7, 0x4CCE1555, 0x4B99BD25,
0x69812FC0, 0x90660BB6, 0x46A4B9B2, 0x7F49DA68, 0x83B1A05F, 0x9644F48B,
0x8DB675B3, 0xBCEBBE95, 0x75655982, 0x3E45CF05, 0x54C21157, 0x40A8EAE9,
0xF2C0C1CD, 0x6412691C, 0x265B0F70, 0xC3578A9E];
s5 = [0xF49FCC2F, 0x487FD5C6, 0xE8A30667, 0x2C9B4BE3, 0xDA3FF74B, 0x2FA165D2,
0xA103E279, 0xBECDEC77, 0xCFB41E72, 0xB70AAA02, 0xD42309F0, 0x8EFC1AD0,
0x96C6920B, 0x66AF4163, 0x2174ABDC, 0xB33CCEA6, 0xF04A4933, 0x8D970ACD,
0x8F96E8E0, 0xF3FEC022, 0xEC7BF310, 0xF5ADB0AE, 0x9B50F885, 0x49754883,
0xA3354FF6, 0x0702BBE4, 0x89FB2405, 0xAC307513, 0x1D2D3580, 0xEB738FC2,
0x5854EF8F, 0x9E5C5232, 0x90AA53CF, 0xC1D24D51, 0x2051CFEE, 0x13220F0A,
0xCE393994, 0xD9C42CA4, 0x685AD223, 0x066484B2, 0xFE9D5D70, 0x5B13B9DD,
0x15F0D475, 0x0BEBCD06, 0xD58C6791, 0xD1187C50, 0xC95D1192, 0x86EEA14C,
0x3485BEB1, 0xDD191D78, 0xF60866BA, 0x518F643B, 0x8852E956, 0xA768CB8D,
0x38047726, 0xA67738B4, 0xAD16691C, 0xC6D43193, 0xC5A5876D, 0x16B9FA1F,
0x188AB117, 0xABDA2F98, 0x3E0580AB, 0x5F3B05B7, 0x2501A2BE, 0x1B2F7400,
0x1CD75803, 0x7F6ED895, 0xB15926FF, 0x9F65293D, 0x6ECEF04D, 0x4782275F,
0xE4143308, 0xFD0DFE40, 0x4325A334, 0x8AE77E62, 0xC36F9E9F, 0x85455A2D,
0xF2C7DEA9, 0x63CFB4C1, 0x83B040CC, 0x3B9454C8, 0x56F56A9E, 0x2DC2940D,
0x98F7DF09, 0x19A6E01E, 0x42A99CCB, 0xA59998AF, 0x366295E8, 0x6B48181B,
0x1FEC57E2, 0x4667446A, 0xE615EBCA, 0xB8F31F4F, 0x22713ED6, 0x3057C1A7,
0xCB46ACC3, 0xDBB893FD, 0x331FD92E, 0xA498F961, 0xA8D8426E, 0xA089B274,
0x87F6B373, 0x118808E5, 0x9906E4C7, 0xAFED7F7E, 0x6509EADE, 0x6C1EF1D3,
0xB9C97D43, 0xA2F2D784, 0x7B849647, 0x7A5BE3E6, 0xF96330ED, 0xEEE60DE7,
0x2B4BEE4A, 0x6A56A63E, 0x02121359, 0x4CBF99F8, 0x39807135, 0xD0A77A89,
0xF1C1A9EB, 0x8C797628, 0x5D1737A5, 0x4F53433C, 0xFA8B0C53, 0x3FD9DCBC,
0xC040917C, 0x7DD00142, 0x8476FC1D, 0x23F8E7C5, 0x032A2244, 0x5C87A5D7,
0x082B4CC4, 0xDF917BEC, 0x3270B8FC, 0x10AE72BB, 0x576AC94E, 0x1AD112DA,
0x691BC30E, 0xFF246311, 0x3142368E, 0x71380E31, 0x958D5C96, 0xF8D6F430,
0xC8FFD13F, 0x7578AE66, 0x05833F01, 0xBB34B5AD, 0x095F34C9, 0x247AB645,
0xDCDBC6F3, 0x4A2E14D4, 0xBDB5E6D9, 0x2A7E70F7, 0xDEF42D8A, 0x01078EC0,
0xE5DE511A, 0x7EBB3A52, 0x77697857, 0x004E8316, 0xE7A21020, 0x9D41A70C,
0x28E06C18, 0xD2B28CBD, 0x26B75F6C, 0xBA47568C, 0xD80BADBF, 0x0E206D7F,
0xE258A439, 0x723A1746, 0xC7CAA854, 0x7CAC3288, 0x7690C264, 0x17E55524,
0xE0BE4776, 0x4D289B5E, 0x44862B9C, 0xB47CC804, 0x822C1B36, 0x4EB14655,
0x1ECBBA07, 0x6143459D, 0x53A8FBF1, 0x97EA04D8, 0x622181A8, 0xE9BCD341,
0x14112586, 0x9144C5FE, 0x0D33D065, 0x54A48D48, 0xC43E5EAC, 0xA9728B3A,
0xD7934E7B, 0xE35503B6, 0xCAE321FB, 0x129A50B3, 0xCD5E68EA, 0xB01C9019,
0x3DE93CD5, 0xAED52EDF, 0x2E60F512, 0xBC3D86A3, 0x35269D9B, 0x0C7D6E2A,
0x59E86297, 0x298EF221, 0x55000029, 0x8BC08AE1, 0xC2C31C2B, 0x94CC596B,
0x0A1D73DB, 0x04B6A0F9, 0xEFFDAFA2, 0xF7C8075B, 0x9CC5C714, 0x78BD1638,
0xB2F11568, 0xEDFABCFA, 0x796CE5F2, 0xAAE128B0, 0x3A493DA0, 0xB5DF6B2C,
0xFCABBD25, 0x70810B58, 0xE10FDD37, 0x524DCAB5, 0x3C9E8587, 0x40298281,
0x74A05B6F, 0xB6100215, 0x0FF979D1, 0x6037DA27, 0x5E92975A, 0xD66DE190,
0x5032D6B8, 0x9A36B7CE, 0x80272A7A, 0x93EFED8B, 0x37DDBFF4, 0x4B95DB5D,
0x92D3FDA1, 0xFB1A4A9A, 0x730C1969, 0x81E289AA, 0x64669A0F, 0x27B3FF7D,
0xCC6B615C, 0x674F20B9, 0x6F312382, 0x5AE48871, 0xBF619F99, 0xEABAC460,
0x454C6FE9, 0x419CF649, 0xD3DC3BEF, 0x6D0E60F5];
s6 = [0x26323C55, 0xFA1B59F5, 0x7C4C8FFA, 0xDB2955D7, 0xCE35AFC2, 0xA9113D45,
0xB6AC0A0D, 0x597BE3FF, 0xAC48CD56, 0xF45CE46F, 0xFBE2D05E, 0xB39935F0,
0x9CD619C6, 0x74DF2069, 0x8510ED40, 0x3A6ECAA7, 0x1A817049, 0xBBC163A2,
0x7D44CC32, 0xAAF410AB, 0xA804824B, 0x2D8C9F94, 0x35DEE8E3, 0x6540D893,
0x2AA4BFDA, 0x17D1327C, 0x361A6685, 0x1221057D, 0xA43ACFF7, 0xCDC02281,
0xFF6189DB, 0x4CE66AF1, 0x1DB99BEA, 0xFE42980F, 0x718D4B9F, 0x22A5FD8C,
0x2BE4BD31, 0xCB243847, 0x5846C407, 0x1EB70B04, 0xF573417F, 0x2180F877,
0xF370EB00, 0xD6D9D6A4, 0x647FA702, 0x76606F06, 0xA286FF0A, 0xC918C262,
0x32225F54, 0x68CCB5FE, 0xD72BBA20, 0x912D43A5, 0xBF12A4E8, 0xF22F1DDF,
0x0AB50973, 0x9DFFB742, 0x062A2E39, 0x39650495, 0xD50EB8B8, 0xF826016E,
0x953E7671, 0xA6369570, 0x94B1C987, 0x90B25CE1, 0x0B9742F6, 0xFCAF8C6C,
0xD868744E, 0xE8D7731B, 0x5AC42F61, 0xF0851567, 0x9E83E9D5, 0x5C09648D,
0x75370CFD, 0xBC0D255D, 0x34131BE0, 0xB48B7EAF, 0x44A3AB35, 0x201799D0,
0xB7C54441, 0xFD6A6CA6, 0x2C08C6E5, 0xA795D9EE, 0x2F72943D, 0x19781208,
0xEAEE6291, 0x665DB309, 0x5D53B1F3, 0x40413F27, 0xDF0CFA59, 0x2EB85E8F,
0xADBCE118, 0xDE8431DD, 0x41F1873E, 0xA0D2F0E7, 0x77B60728, 0xAFC9A62C,
0x6A2506C5, 0xDCE1CE12, 0x4A675B37, 0x81BFD216, 0xEC15F389, 0x8B5B13C8,
0x14273E1D, 0x03199D17, 0xE7E061F8, 0x04775AAA, 0x463D56F9, 0x43A26E64,
0x879EC898, 0x150177CC, 0xCA1D3348, 0x9F6FA013, 0x47A7DDD6, 0xCC1CB2C7,
0x25FCD1D3, 0x8E0FF476, 0x3D03C12D, 0xEE43889A, 0xEBFB4F43, 0x3CF7396D,
0xD2D4E022, 0xD01F784C, 0x3852F546, 0x8AC7B638, 0x678AA14A, 0x6CFAADCD,
0x08339E34, 0x1F5923B9, 0x0F4A265F, 0xB29B841C, 0x8F91B4AD, 0x45C6D3C3,
0xF62CAAF2, 0x6F75EE78, 0x1C8916A9, 0x84FED453, 0x16B000E6, 0x9823C074,
0xC2745360, 0xB91691BD, 0xF1ADE66A, 0x6D458397, 0x274D4711, 0x503F2951,
0xC3F96B6B, 0x63CAB0AE, 0x55A1DB14, 0x6E14DE5C, 0x4E51DAC1, 0x8D4B0FD9,
0x52A0F9D1, 0xE1878E80, 0x99D07150, 0x0C4E9310, 0xE4F0682E, 0x105EDF9B,
0x2379187A, 0xBEE77B9C, 0x33CF4523, 0x1805C7A1, 0x56AE7C72, 0xB18F75DC,
0xABE9808E, 0xC00B72AC, 0x62492D92, 0xF92E4D5B, 0xC4BEEA7E, 0xDA5690CE,
0x42391484, 0x28F80D9D, 0x7AB3F215, 0x51341A4D, 0x7BEF5805, 0x07968633,
0x249DBE36, 0x78A64C68, 0x3BC334EF, 0xE66B17F4, 0x9ACD7D0B, 0xE0ED6782,
0x00C879FC, 0xB5926DB6, 0x317AC588, 0x86381F21, 0xD19F3025, 0xDDFD3BFB,
0xE2ECE2EB, 0xC7EA08DE, 0xB09A8BC4, 0xCF0797BA, 0xC57C2A75, 0x61931E58,
0x09BA1C0C, 0x937D11D2, 0xC66D92E4, 0x54C2ECBC, 0x82F6FE24, 0x5B62274F,
0x01CB8126, 0x13E37FCB, 0xC80046C9, 0xE388FB63, 0x116CF19E, 0x6BD52457,
0xAE47F7A8, 0xD47E9CCF, 0x0228BB1A, 0x5EDB4E99, 0xB8AAFC30, 0x29D3212A,
0xE90296B3, 0x57DD025A, 0xA390ACB5, 0x83BD4A01, 0x4BF3B93B, 0x8CAB4829,
0xBA582C52, 0x7FD85DB2, 0x6082AE83, 0xA5DA9AB0, 0x3771A93F, 0x493152D8,
0x97B4541E, 0xD38E6966, 0x923C852B, 0x0DF2A87B, 0x1B4F37BE, 0x4D54E503,
0x7ECE57D4, 0xD9063A3A, 0x8030A2BF, 0xED2003C0, 0x69A94086, 0x30F57A8A,
0x79EBE779, 0x05DCBCE9, 0x88570EE2, 0xBDE8F6A0, 0xC164A32F, 0x9666D78B,
0xE5E5C33C, 0x48698D90, 0x3E1E8ABB, 0x893BDCB4, 0x5FBBD519, 0x9B9465CA,
0x3F9C51EC, 0xA15049B7, 0xF776CBB1, 0xEF552BED, 0x705A36A3, 0x4F986044,
0x0EA8280E, 0x535F5065, 0x720AEF96, 0x7363A51F];
s7 = [0x5B0E6085, 0x1A46C1A9, 0xA9E245A1, 0x65CA5159, 0x05DB0A76, 0x81EAC77E,
0x528EF88A, 0xA09EA253, 0x430DDFB3, 0xC4B3A67A, 0x4ECECFD8, 0x3EF56F10,
0x0B22D682, 0x17FD460A, 0x6CF8CC8E, 0xD6C824BF, 0x61243D58, 0x048BACB6,
0xD9A38AC2, 0x7FDDFF5B, 0xAD6D495A, 0xE1A6A74F, 0xD4F78512, 0xFD4B7F88,
0x247C2004, 0x096EA1C5, 0xD56966B4, 0x277DA5C3, 0x94D59893, 0x64F0C51C,
0x3D33BCC4, 0xE005CB18, 0xFF5CCD1D, 0xB0B854A7, 0x7BD46A6A, 0xD10FA8CC,
0xD3148495, 0xC7FA975F, 0x4886ED1E, 0x28CDDB79, 0xC2B00BE2, 0x5C959045,
0x7A6BDDFF, 0xCE509E38, 0xEBEB0F00, 0x1DCC06CF, 0xE4D9F28B, 0xD85A305D,
0x475B1D87, 0x2D4FB516, 0xA679B9D9, 0x53841C0D, 0x3B7EAA48, 0x781E0E47,
0xEFF20CE6, 0x20D261D1, 0x16A12B03, 0x1960EB22, 0x251C16FE, 0x9AC0C330,
0xED152665, 0x02D63194, 0x5074F083, 0x70BA598C, 0x794A1581, 0x0D5925E9,
0x3067716C, 0x910AB077, 0x6A61BBDB, 0x93513EFB, 0xF494724B, 0xE887E198,
0x34B1D3C6, 0xDC35E433, 0xD0AAB842, 0x08042A50, 0x9997C4EE, 0x829A7B49,
0x263B8307, 0x752F95F4, 0x92721740, 0x2A8AB754, 0xA442F755, 0x2C31334E,
0x4FA98D7C, 0x55C3862F, 0xBD061017, 0x46FE6CB8, 0x3FE03792, 0xCFE70037,
0xA7BE29E7, 0xE544EE5C, 0x8A781B1B, 0xA5C94C78, 0x39412E28, 0xA1265EF3,
0xBCC2770C, 0x3AB66DD5, 0xE65499D0, 0x7D8F5234, 0x0F6F64FC, 0x74EFBE61,
0xACDC82B7, 0xDD40BFE0, 0x37E99257, 0xFA526269, 0x8BBBF63A, 0xF0013F15,
0xA8307E9F, 0xCC4C27A4, 0x1B432F2C, 0xDE1D1F8F, 0x606602A0, 0xD237AB64,
0x9B938E72, 0xEC4E0370, 0xFEB2FBDA, 0xAE0BCED2, 0x22CB8923, 0x69360D01,
0x855E3602, 0x073805BA, 0x33E17A13, 0xDF487405, 0xBA92B29C, 0x0CE89FC7,
0x5F9D4E09, 0xF1AFE929, 0x6E3480F6, 0xEEBF3A2A, 0xE21938A8, 0x57DFEFF8,
0x2F006B0B, 0x62F479EF, 0x11A55AD4, 0xF229D290, 0x42F1C27B, 0x2B1F7674,
0x4B76ECA3, 0x8C98F463, 0x14BCC93C, 0x8885213E, 0x8E177DF0, 0xB49B73B5,
0x10168168, 0x0E3D963B, 0x8DFC4B56, 0xF789F135, 0x683E68AF, 0xC9A84F9D,
0x3691E03F, 0x5ED86E46, 0x3C711A0E, 0x5A0865B2, 0x56FBFC1F, 0xEA8D5DE3,
0x71ABFDB1, 0x2EB99DE1, 0x21ECC0EA, 0x59A4D752, 0x3896F5EB, 0xAA638F3D,
0x9F39358D, 0xB7DEFA91, 0x6B5541FD, 0x6DC6DEE8, 0x353F57AB, 0x735769D6,
0x0A234AA6, 0xF6F95080, 0xB8E319A2, 0x31AD9C11, 0x773C22A5, 0x45C7561A,
0xF913DA9E, 0xDA652D9B, 0x4C27A97F, 0x76621220, 0x96774389, 0xF3EE5BCA,
0x409F7536, 0x06D09A39, 0x6F83AEB0, 0x01E6CA4A, 0x66FF3462, 0x72207C24,
0x4AF6B6D3, 0x9C994DBE, 0x49ACE597, 0xB38C4766, 0x131B9373, 0xB1822CCE,
0x9D7555B9, 0x127FAFDD, 0x29DA3BAD, 0xA2C1D571, 0x58C5134D, 0x1C3AE351,
0xE907C82E, 0xF8ED0919, 0x3249D8F9, 0x80CF9BED, 0x1881539A, 0x5103F3F7,
0x15B7E6F5, 0xDBD7C6DE, 0x44E55C41, 0xB647D425, 0x5D11882B, 0xF5098BBB,
0x8FB5EA14, 0x677B9421, 0xFB58E7C0, 0x89D3674C, 0x9E2DA4DF, 0xFCC41E32,
0x03F38C96, 0xCAD1BDBD, 0xBBB442C1, 0xB95FE86B, 0xB22E0467, 0x845358C9,
0xBE2A4886, 0x95A2DC2D, 0xC02C11AC, 0x2388B199, 0x7C8008FA, 0x1F70D0C8,
0x5490ADEC, 0x002B3C27, 0x7EAEA384, 0xC602326D, 0x83A7287D, 0xC57A5FCB,
0xB56844E4, 0xA373B40F, 0xD71A786E, 0x879CBACD, 0x976AD1BC, 0xAB21E25E,
0x901063AA, 0x9818B344, 0xE36487AE, 0xAFBDF931, 0x6345A0DC, 0x8628FE26,
0x1E5D0160, 0x4DE44006, 0xBF6C70E5, 0x411218F2, 0xCB0C0708, 0xE74D1475,
0xCD56D943, 0xC12591D7, 0xC83223F1, 0xC3A0396F];
return (function (inp, res) {
var o0,o1,o2,o3,o4,o5;
var b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,ba,bb,bc,bd,be,bf;
o0=res[0];
o1=res[1];
o2=res[2];
o3=res[3];
o4=res[4];
o5=res[5];
b0 = (((inp[(0x0*4)+0]<<0)|(inp[(0x0*4)+1]<<8)|(inp[(0x0*4)+2]<<16)|(inp[(0x0*4)+3]<<24))>>>0);
b1 = (((inp[(0x1*4)+0]<<0)|(inp[(0x1*4)+1]<<8)|(inp[(0x1*4)+2]<<16)|(inp[(0x1*4)+3]<<24))>>>0);
b2 = (((inp[(0x2*4)+0]<<0)|(inp[(0x2*4)+1]<<8)|(inp[(0x2*4)+2]<<16)|(inp[(0x2*4)+3]<<24))>>>0);
b3 = (((inp[(0x3*4)+0]<<0)|(inp[(0x3*4)+1]<<8)|(inp[(0x3*4)+2]<<16)|(inp[(0x3*4)+3]<<24))>>>0);
b4 = (((inp[(0x4*4)+0]<<0)|(inp[(0x4*4)+1]<<8)|(inp[(0x4*4)+2]<<16)|(inp[(0x4*4)+3]<<24))>>>0);
b5 = (((inp[(0x5*4)+0]<<0)|(inp[(0x5*4)+1]<<8)|(inp[(0x5*4)+2]<<16)|(inp[(0x5*4)+3]<<24))>>>0);
b6 = (((inp[(0x6*4)+0]<<0)|(inp[(0x6*4)+1]<<8)|(inp[(0x6*4)+2]<<16)|(inp[(0x6*4)+3]<<24))>>>0);
b7 = (((inp[(0x7*4)+0]<<0)|(inp[(0x7*4)+1]<<8)|(inp[(0x7*4)+2]<<16)|(inp[(0x7*4)+3]<<24))>>>0);
b8 = (((inp[(0x8*4)+0]<<0)|(inp[(0x8*4)+1]<<8)|(inp[(0x8*4)+2]<<16)|(inp[(0x8*4)+3]<<24))>>>0);
b9 = (((inp[(0x9*4)+0]<<0)|(inp[(0x9*4)+1]<<8)|(inp[(0x9*4)+2]<<16)|(inp[(0x9*4)+3]<<24))>>>0);
ba = (((inp[(0xa*4)+0]<<0)|(inp[(0xa*4)+1]<<8)|(inp[(0xa*4)+2]<<16)|(inp[(0xa*4)+3]<<24))>>>0);
bb = (((inp[(0xb*4)+0]<<0)|(inp[(0xb*4)+1]<<8)|(inp[(0xb*4)+2]<<16)|(inp[(0xb*4)+3]<<24))>>>0);
bc = (((inp[(0xc*4)+0]<<0)|(inp[(0xc*4)+1]<<8)|(inp[(0xc*4)+2]<<16)|(inp[(0xc*4)+3]<<24))>>>0);
bd = (((inp[(0xd*4)+0]<<0)|(inp[(0xd*4)+1]<<8)|(inp[(0xd*4)+2]<<16)|(inp[(0xd*4)+3]<<24))>>>0);
be = (((inp[(0xe*4)+0]<<0)|(inp[(0xe*4)+1]<<8)|(inp[(0xe*4)+2]<<16)|(inp[(0xe*4)+3]<<24))>>>0);
bf = (((inp[(0xf*4)+0]<<0)|(inp[(0xf*4)+1]<<8)|(inp[(0xf*4)+2]<<16)|(inp[(0xf*4)+3]<<24))>>>0);
o4 = (o4 ^ b0)>>>0;;o5 = (o5 ^ b1)>>>0;;o0 = (o0 - ((s0[(o4)&0xff] ^ s2[(o4 >>> 16)&0xff] ^ s4[(o5)&0xff] ^ s6[(o5 >>> 16)&0xff])>>>0));;o1 = (o1 - (o0 < 0 ? 1 : 0) - ((s1[(o4)&0xff] ^ s3[(o4 >>> 16)&0xff] ^ s5[(o5)&0xff] ^ s7[(o5 >>> 16)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o2 = (o2 + ((s0[(o5 >>> 24)&0xff] ^ s2[(o5 >>> 8)&0xff] ^ s4[(o4 >>> 24)&0xff] ^ s6[(o4 >>> 8)&0xff])>>>0));;o3 = (o3 + (o2 > 4294967295 ? 1 : 0) + ((s1[(o5 >>> 24)&0xff] ^ s3[(o5 >>> 8)&0xff] ^ s5[(o4 >>> 24)&0xff] ^ s7[(o4 >>> 8)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o2 = (o2 * 5);;o3 = ((o3 * 5) + ((o2 /4294967296)>>>0))>>>0;;o2 = o2 >>> 0;;;o0 = (o0 ^ b2)>>>0;;o1 = (o1 ^ b3)>>>0;;o2 = (o2 - ((s0[(o0)&0xff] ^ s2[(o0 >>> 16)&0xff] ^ s4[(o1)&0xff] ^ s6[(o1 >>> 16)&0xff])>>>0));;o3 = (o3 - (o2 < 0 ? 1 : 0) - ((s1[(o0)&0xff] ^ s3[(o0 >>> 16)&0xff] ^ s5[(o1)&0xff] ^ s7[(o1 >>> 16)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o4 = (o4 + ((s0[(o1 >>> 24)&0xff] ^ s2[(o1 >>> 8)&0xff] ^ s4[(o0 >>> 24)&0xff] ^ s6[(o0 >>> 8)&0xff])>>>0));;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + ((s1[(o1 >>> 24)&0xff] ^ s3[(o1 >>> 8)&0xff] ^ s5[(o0 >>> 24)&0xff] ^ s7[(o0 >>> 8)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o4 = (o4 * 5);;o5 = ((o5 * 5) + ((o4 /4294967296)>>>0))>>>0;;o4 = o4 >>> 0;;;o2 = (o2 ^ b4)>>>0;;o3 = (o3 ^ b5)>>>0;;o4 = (o4 - ((s0[(o2)&0xff] ^ s2[(o2 >>> 16)&0xff] ^ s4[(o3)&0xff] ^ s6[(o3 >>> 16)&0xff])>>>0));;o5 = (o5 - (o4 < 0 ? 1 : 0) - ((s1[(o2)&0xff] ^ s3[(o2 >>> 16)&0xff] ^ s5[(o3)&0xff] ^ s7[(o3 >>> 16)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o0 = (o0 + ((s0[(o3 >>> 24)&0xff] ^ s2[(o3 >>> 8)&0xff] ^ s4[(o2 >>> 24)&0xff] ^ s6[(o2 >>> 8)&0xff])>>>0));;o1 = (o1 + (o0 > 4294967295 ? 1 : 0) + ((s1[(o3 >>> 24)&0xff] ^ s3[(o3 >>> 8)&0xff] ^ s5[(o2 >>> 24)&0xff] ^ s7[(o2 >>> 8)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o0 = (o0 * 5);;o1 = ((o1 * 5) + ((o0 /4294967296)>>>0))>>>0;;o0 = o0 >>> 0;;;o4 = (o4 ^ b6)>>>0;;o5 = (o5 ^ b7)>>>0;;o0 = (o0 - ((s0[(o4)&0xff] ^ s2[(o4 >>> 16)&0xff] ^ s4[(o5)&0xff] ^ s6[(o5 >>> 16)&0xff])>>>0));;o1 = (o1 - (o0 < 0 ? 1 : 0) - ((s1[(o4)&0xff] ^ s3[(o4 >>> 16)&0xff] ^ s5[(o5)&0xff] ^ s7[(o5 >>> 16)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o2 = (o2 + ((s0[(o5 >>> 24)&0xff] ^ s2[(o5 >>> 8)&0xff] ^ s4[(o4 >>> 24)&0xff] ^ s6[(o4 >>> 8)&0xff])>>>0));;o3 = (o3 + (o2 > 4294967295 ? 1 : 0) + ((s1[(o5 >>> 24)&0xff] ^ s3[(o5 >>> 8)&0xff] ^ s5[(o4 >>> 24)&0xff] ^ s7[(o4 >>> 8)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o2 = (o2 * 5);;o3 = ((o3 * 5) + ((o2 /4294967296)>>>0))>>>0;;o2 = o2 >>> 0;;;o0 = (o0 ^ b8)>>>0;;o1 = (o1 ^ b9)>>>0;;o2 = (o2 - ((s0[(o0)&0xff] ^ s2[(o0 >>> 16)&0xff] ^ s4[(o1)&0xff] ^ s6[(o1 >>> 16)&0xff])>>>0));;o3 = (o3 - (o2 < 0 ? 1 : 0) - ((s1[(o0)&0xff] ^ s3[(o0 >>> 16)&0xff] ^ s5[(o1)&0xff] ^ s7[(o1 >>> 16)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o4 = (o4 + ((s0[(o1 >>> 24)&0xff] ^ s2[(o1 >>> 8)&0xff] ^ s4[(o0 >>> 24)&0xff] ^ s6[(o0 >>> 8)&0xff])>>>0));;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + ((s1[(o1 >>> 24)&0xff] ^ s3[(o1 >>> 8)&0xff] ^ s5[(o0 >>> 24)&0xff] ^ s7[(o0 >>> 8)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o4 = (o4 * 5);;o5 = ((o5 * 5) + ((o4 /4294967296)>>>0))>>>0;;o4 = o4 >>> 0;;;o2 = (o2 ^ ba)>>>0;;o3 = (o3 ^ bb)>>>0;;o4 = (o4 - ((s0[(o2)&0xff] ^ s2[(o2 >>> 16)&0xff] ^ s4[(o3)&0xff] ^ s6[(o3 >>> 16)&0xff])>>>0));;o5 = (o5 - (o4 < 0 ? 1 : 0) - ((s1[(o2)&0xff] ^ s3[(o2 >>> 16)&0xff] ^ s5[(o3)&0xff] ^ s7[(o3 >>> 16)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o0 = (o0 + ((s0[(o3 >>> 24)&0xff] ^ s2[(o3 >>> 8)&0xff] ^ s4[(o2 >>> 24)&0xff] ^ s6[(o2 >>> 8)&0xff])>>>0));;o1 = (o1 + (o0 > 4294967295 ? 1 : 0) + ((s1[(o3 >>> 24)&0xff] ^ s3[(o3 >>> 8)&0xff] ^ s5[(o2 >>> 24)&0xff] ^ s7[(o2 >>> 8)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o0 = (o0 * 5);;o1 = ((o1 * 5) + ((o0 /4294967296)>>>0))>>>0;;o0 = o0 >>> 0;;;o4 = (o4 ^ bc)>>>0;;o5 = (o5 ^ bd)>>>0;;o0 = (o0 - ((s0[(o4)&0xff] ^ s2[(o4 >>> 16)&0xff] ^ s4[(o5)&0xff] ^ s6[(o5 >>> 16)&0xff])>>>0));;o1 = (o1 - (o0 < 0 ? 1 : 0) - ((s1[(o4)&0xff] ^ s3[(o4 >>> 16)&0xff] ^ s5[(o5)&0xff] ^ s7[(o5 >>> 16)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o2 = (o2 + ((s0[(o5 >>> 24)&0xff] ^ s2[(o5 >>> 8)&0xff] ^ s4[(o4 >>> 24)&0xff] ^ s6[(o4 >>> 8)&0xff])>>>0));;o3 = (o3 + (o2 > 4294967295 ? 1 : 0) + ((s1[(o5 >>> 24)&0xff] ^ s3[(o5 >>> 8)&0xff] ^ s5[(o4 >>> 24)&0xff] ^ s7[(o4 >>> 8)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o2 = (o2 * 5);;o3 = ((o3 * 5) + ((o2 /4294967296)>>>0))>>>0;;o2 = o2 >>> 0;;;o0 = (o0 ^ be)>>>0;;o1 = (o1 ^ bf)>>>0;;o2 = (o2 - ((s0[(o0)&0xff] ^ s2[(o0 >>> 16)&0xff] ^ s4[(o1)&0xff] ^ s6[(o1 >>> 16)&0xff])>>>0));;o3 = (o3 - (o2 < 0 ? 1 : 0) - ((s1[(o0)&0xff] ^ s3[(o0 >>> 16)&0xff] ^ s5[(o1)&0xff] ^ s7[(o1 >>> 16)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o4 = (o4 + ((s0[(o1 >>> 24)&0xff] ^ s2[(o1 >>> 8)&0xff] ^ s4[(o0 >>> 24)&0xff] ^ s6[(o0 >>> 8)&0xff])>>>0));;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + ((s1[(o1 >>> 24)&0xff] ^ s3[(o1 >>> 8)&0xff] ^ s5[(o0 >>> 24)&0xff] ^ s7[(o0 >>> 8)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o4 = (o4 * 5);;o5 = ((o5 * 5) + ((o4 /4294967296)>>>0))>>>0;;o4 = o4 >>> 0;;;;b0 = (b0 - ((be ^ 0xA5A5A5A5)>>>0));;b1 = (b1 - (b0 < 0 ? 1 : 0) - ((bf ^ 0xA5A5A5A5)>>>0))>>>0;;b0 = b0 >>> 0;;b2 = (b2 ^ b0)>>>0;;b3 = (b3 ^ b1)>>>0;;b4 = (b4 + b2);;b5 = (b5 + (b4 > 4294967295 ? 1 : 0) + b3)>>>0;;b4 = b4 >>> 0;;b6 = (b6 - ((b4 ^ ((~b2)<<19))>>>0));;b7 = (b7 - (b6 < 0 ? 1 : 0) - ((b5 ^ ((((~b3)<<19))|((~b2)>>>13)))>>>0))>>>0;;b6 = b6 >>> 0;;b8 = (b8 ^ b6)>>>0;;b9 = (b9 ^ b7)>>>0;;ba = (ba + b8);;bb = (bb + (ba > 4294967295 ? 1 : 0) + b9)>>>0;;ba = ba >>> 0;;bc = (bc - ((ba ^ ((((~b9)<<9)|((~b8)>>>23))))>>>0));;bd = (bd - (bc < 0 ? 1 : 0) - ((bb ^ ((~b9)>>>23))>>>0))>>>0;;bc = bc >>> 0;;be = (be ^ bc)>>>0;;bf = (bf ^ bd)>>>0;;b0 = (b0 + be);;b1 = (b1 + (b0 > 4294967295 ? 1 : 0) + bf)>>>0;;b0 = b0 >>> 0;;b2 = (b2 - ((b0 ^ ((~be)<<19))>>>0));;b3 = (b3 - (b2 < 0 ? 1 : 0) - ((b1 ^ ((((~bf)<<19))|((~be)>>>13)))>>>0))>>>0;;b2 = b2 >>> 0;;b4 = (b4 ^ b2)>>>0;;b5 = (b5 ^ b3)>>>0;;b6 = (b6 + b4);;b7 = (b7 + (b6 > 4294967295 ? 1 : 0) + b5)>>>0;;b6 = b6 >>> 0;;b8 = (b8 - ((b6 ^ ((((~b5)<<9)|((~b4)>>>23))))>>>0));;b9 = (b9 - (b8 < 0 ? 1 : 0) - ((b7 ^ ((~b5)>>>23))>>>0))>>>0;;b8 = b8 >>> 0;;ba = (ba ^ b8)>>>0;;bb = (bb ^ b9)>>>0;;bc = (bc + ba);;bd = (bd + (bc > 4294967295 ? 1 : 0) + bb)>>>0;;bc = bc >>> 0;;be = (be - ((bc ^ 0x89ABCDEF)>>>0));;bf = (bf - (be < 0 ? 1 : 0) - ((bd ^ 0x01234567)>>>0))>>>0;;be = be >>> 0;;;;o2 = (o2 ^ b0)>>>0;;o3 = (o3 ^ b1)>>>0;;o4 = (o4 - ((s0[(o2)&0xff] ^ s2[(o2 >>> 16)&0xff] ^ s4[(o3)&0xff] ^ s6[(o3 >>> 16)&0xff])>>>0));;o5 = (o5 - (o4 < 0 ? 1 : 0) - ((s1[(o2)&0xff] ^ s3[(o2 >>> 16)&0xff] ^ s5[(o3)&0xff] ^ s7[(o3 >>> 16)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o0 = (o0 + ((s0[(o3 >>> 24)&0xff] ^ s2[(o3 >>> 8)&0xff] ^ s4[(o2 >>> 24)&0xff] ^ s6[(o2 >>> 8)&0xff])>>>0));;o1 = (o1 + (o0 > 4294967295 ? 1 : 0) + ((s1[(o3 >>> 24)&0xff] ^ s3[(o3 >>> 8)&0xff] ^ s5[(o2 >>> 24)&0xff] ^ s7[(o2 >>> 8)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o0 = (o0 * 7);;o1 = ((o1 * 7) + ((o0 /4294967296)>>>0))>>>0;;o0 = o0 >>> 0;;;o4 = (o4 ^ b2)>>>0;;o5 = (o5 ^ b3)>>>0;;o0 = (o0 - ((s0[(o4)&0xff] ^ s2[(o4 >>> 16)&0xff] ^ s4[(o5)&0xff] ^ s6[(o5 >>> 16)&0xff])>>>0));;o1 = (o1 - (o0 < 0 ? 1 : 0) - ((s1[(o4)&0xff] ^ s3[(o4 >>> 16)&0xff] ^ s5[(o5)&0xff] ^ s7[(o5 >>> 16)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o2 = (o2 + ((s0[(o5 >>> 24)&0xff] ^ s2[(o5 >>> 8)&0xff] ^ s4[(o4 >>> 24)&0xff] ^ s6[(o4 >>> 8)&0xff])>>>0));;o3 = (o3 + (o2 > 4294967295 ? 1 : 0) + ((s1[(o5 >>> 24)&0xff] ^ s3[(o5 >>> 8)&0xff] ^ s5[(o4 >>> 24)&0xff] ^ s7[(o4 >>> 8)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o2 = (o2 * 7);;o3 = ((o3 * 7) + ((o2 /4294967296)>>>0))>>>0;;o2 = o2 >>> 0;;;o0 = (o0 ^ b4)>>>0;;o1 = (o1 ^ b5)>>>0;;o2 = (o2 - ((s0[(o0)&0xff] ^ s2[(o0 >>> 16)&0xff] ^ s4[(o1)&0xff] ^ s6[(o1 >>> 16)&0xff])>>>0));;o3 = (o3 - (o2 < 0 ? 1 : 0) - ((s1[(o0)&0xff] ^ s3[(o0 >>> 16)&0xff] ^ s5[(o1)&0xff] ^ s7[(o1 >>> 16)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o4 = (o4 + ((s0[(o1 >>> 24)&0xff] ^ s2[(o1 >>> 8)&0xff] ^ s4[(o0 >>> 24)&0xff] ^ s6[(o0 >>> 8)&0xff])>>>0));;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + ((s1[(o1 >>> 24)&0xff] ^ s3[(o1 >>> 8)&0xff] ^ s5[(o0 >>> 24)&0xff] ^ s7[(o0 >>> 8)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o4 = (o4 * 7);;o5 = ((o5 * 7) + ((o4 /4294967296)>>>0))>>>0;;o4 = o4 >>> 0;;;o2 = (o2 ^ b6)>>>0;;o3 = (o3 ^ b7)>>>0;;o4 = (o4 - ((s0[(o2)&0xff] ^ s2[(o2 >>> 16)&0xff] ^ s4[(o3)&0xff] ^ s6[(o3 >>> 16)&0xff])>>>0));;o5 = (o5 - (o4 < 0 ? 1 : 0) - ((s1[(o2)&0xff] ^ s3[(o2 >>> 16)&0xff] ^ s5[(o3)&0xff] ^ s7[(o3 >>> 16)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o0 = (o0 + ((s0[(o3 >>> 24)&0xff] ^ s2[(o3 >>> 8)&0xff] ^ s4[(o2 >>> 24)&0xff] ^ s6[(o2 >>> 8)&0xff])>>>0));;o1 = (o1 + (o0 > 4294967295 ? 1 : 0) + ((s1[(o3 >>> 24)&0xff] ^ s3[(o3 >>> 8)&0xff] ^ s5[(o2 >>> 24)&0xff] ^ s7[(o2 >>> 8)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o0 = (o0 * 7);;o1 = ((o1 * 7) + ((o0 /4294967296)>>>0))>>>0;;o0 = o0 >>> 0;;;o4 = (o4 ^ b8)>>>0;;o5 = (o5 ^ b9)>>>0;;o0 = (o0 - ((s0[(o4)&0xff] ^ s2[(o4 >>> 16)&0xff] ^ s4[(o5)&0xff] ^ s6[(o5 >>> 16)&0xff])>>>0));;o1 = (o1 - (o0 < 0 ? 1 : 0) - ((s1[(o4)&0xff] ^ s3[(o4 >>> 16)&0xff] ^ s5[(o5)&0xff] ^ s7[(o5 >>> 16)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o2 = (o2 + ((s0[(o5 >>> 24)&0xff] ^ s2[(o5 >>> 8)&0xff] ^ s4[(o4 >>> 24)&0xff] ^ s6[(o4 >>> 8)&0xff])>>>0));;o3 = (o3 + (o2 > 4294967295 ? 1 : 0) + ((s1[(o5 >>> 24)&0xff] ^ s3[(o5 >>> 8)&0xff] ^ s5[(o4 >>> 24)&0xff] ^ s7[(o4 >>> 8)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o2 = (o2 * 7);;o3 = ((o3 * 7) + ((o2 /4294967296)>>>0))>>>0;;o2 = o2 >>> 0;;;o0 = (o0 ^ ba)>>>0;;o1 = (o1 ^ bb)>>>0;;o2 = (o2 - ((s0[(o0)&0xff] ^ s2[(o0 >>> 16)&0xff] ^ s4[(o1)&0xff] ^ s6[(o1 >>> 16)&0xff])>>>0));;o3 = (o3 - (o2 < 0 ? 1 : 0) - ((s1[(o0)&0xff] ^ s3[(o0 >>> 16)&0xff] ^ s5[(o1)&0xff] ^ s7[(o1 >>> 16)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o4 = (o4 + ((s0[(o1 >>> 24)&0xff] ^ s2[(o1 >>> 8)&0xff] ^ s4[(o0 >>> 24)&0xff] ^ s6[(o0 >>> 8)&0xff])>>>0));;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + ((s1[(o1 >>> 24)&0xff] ^ s3[(o1 >>> 8)&0xff] ^ s5[(o0 >>> 24)&0xff] ^ s7[(o0 >>> 8)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o4 = (o4 * 7);;o5 = ((o5 * 7) + ((o4 /4294967296)>>>0))>>>0;;o4 = o4 >>> 0;;;o2 = (o2 ^ bc)>>>0;;o3 = (o3 ^ bd)>>>0;;o4 = (o4 - ((s0[(o2)&0xff] ^ s2[(o2 >>> 16)&0xff] ^ s4[(o3)&0xff] ^ s6[(o3 >>> 16)&0xff])>>>0));;o5 = (o5 - (o4 < 0 ? 1 : 0) - ((s1[(o2)&0xff] ^ s3[(o2 >>> 16)&0xff] ^ s5[(o3)&0xff] ^ s7[(o3 >>> 16)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o0 = (o0 + ((s0[(o3 >>> 24)&0xff] ^ s2[(o3 >>> 8)&0xff] ^ s4[(o2 >>> 24)&0xff] ^ s6[(o2 >>> 8)&0xff])>>>0));;o1 = (o1 + (o0 > 4294967295 ? 1 : 0) + ((s1[(o3 >>> 24)&0xff] ^ s3[(o3 >>> 8)&0xff] ^ s5[(o2 >>> 24)&0xff] ^ s7[(o2 >>> 8)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o0 = (o0 * 7);;o1 = ((o1 * 7) + ((o0 /4294967296)>>>0))>>>0;;o0 = o0 >>> 0;;;o4 = (o4 ^ be)>>>0;;o5 = (o5 ^ bf)>>>0;;o0 = (o0 - ((s0[(o4)&0xff] ^ s2[(o4 >>> 16)&0xff] ^ s4[(o5)&0xff] ^ s6[(o5 >>> 16)&0xff])>>>0));;o1 = (o1 - (o0 < 0 ? 1 : 0) - ((s1[(o4)&0xff] ^ s3[(o4 >>> 16)&0xff] ^ s5[(o5)&0xff] ^ s7[(o5 >>> 16)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o2 = (o2 + ((s0[(o5 >>> 24)&0xff] ^ s2[(o5 >>> 8)&0xff] ^ s4[(o4 >>> 24)&0xff] ^ s6[(o4 >>> 8)&0xff])>>>0));;o3 = (o3 + (o2 > 4294967295 ? 1 : 0) + ((s1[(o5 >>> 24)&0xff] ^ s3[(o5 >>> 8)&0xff] ^ s5[(o4 >>> 24)&0xff] ^ s7[(o4 >>> 8)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o2 = (o2 * 7);;o3 = ((o3 * 7) + ((o2 /4294967296)>>>0))>>>0;;o2 = o2 >>> 0;;;;b0 = (b0 - ((be ^ 0xA5A5A5A5)>>>0));;b1 = (b1 - (b0 < 0 ? 1 : 0) - ((bf ^ 0xA5A5A5A5)>>>0))>>>0;;b0 = b0 >>> 0;;b2 = (b2 ^ b0)>>>0;;b3 = (b3 ^ b1)>>>0;;b4 = (b4 + b2);;b5 = (b5 + (b4 > 4294967295 ? 1 : 0) + b3)>>>0;;b4 = b4 >>> 0;;b6 = (b6 - ((b4 ^ ((~b2)<<19))>>>0));;b7 = (b7 - (b6 < 0 ? 1 : 0) - ((b5 ^ ((((~b3)<<19))|((~b2)>>>13)))>>>0))>>>0;;b6 = b6 >>> 0;;b8 = (b8 ^ b6)>>>0;;b9 = (b9 ^ b7)>>>0;;ba = (ba + b8);;bb = (bb + (ba > 4294967295 ? 1 : 0) + b9)>>>0;;ba = ba >>> 0;;bc = (bc - ((ba ^ ((((~b9)<<9)|((~b8)>>>23))))>>>0));;bd = (bd - (bc < 0 ? 1 : 0) - ((bb ^ ((~b9)>>>23))>>>0))>>>0;;bc = bc >>> 0;;be = (be ^ bc)>>>0;;bf = (bf ^ bd)>>>0;;b0 = (b0 + be);;b1 = (b1 + (b0 > 4294967295 ? 1 : 0) + bf)>>>0;;b0 = b0 >>> 0;;b2 = (b2 - ((b0 ^ ((~be)<<19))>>>0));;b3 = (b3 - (b2 < 0 ? 1 : 0) - ((b1 ^ ((((~bf)<<19))|((~be)>>>13)))>>>0))>>>0;;b2 = b2 >>> 0;;b4 = (b4 ^ b2)>>>0;;b5 = (b5 ^ b3)>>>0;;b6 = (b6 + b4);;b7 = (b7 + (b6 > 4294967295 ? 1 : 0) + b5)>>>0;;b6 = b6 >>> 0;;b8 = (b8 - ((b6 ^ ((((~b5)<<9)|((~b4)>>>23))))>>>0));;b9 = (b9 - (b8 < 0 ? 1 : 0) - ((b7 ^ ((~b5)>>>23))>>>0))>>>0;;b8 = b8 >>> 0;;ba = (ba ^ b8)>>>0;;bb = (bb ^ b9)>>>0;;bc = (bc + ba);;bd = (bd + (bc > 4294967295 ? 1 : 0) + bb)>>>0;;bc = bc >>> 0;;be = (be - ((bc ^ 0x89ABCDEF)>>>0));;bf = (bf - (be < 0 ? 1 : 0) - ((bd ^ 0x01234567)>>>0))>>>0;;be = be >>> 0;;;;o0 = (o0 ^ b0)>>>0;;o1 = (o1 ^ b1)>>>0;;o2 = (o2 - ((s0[(o0)&0xff] ^ s2[(o0 >>> 16)&0xff] ^ s4[(o1)&0xff] ^ s6[(o1 >>> 16)&0xff])>>>0));;o3 = (o3 - (o2 < 0 ? 1 : 0) - ((s1[(o0)&0xff] ^ s3[(o0 >>> 16)&0xff] ^ s5[(o1)&0xff] ^ s7[(o1 >>> 16)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o4 = (o4 + ((s0[(o1 >>> 24)&0xff] ^ s2[(o1 >>> 8)&0xff] ^ s4[(o0 >>> 24)&0xff] ^ s6[(o0 >>> 8)&0xff])>>>0));;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + ((s1[(o1 >>> 24)&0xff] ^ s3[(o1 >>> 8)&0xff] ^ s5[(o0 >>> 24)&0xff] ^ s7[(o0 >>> 8)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o4 = (o4 * 9);;o5 = ((o5 * 9) + ((o4 /4294967296)>>>0))>>>0;;o4 = o4 >>> 0;;;o2 = (o2 ^ b2)>>>0;;o3 = (o3 ^ b3)>>>0;;o4 = (o4 - ((s0[(o2)&0xff] ^ s2[(o2 >>> 16)&0xff] ^ s4[(o3)&0xff] ^ s6[(o3 >>> 16)&0xff])>>>0));;o5 = (o5 - (o4 < 0 ? 1 : 0) - ((s1[(o2)&0xff] ^ s3[(o2 >>> 16)&0xff] ^ s5[(o3)&0xff] ^ s7[(o3 >>> 16)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o0 = (o0 + ((s0[(o3 >>> 24)&0xff] ^ s2[(o3 >>> 8)&0xff] ^ s4[(o2 >>> 24)&0xff] ^ s6[(o2 >>> 8)&0xff])>>>0));;o1 = (o1 + (o0 > 4294967295 ? 1 : 0) + ((s1[(o3 >>> 24)&0xff] ^ s3[(o3 >>> 8)&0xff] ^ s5[(o2 >>> 24)&0xff] ^ s7[(o2 >>> 8)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o0 = (o0 * 9);;o1 = ((o1 * 9) + ((o0 /4294967296)>>>0))>>>0;;o0 = o0 >>> 0;;;o4 = (o4 ^ b4)>>>0;;o5 = (o5 ^ b5)>>>0;;o0 = (o0 - ((s0[(o4)&0xff] ^ s2[(o4 >>> 16)&0xff] ^ s4[(o5)&0xff] ^ s6[(o5 >>> 16)&0xff])>>>0));;o1 = (o1 - (o0 < 0 ? 1 : 0) - ((s1[(o4)&0xff] ^ s3[(o4 >>> 16)&0xff] ^ s5[(o5)&0xff] ^ s7[(o5 >>> 16)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o2 = (o2 + ((s0[(o5 >>> 24)&0xff] ^ s2[(o5 >>> 8)&0xff] ^ s4[(o4 >>> 24)&0xff] ^ s6[(o4 >>> 8)&0xff])>>>0));;o3 = (o3 + (o2 > 4294967295 ? 1 : 0) + ((s1[(o5 >>> 24)&0xff] ^ s3[(o5 >>> 8)&0xff] ^ s5[(o4 >>> 24)&0xff] ^ s7[(o4 >>> 8)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o2 = (o2 * 9);;o3 = ((o3 * 9) + ((o2 /4294967296)>>>0))>>>0;;o2 = o2 >>> 0;;;o0 = (o0 ^ b6)>>>0;;o1 = (o1 ^ b7)>>>0;;o2 = (o2 - ((s0[(o0)&0xff] ^ s2[(o0 >>> 16)&0xff] ^ s4[(o1)&0xff] ^ s6[(o1 >>> 16)&0xff])>>>0));;o3 = (o3 - (o2 < 0 ? 1 : 0) - ((s1[(o0)&0xff] ^ s3[(o0 >>> 16)&0xff] ^ s5[(o1)&0xff] ^ s7[(o1 >>> 16)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o4 = (o4 + ((s0[(o1 >>> 24)&0xff] ^ s2[(o1 >>> 8)&0xff] ^ s4[(o0 >>> 24)&0xff] ^ s6[(o0 >>> 8)&0xff])>>>0));;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + ((s1[(o1 >>> 24)&0xff] ^ s3[(o1 >>> 8)&0xff] ^ s5[(o0 >>> 24)&0xff] ^ s7[(o0 >>> 8)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o4 = (o4 * 9);;o5 = ((o5 * 9) + ((o4 /4294967296)>>>0))>>>0;;o4 = o4 >>> 0;;;o2 = (o2 ^ b8)>>>0;;o3 = (o3 ^ b9)>>>0;;o4 = (o4 - ((s0[(o2)&0xff] ^ s2[(o2 >>> 16)&0xff] ^ s4[(o3)&0xff] ^ s6[(o3 >>> 16)&0xff])>>>0));;o5 = (o5 - (o4 < 0 ? 1 : 0) - ((s1[(o2)&0xff] ^ s3[(o2 >>> 16)&0xff] ^ s5[(o3)&0xff] ^ s7[(o3 >>> 16)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o0 = (o0 + ((s0[(o3 >>> 24)&0xff] ^ s2[(o3 >>> 8)&0xff] ^ s4[(o2 >>> 24)&0xff] ^ s6[(o2 >>> 8)&0xff])>>>0));;o1 = (o1 + (o0 > 4294967295 ? 1 : 0) + ((s1[(o3 >>> 24)&0xff] ^ s3[(o3 >>> 8)&0xff] ^ s5[(o2 >>> 24)&0xff] ^ s7[(o2 >>> 8)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o0 = (o0 * 9);;o1 = ((o1 * 9) + ((o0 /4294967296)>>>0))>>>0;;o0 = o0 >>> 0;;;o4 = (o4 ^ ba)>>>0;;o5 = (o5 ^ bb)>>>0;;o0 = (o0 - ((s0[(o4)&0xff] ^ s2[(o4 >>> 16)&0xff] ^ s4[(o5)&0xff] ^ s6[(o5 >>> 16)&0xff])>>>0));;o1 = (o1 - (o0 < 0 ? 1 : 0) - ((s1[(o4)&0xff] ^ s3[(o4 >>> 16)&0xff] ^ s5[(o5)&0xff] ^ s7[(o5 >>> 16)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o2 = (o2 + ((s0[(o5 >>> 24)&0xff] ^ s2[(o5 >>> 8)&0xff] ^ s4[(o4 >>> 24)&0xff] ^ s6[(o4 >>> 8)&0xff])>>>0));;o3 = (o3 + (o2 > 4294967295 ? 1 : 0) + ((s1[(o5 >>> 24)&0xff] ^ s3[(o5 >>> 8)&0xff] ^ s5[(o4 >>> 24)&0xff] ^ s7[(o4 >>> 8)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o2 = (o2 * 9);;o3 = ((o3 * 9) + ((o2 /4294967296)>>>0))>>>0;;o2 = o2 >>> 0;;;o0 = (o0 ^ bc)>>>0;;o1 = (o1 ^ bd)>>>0;;o2 = (o2 - ((s0[(o0)&0xff] ^ s2[(o0 >>> 16)&0xff] ^ s4[(o1)&0xff] ^ s6[(o1 >>> 16)&0xff])>>>0));;o3 = (o3 - (o2 < 0 ? 1 : 0) - ((s1[(o0)&0xff] ^ s3[(o0 >>> 16)&0xff] ^ s5[(o1)&0xff] ^ s7[(o1 >>> 16)&0xff])>>>0))>>>0;;o2 = o2 >>> 0;;o4 = (o4 + ((s0[(o1 >>> 24)&0xff] ^ s2[(o1 >>> 8)&0xff] ^ s4[(o0 >>> 24)&0xff] ^ s6[(o0 >>> 8)&0xff])>>>0));;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + ((s1[(o1 >>> 24)&0xff] ^ s3[(o1 >>> 8)&0xff] ^ s5[(o0 >>> 24)&0xff] ^ s7[(o0 >>> 8)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o4 = (o4 * 9);;o5 = ((o5 * 9) + ((o4 /4294967296)>>>0))>>>0;;o4 = o4 >>> 0;;;o2 = (o2 ^ be)>>>0;;o3 = (o3 ^ bf)>>>0;;o4 = (o4 - ((s0[(o2)&0xff] ^ s2[(o2 >>> 16)&0xff] ^ s4[(o3)&0xff] ^ s6[(o3 >>> 16)&0xff])>>>0));;o5 = (o5 - (o4 < 0 ? 1 : 0) - ((s1[(o2)&0xff] ^ s3[(o2 >>> 16)&0xff] ^ s5[(o3)&0xff] ^ s7[(o3 >>> 16)&0xff])>>>0))>>>0;;o4 = o4 >>> 0;;o0 = (o0 + ((s0[(o3 >>> 24)&0xff] ^ s2[(o3 >>> 8)&0xff] ^ s4[(o2 >>> 24)&0xff] ^ s6[(o2 >>> 8)&0xff])>>>0));;o1 = (o1 + (o0 > 4294967295 ? 1 : 0) + ((s1[(o3 >>> 24)&0xff] ^ s3[(o3 >>> 8)&0xff] ^ s5[(o2 >>> 24)&0xff] ^ s7[(o2 >>> 8)&0xff])>>>0))>>>0;;o0 = o0 >>> 0;;o0 = (o0 * 9);;o1 = ((o1 * 9) + ((o0 /4294967296)>>>0))>>>0;;o0 = o0 >>> 0;;;;;
o0 = (o0 ^ res[0])>>>0;;o1 = (o1 ^ res[1])>>>0;;
o2 = (o2 - res[2]);;o3 = (o3 - (o2 < 0 ? 1 : 0) - res[3])>>>0;;o2 = o2 >>> 0;;
o4 = (o4 + res[4]);;o5 = (o5 + (o4 > 4294967295 ? 1 : 0) + res[5])>>>0;;o4 = o4 >>> 0;;
return [o0,o1,o2,o3,o4,o5];
});})();
return (function tiger(inp) {
var status = [0x89ABCDEF,0x01234567,0x76543210,0xFEDCBA98,0xC3B2E187,0xF096A5B4];
for (var i = 0; inp.length - i >= 64; i+= 64)
status = tiger_block(inp.slice(i,i+64),status);
var l = inp.length*8;
var inp = inp.slice(i);
inp.push(1);
while (inp.length != 56) {
if(inp.length == 64) {
status = tiger_block(inp,status);
inp = [];
}
inp.push(0);
}
for (var i = 0; i < 8; i++) {
inp.push(l&0xff);
l = l/256;
}
status = tiger_block(inp,status);
var rv = [];
for (var i = 0; i < 6; i++)
for (var j = 0; j < 32; j += 8)
rv.push(('0'+((status[i]>>>j)&0xff).toString(16)).slice(-2));
return rv.join('');
});})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment